easy-drag-and-drop 1.3.182 → 1.3.184

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.
@@ -35,17 +35,22 @@ Object.assign(globalThis, {
35
35
  });
36
36
  resetDragElement();
37
37
  function enableDrag() {
38
- var timeout = null, topOffset = null, leftOffset = null, startMouseTop = null, startMouseLeft = null;
38
+ var timeout = null, topOffset = null, leftOffset = null, dragEnabled = true, startMouseTop = null, startMouseLeft = null;
39
39
  this.onMouseDown(mouseDownHandler, this);
40
40
  this.updateState({
41
41
  timeout: timeout,
42
42
  topOffset: topOffset,
43
43
  leftOffset: leftOffset,
44
+ dragEnabled: dragEnabled,
44
45
  startMouseTop: startMouseTop,
45
46
  startMouseLeft: startMouseLeft
46
47
  });
47
48
  }
48
49
  function disableDrag() {
50
+ var dragEnabled = false;
51
+ this.updateState({
52
+ dragEnabled: dragEnabled
53
+ });
49
54
  this.offMouseDown(mouseDownHandler, this);
50
55
  }
51
56
  function onCustomDrag(dragCustomHandler, element) {
@@ -72,6 +77,10 @@ function offCustomStartDrag(startDragCustomHandler, element) {
72
77
  var customEventType = _customEventTypes.START_DRAG_CUSTOM_EVENT_TYPE, customHandler = startDragCustomHandler; ///
73
78
  this.offCustomEvent(customEventType, customHandler, element);
74
79
  }
80
+ function isDragEnabled() {
81
+ var _this_getState = this.getState(), _this_getState_dragEnabled = _this_getState.dragEnabled, dragEnabled = _this_getState_dragEnabled === void 0 ? false : _this_getState_dragEnabled;
82
+ return dragEnabled;
83
+ }
75
84
  function isDragging() {
76
85
  var dragging = this.hasClass("dragging");
77
86
  return dragging;
@@ -199,6 +208,7 @@ var _default = {
199
208
  offCustomStopDrag: offCustomStopDrag,
200
209
  onCustomStartDrag: onCustomStartDrag,
201
210
  offCustomStartDrag: offCustomStartDrag,
211
+ isDragEnabled: isDragEnabled,
202
212
  isDragging: isDragging,
203
213
  startDrag: startDrag,
204
214
  stopDrag: stopDrag,
@@ -253,4 +263,4 @@ function mouseMoveHandler(event, element) {
253
263
  event.stopPropagation();
254
264
  }
255
265
 
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZHJhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsga2V5Q29kZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCIgO1xuaW1wb3J0IHsgd2luZG93LCBldmVudFR5cGVzLCBtb3VzZUJ1dHRvbnMgfSBmcm9tIFwiZWFzeVwiO1xuXG5pbXBvcnQgeyBTVEFSVF9EUkFHR0lOR19ERUxBWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHsgbW91c2VUb3BGcm9tRXZlbnQsIG1vdXNlTGVmdEZyb21FdmVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZXZlbnRcIjtcbmltcG9ydCB7IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsIFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSwgU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuLi9jdXN0b21FdmVudFR5cGVzXCI7XG5cbmNvbnN0IHsgRVNDQVBFX0tFWV9DT0RFIH0gPSBrZXlDb2RlcyxcbiAgICAgIHsgQkxVUl9FVkVOVF9UWVBFIH0gPSBldmVudFR5cGVzLFxuICAgICAgeyBMRUZUX01PVVNFX0JVVFRPTiB9ID0gbW91c2VCdXR0b25zO1xuXG5mdW5jdGlvbiBnZXREcmFnRWxlbWVudCgpIHtcbiAgY29uc3QgeyBkcmFnRWxlbWVudCB9ID0gZ2xvYmFsVGhpcztcblxuICByZXR1cm4gZHJhZ0VsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIHNldERyYWdFbGVtZW50KGRyYWdFbGVtZW50KSB7XG4gIE9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcywge1xuICAgIGRyYWdFbGVtZW50XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXNldERyYWdFbGVtZW50KCkge1xuICBjb25zdCBkcmFnRWxlbWVudCA9IG51bGw7XG5cbiAgc2V0RHJhZ0VsZW1lbnQoZHJhZ0VsZW1lbnQpO1xufVxuXG5PYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgZ2V0RHJhZ0VsZW1lbnQsXG4gIHNldERyYWdFbGVtZW50LFxuICByZXNldERyYWdFbGVtZW50XG59KTtcblxucmVzZXREcmFnRWxlbWVudCgpO1xuXG5mdW5jdGlvbiBlbmFibGVEcmFnKCkge1xuICBjb25zdCB0aW1lb3V0ID0gbnVsbCxcbiAgICAgICAgdG9wT2Zmc2V0ID0gbnVsbCxcbiAgICAgICAgbGVmdE9mZnNldCA9IG51bGwsXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSBudWxsLFxuICAgICAgICBzdGFydE1vdXNlTGVmdCA9IG51bGw7XG5cbiAgdGhpcy5vbk1vdXNlRG93bihtb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcblxuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICB0aW1lb3V0LFxuICAgIHRvcE9mZnNldCxcbiAgICBsZWZ0T2Zmc2V0LFxuICAgIHN0YXJ0TW91c2VUb3AsXG4gICAgc3RhcnRNb3VzZUxlZnRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRpc2FibGVEcmFnKCkge1xuICB0aGlzLm9mZk1vdXNlRG93bihtb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21EcmFnKGRyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBkcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub25DdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZDdXN0b21EcmFnKGRyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBkcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21TdG9wRHJhZyhzdG9wRHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gU1RPUF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RvcERyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vbkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZkN1c3RvbVN0b3BEcmFnKHN0b3BEcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzdG9wRHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9mZkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9uQ3VzdG9tU3RhcnREcmFnKHN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IHN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tU3RhcnREcmFnKHN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IHN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9mZkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIGlzRHJhZ2dpbmcoKSB7XG4gIGNvbnN0IGRyYWdnaW5nID0gdGhpcy5oYXNDbGFzcyhcImRyYWdnaW5nXCIpO1xuXG4gIHJldHVybiBkcmFnZ2luZztcbn1cblxuZnVuY3Rpb24gc3RhcnREcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KSB7XG4gIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRzKCksXG4gICAgICAgIGJvdW5kc1RvcCA9IGJvdW5kcy5nZXRUb3AoKSxcbiAgICAgICAgYm91bmRzTGVmdCA9IGJvdW5kcy5nZXRMZWZ0KCksXG4gICAgICAgIGJvdW5kc1JpZ2h0ID0gYm91bmRzLmdldFJpZ2h0KCksXG4gICAgICAgIGJvdW5kc0JvdHRvbSA9IGJvdW5kcy5nZXRCb3R0b20oKSxcbiAgICAgICAgYm91bmRzV2lkdGggPSBib3VuZHNSaWdodCAtIGJvdW5kc0xlZnQsXG4gICAgICAgIGJvdW5kc0hlaWdodCA9IGJvdW5kc0JvdHRvbSAtIGJvdW5kc1RvcCxcbiAgICAgICAgdG9wT2Zmc2V0ID0gTWF0aC5mbG9vcihib3VuZHNIZWlnaHQgLyAyKSxcbiAgICAgICAgbGVmdE9mZnNldCA9IE1hdGguZmxvb3IoYm91bmRzV2lkdGggLyAyKSxcbiAgICAgICAgZHJhZ0VsZW1lbnQgPSB0aGlzLCAvLy9cbiAgICAgICAgc3RhcnRNb3VzZVRvcCA9IG1vdXNlVG9wLCAvLy9cbiAgICAgICAgc3RhcnRNb3VzZUxlZnQgPSBtb3VzZUxlZnQsIC8vL1xuICAgICAgICBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFO1xuXG4gIHdpbmRvdy5vbktleURvd24oa2V5RG93bkhhbmRsZXIsIHRoaXMpO1xuXG4gIHdpbmRvdy5vbk1vdXNlTW92ZShtb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcblxuICB0aGlzLmFkZENsYXNzKFwiZHJhZ2dpbmdcIik7XG5cbiAgc2V0RHJhZ0VsZW1lbnQoZHJhZ0VsZW1lbnQpO1xuXG4gIHRoaXMuc2V0VG9wT2Zmc2V0KHRvcE9mZnNldCk7XG5cbiAgdGhpcy5zZXRMZWZ0T2Zmc2V0KGxlZnRPZmZzZXQpO1xuXG4gIHRoaXMuc2V0U3RhcnRNb3VzZVRvcChzdGFydE1vdXNlVG9wKTtcblxuICB0aGlzLnNldFN0YXJ0TW91c2VMZWZ0KHN0YXJ0TW91c2VMZWZ0KTtcblxuICB0aGlzLmNhbGxDdXN0b21IYW5kbGVycyhjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcblxuICB0aGlzLmRyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xufVxuXG5mdW5jdGlvbiBzdG9wRHJhZyhldmVudCwgZWxlbWVudCwgYWJvcnRlZCkge1xuICBjb25zdCBkcm9wRWxlbWVudCA9IGdldERyb3BFbGVtZW50KCksXG4gICAgICAgIGN1c3RvbUV2ZW50VHlwZSA9IFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRTtcblxuICB3aW5kb3cub2ZmS2V5RG93bihrZXlEb3duSGFuZGxlciwgdGhpcyk7XG5cbiAgd2luZG93Lm9mZk1vdXNlTW92ZShtb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcblxuICBjb25zdCBkb25lID0gKCkgPT4ge1xuICAgIHRoaXMuY2FsbEN1c3RvbUhhbmRsZXJzQXN5bmMoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCwgZHJvcEVsZW1lbnQsIGFib3J0ZWQsICgpID0+IHtcbiAgICAgIHJlc2V0RHJhZ0VsZW1lbnQoKTtcblxuICAgICAgdGhpcy5yZW1vdmVDbGFzcyhcImRyYWdnaW5nXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKGRyb3BFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgbGV0IGRyYWdFbGVtZW50ID0gdGhpczsgLy8vXG5cbiAgICBjb25zdCBkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCA9IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQoZHJhZ0VsZW1lbnQsIGRyb3BFbGVtZW50KTtcblxuICAgIGlmIChkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCkge1xuICAgICAgZHJhZ0VsZW1lbnQgPSBudWxsO1xuICAgIH1cblxuICAgIGRyb3BFbGVtZW50LmRyb3AoZXZlbnQsIGVsZW1lbnQsIGRyYWdFbGVtZW50LCBhYm9ydGVkLCBkb25lKTtcbiAgfSBlbHNlIHtcbiAgICBkb25lKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCkge1xuICBjb25zdCBzY3JvbGxUb3AgPSB3aW5kb3cuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgIHNjcm9sbExlZnQgPSB3aW5kb3cuZ2V0U2Nyb2xsTGVmdCgpLFxuICAgICAgICB0b3BPZmZzZXQgPSB0aGlzLmdldFRvcE9mZnNldCgpLFxuICAgICAgICBsZWZ0T2Zmc2V0ID0gdGhpcy5nZXRMZWZ0T2Zmc2V0KCksXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSB0aGlzLmdldFN0YXJ0TW91c2VUb3AoKSxcbiAgICAgICAgc3RhcnRNb3VzZUxlZnQgPSB0aGlzLmdldFN0YXJ0TW91c2VMZWZ0KCksXG4gICAgICAgIGN1c3RvbUV2ZW50VHlwZSA9IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIHJlbGF0aXZlTW91c2VUb3AgPSBtb3VzZVRvcCAtIHN0YXJ0TW91c2VUb3AsXG4gICAgICAgIHJlbGF0aXZlTW91c2VMZWZ0ID0gbW91c2VMZWZ0IC0gc3RhcnRNb3VzZUxlZnQ7XG5cbiAgbGV0IHRvcCA9IHN0YXJ0TW91c2VUb3AgKyByZWxhdGl2ZU1vdXNlVG9wIC0gdG9wT2Zmc2V0IC0gc2Nyb2xsVG9wLFxuICAgICAgbGVmdCA9IHN0YXJ0TW91c2VMZWZ0ICsgcmVsYXRpdmVNb3VzZUxlZnQgLSBsZWZ0T2Zmc2V0IC0gc2Nyb2xsTGVmdDtcblxuICB0b3AgPSBgJHt0b3B9cHhgOyAvLy9cbiAgbGVmdCA9IGAke2xlZnR9cHhgOyAvLy9cblxuICBjb25zdCBjc3MgPSB7XG4gICAgdG9wLFxuICAgIGxlZnRcbiAgfTtcblxuICB0aGlzLmNzcyhjc3MpO1xuXG4gIHRoaXMuY2FsbEN1c3RvbUhhbmRsZXJzKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQsIHJlbGF0aXZlTW91c2VUb3AsIHJlbGF0aXZlTW91c2VMZWZ0KTtcbn1cblxuZnVuY3Rpb24gc3RhcnRXYWl0aW5nVG9EcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KSB7XG4gIGxldCB0aW1lb3V0ID0gdGhpcy5nZXRUaW1lb3V0KCk7XG5cbiAgaWYgKHRpbWVvdXQgPT09IG51bGwpIHtcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0VGltZW91dCgpO1xuXG4gICAgICB0aGlzLnN0YXJ0RHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCk7XG4gICAgfSwgU1RBUlRfRFJBR0dJTkdfREVMQVkpO1xuXG4gICAgdGhpcy51cGRhdGVUaW1lb3V0KHRpbWVvdXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0b3BXYWl0aW5nVG9EcmFnKCkge1xuICBjb25zdCB0aW1lb3V0ID0gdGhpcy5nZXRUaW1lb3V0KCk7XG5cbiAgaWYgKHRpbWVvdXQgIT09IG51bGwpIHtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG5cbiAgICB0aGlzLnJlc2V0VGltZW91dCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRpbWVvdXQoKSB7XG4gIGNvbnN0IHsgdGltZW91dCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiB0aW1lb3V0O1xufVxuXG5mdW5jdGlvbiByZXNldFRpbWVvdXQoKSB7XG4gIGNvbnN0IHRpbWVvdXQgPSBudWxsO1xuXG4gIHRoaXMudXBkYXRlVGltZW91dCh0aW1lb3V0KTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVGltZW91dCh0aW1lb3V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRpbWVvdXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFRvcE9mZnNldCgpIHtcbiAgY29uc3QgeyB0b3BPZmZzZXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gdG9wT2Zmc2V0O1xufVxuXG5mdW5jdGlvbiBnZXRMZWZ0T2Zmc2V0KCkge1xuICBjb25zdCB7IGxlZnRPZmZzZXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gbGVmdE9mZnNldDtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhcnRNb3VzZVRvcCgpIHtcbiAgY29uc3QgeyBzdGFydE1vdXNlVG9wIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHN0YXJ0TW91c2VUb3A7XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW91c2VMZWZ0KCkge1xuICBjb25zdCB7IHN0YXJ0TW91c2VMZWZ0IH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHN0YXJ0TW91c2VMZWZ0O1xufVxuXG5mdW5jdGlvbiBzZXRUb3BPZmZzZXQodG9wT2Zmc2V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRvcE9mZnNldFxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0TGVmdE9mZnNldChsZWZ0T2Zmc2V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIGxlZnRPZmZzZXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldFN0YXJ0TW91c2VUb3Aoc3RhcnRNb3VzZVRvcCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBzdGFydE1vdXNlVG9wXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXRTdGFydE1vdXNlTGVmdChzdGFydE1vdXNlTGVmdCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBzdGFydE1vdXNlTGVmdFxuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBlbmFibGVEcmFnLFxuICBkaXNhYmxlRHJhZyxcbiAgb25DdXN0b21EcmFnLFxuICBvZmZDdXN0b21EcmFnLFxuICBvbkN1c3RvbVN0b3BEcmFnLFxuICBvZmZDdXN0b21TdG9wRHJhZyxcbiAgb25DdXN0b21TdGFydERyYWcsXG4gIG9mZkN1c3RvbVN0YXJ0RHJhZyxcbiAgaXNEcmFnZ2luZyxcbiAgc3RhcnREcmFnLFxuICBzdG9wRHJhZyxcbiAgZHJhZyxcbiAgc3RhcnRXYWl0aW5nVG9EcmFnLFxuICBzdG9wV2FpdGluZ1RvRHJhZyxcbiAgZ2V0VGltZW91dCxcbiAgcmVzZXRUaW1lb3V0LFxuICB1cGRhdGVUaW1lb3V0LFxuICBnZXRUb3BPZmZzZXQsXG4gIGdldExlZnRPZmZzZXQsXG4gIGdldFN0YXJ0TW91c2VUb3AsXG4gIGdldFN0YXJ0TW91c2VMZWZ0LFxuICBzZXRUb3BPZmZzZXQsXG4gIHNldExlZnRPZmZzZXQsXG4gIHNldFN0YXJ0TW91c2VUb3AsXG4gIHNldFN0YXJ0TW91c2VMZWZ0XG59O1xuXG5mdW5jdGlvbiBrZXlEb3duSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCB7IGtleUNvZGUgfSA9IGV2ZW50LFxuICAgICAgICBlc2NhcGVLZXkgPSAoa2V5Q29kZSA9PT0gRVNDQVBFX0tFWV9DT0RFKSxcbiAgICAgICAgYWJvcnRlZCA9IHRydWU7XG5cbiAgaWYgKGVzY2FwZUtleSkge1xuICAgIHRoaXMuc3RvcERyYWcoZXZlbnQsIGVsZW1lbnQsIGFib3J0ZWQpO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91c2VVcEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKSxcbiAgICAgICAgYWJvcnRlZCA9IGZhbHNlO1xuXG4gIGRyYWdnaW5nID9cbiAgICB0aGlzLnN0b3BEcmFnKGV2ZW50LCBlbGVtZW50LCBhYm9ydGVkKSA6XG4gICAgICB0aGlzLnN0b3BXYWl0aW5nVG9EcmFnKCk7XG5cbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgd2luZG93Lm9mZkV2ZW50KEJMVVJfRVZFTlRfVFlQRSwgbW91c2VVcEhhbmRsZXIsIHRoaXMpOyAgLy8vXG5cbiAgd2luZG93Lm9mZk1vdXNlVXAobW91c2VVcEhhbmRsZXIsIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBtb3VzZURvd25IYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IHsgYnV0dG9uIH0gPSBldmVudDtcblxuICBpZiAoYnV0dG9uID09PSBMRUZUX01PVVNFX0JVVFRPTikge1xuICAgIGNvbnN0IGRyYWdnaW5nID0gdGhpcy5pc0RyYWdnaW5nKCk7XG5cbiAgICBpZiAoIWRyYWdnaW5nKSB7XG4gICAgICBjb25zdCBtb3VzZVRvcCA9IG1vdXNlVG9wRnJvbUV2ZW50KGV2ZW50KSxcbiAgICAgICAgICAgIG1vdXNlTGVmdCA9IG1vdXNlTGVmdEZyb21FdmVudChldmVudCk7XG5cbiAgICAgIHRoaXMuc3RhcnRXYWl0aW5nVG9EcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgICB9XG4gIH1cblxuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICB3aW5kb3cub25FdmVudChCTFVSX0VWRU5UX1RZUEUsIG1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXG5cbiAgd2luZG93Lm9uTW91c2VVcChtb3VzZVVwSGFuZGxlciwgdGhpcyk7XG59XG5cbmZ1bmN0aW9uIG1vdXNlTW92ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKTtcblxuICBpZiAoZHJhZ2dpbmcpIHtcbiAgICBjb25zdCBtb3VzZVRvcCA9IG1vdXNlVG9wRnJvbUV2ZW50KGV2ZW50KSxcbiAgICAgICAgICBtb3VzZUxlZnQgPSBtb3VzZUxlZnRGcm9tRXZlbnQoZXZlbnQpO1xuXG4gICAgdGhpcy5kcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgfVxuXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xufVxuIl0sIm5hbWVzIjpbIkVTQ0FQRV9LRVlfQ09ERSIsImtleUNvZGVzIiwiQkxVUl9FVkVOVF9UWVBFIiwiZXZlbnRUeXBlcyIsIkxFRlRfTU9VU0VfQlVUVE9OIiwibW91c2VCdXR0b25zIiwiZ2V0RHJhZ0VsZW1lbnQiLCJkcmFnRWxlbWVudCIsImdsb2JhbFRoaXMiLCJzZXREcmFnRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsInJlc2V0RHJhZ0VsZW1lbnQiLCJlbmFibGVEcmFnIiwidGltZW91dCIsInRvcE9mZnNldCIsImxlZnRPZmZzZXQiLCJzdGFydE1vdXNlVG9wIiwic3RhcnRNb3VzZUxlZnQiLCJvbk1vdXNlRG93biIsIm1vdXNlRG93bkhhbmRsZXIiLCJ1cGRhdGVTdGF0ZSIsImRpc2FibGVEcmFnIiwib2ZmTW91c2VEb3duIiwib25DdXN0b21EcmFnIiwiZHJhZ0N1c3RvbUhhbmRsZXIiLCJlbGVtZW50IiwiY3VzdG9tRXZlbnRUeXBlIiwiRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsImN1c3RvbUhhbmRsZXIiLCJvbkN1c3RvbUV2ZW50Iiwib2ZmQ3VzdG9tRHJhZyIsIm9mZkN1c3RvbUV2ZW50Iiwib25DdXN0b21TdG9wRHJhZyIsInN0b3BEcmFnQ3VzdG9tSGFuZGxlciIsIlNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIm9mZkN1c3RvbVN0b3BEcmFnIiwib25DdXN0b21TdGFydERyYWciLCJzdGFydERyYWdDdXN0b21IYW5kbGVyIiwiU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIm9mZkN1c3RvbVN0YXJ0RHJhZyIsImlzRHJhZ2dpbmciLCJkcmFnZ2luZyIsImhhc0NsYXNzIiwic3RhcnREcmFnIiwiZXZlbnQiLCJtb3VzZVRvcCIsIm1vdXNlTGVmdCIsImJvdW5kcyIsImdldEJvdW5kcyIsImJvdW5kc1RvcCIsImdldFRvcCIsImJvdW5kc0xlZnQiLCJnZXRMZWZ0IiwiYm91bmRzUmlnaHQiLCJnZXRSaWdodCIsImJvdW5kc0JvdHRvbSIsImdldEJvdHRvbSIsImJvdW5kc1dpZHRoIiwiYm91bmRzSGVpZ2h0IiwiTWF0aCIsImZsb29yIiwid2luZG93Iiwib25LZXlEb3duIiwia2V5RG93bkhhbmRsZXIiLCJvbk1vdXNlTW92ZSIsIm1vdXNlTW92ZUhhbmRsZXIiLCJhZGRDbGFzcyIsInNldFRvcE9mZnNldCIsInNldExlZnRPZmZzZXQiLCJzZXRTdGFydE1vdXNlVG9wIiwic2V0U3RhcnRNb3VzZUxlZnQiLCJjYWxsQ3VzdG9tSGFuZGxlcnMiLCJkcmFnIiwic3RvcERyYWciLCJhYm9ydGVkIiwiZHJvcEVsZW1lbnQiLCJnZXREcm9wRWxlbWVudCIsIm9mZktleURvd24iLCJvZmZNb3VzZU1vdmUiLCJkb25lIiwiY2FsbEN1c3RvbUhhbmRsZXJzQXN5bmMiLCJyZW1vdmVDbGFzcyIsImRyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50IiwiY2hlY2tEcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCIsImRyb3AiLCJzY3JvbGxUb3AiLCJnZXRTY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwiZ2V0U2Nyb2xsTGVmdCIsImdldFRvcE9mZnNldCIsImdldExlZnRPZmZzZXQiLCJnZXRTdGFydE1vdXNlVG9wIiwiZ2V0U3RhcnRNb3VzZUxlZnQiLCJyZWxhdGl2ZU1vdXNlVG9wIiwicmVsYXRpdmVNb3VzZUxlZnQiLCJ0b3AiLCJsZWZ0IiwiY3NzIiwic3RhcnRXYWl0aW5nVG9EcmFnIiwiZ2V0VGltZW91dCIsInNldFRpbWVvdXQiLCJyZXNldFRpbWVvdXQiLCJTVEFSVF9EUkFHR0lOR19ERUxBWSIsInVwZGF0ZVRpbWVvdXQiLCJzdG9wV2FpdGluZ1RvRHJhZyIsImNsZWFyVGltZW91dCIsImdldFN0YXRlIiwia2V5Q29kZSIsImVzY2FwZUtleSIsInN0b3BQcm9wYWdhdGlvbiIsIm1vdXNlVXBIYW5kbGVyIiwib2ZmRXZlbnQiLCJvZmZNb3VzZVVwIiwiYnV0dG9uIiwibW91c2VUb3BGcm9tRXZlbnQiLCJtb3VzZUxlZnRGcm9tRXZlbnQiLCJvbkV2ZW50Iiwib25Nb3VzZVVwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFzU0E7OztlQUFBOzs7eUJBcFN5QjtvQkFDd0I7eUJBRVo7eUJBQ2M7cUJBQ0c7Z0NBQzRDO0FBRWxHLElBQU0sQUFBRUEsa0JBQW9CQyxtQkFBUSxDQUE1QkQsaUJBQ0YsQUFBRUUsa0JBQW9CQyxnQkFBVSxDQUE5QkQsaUJBQ0YsQUFBRUUsb0JBQXNCQyxrQkFBWSxDQUFsQ0Q7QUFFUixTQUFTRTtJQUNQLElBQU0sQUFBRUMsY0FBZ0JDLFdBQWhCRDtJQUVSLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTRSxlQUFlRixXQUFXO0lBQ2pDRyxPQUFPQyxNQUFNLENBQUNILFlBQVk7UUFDeEJELGFBQUFBO0lBQ0Y7QUFDRjtBQUVBLFNBQVNLO0lBQ1AsSUFBTUwsY0FBYztJQUVwQkUsZUFBZUY7QUFDakI7QUFFQUcsT0FBT0MsTUFBTSxDQUFDSCxZQUFZO0lBQ3hCRixnQkFBQUE7SUFDQUcsZ0JBQUFBO0lBQ0FHLGtCQUFBQTtBQUNGO0FBRUFBO0FBRUEsU0FBU0M7SUFDUCxJQUFNQyxVQUFVLE1BQ1ZDLFlBQVksTUFDWkMsYUFBYSxNQUNiQyxnQkFBZ0IsTUFDaEJDLGlCQUFpQjtJQUV2QixJQUFJLENBQUNDLFdBQVcsQ0FBQ0Msa0JBQWtCLElBQUk7SUFFdkMsSUFBSSxDQUFDQyxXQUFXLENBQUM7UUFDZlAsU0FBQUE7UUFDQUMsV0FBQUE7UUFDQUMsWUFBQUE7UUFDQUMsZUFBQUE7UUFDQUMsZ0JBQUFBO0lBQ0Y7QUFDRjtBQUVBLFNBQVNJO0lBQ1AsSUFBSSxDQUFDQyxZQUFZLENBQUNI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
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZHJhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsga2V5Q29kZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCIgO1xuaW1wb3J0IHsgd2luZG93LCBldmVudFR5cGVzLCBtb3VzZUJ1dHRvbnMgfSBmcm9tIFwiZWFzeVwiO1xuXG5pbXBvcnQgeyBTVEFSVF9EUkFHR0lOR19ERUxBWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHsgbW91c2VUb3BGcm9tRXZlbnQsIG1vdXNlTGVmdEZyb21FdmVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZXZlbnRcIjtcbmltcG9ydCB7IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsIFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSwgU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuLi9jdXN0b21FdmVudFR5cGVzXCI7XG5cbmNvbnN0IHsgRVNDQVBFX0tFWV9DT0RFIH0gPSBrZXlDb2RlcyxcbiAgICAgIHsgQkxVUl9FVkVOVF9UWVBFIH0gPSBldmVudFR5cGVzLFxuICAgICAgeyBMRUZUX01PVVNFX0JVVFRPTiB9ID0gbW91c2VCdXR0b25zO1xuXG5mdW5jdGlvbiBnZXREcmFnRWxlbWVudCgpIHtcbiAgY29uc3QgeyBkcmFnRWxlbWVudCB9ID0gZ2xvYmFsVGhpcztcblxuICByZXR1cm4gZHJhZ0VsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIHNldERyYWdFbGVtZW50KGRyYWdFbGVtZW50KSB7XG4gIE9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcywge1xuICAgIGRyYWdFbGVtZW50XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXNldERyYWdFbGVtZW50KCkge1xuICBjb25zdCBkcmFnRWxlbWVudCA9IG51bGw7XG5cbiAgc2V0RHJhZ0VsZW1lbnQoZHJhZ0VsZW1lbnQpO1xufVxuXG5PYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgZ2V0RHJhZ0VsZW1lbnQsXG4gIHNldERyYWdFbGVtZW50LFxuICByZXNldERyYWdFbGVtZW50XG59KTtcblxucmVzZXREcmFnRWxlbWVudCgpO1xuXG5mdW5jdGlvbiBlbmFibGVEcmFnKCkge1xuICBjb25zdCB0aW1lb3V0ID0gbnVsbCxcbiAgICAgICAgdG9wT2Zmc2V0ID0gbnVsbCxcbiAgICAgICAgbGVmdE9mZnNldCA9IG51bGwsXG4gICAgICAgIGRyYWdFbmFibGVkID0gdHJ1ZSxcbiAgICAgICAgc3RhcnRNb3VzZVRvcCA9IG51bGwsXG4gICAgICAgIHN0YXJ0TW91c2VMZWZ0ID0gbnVsbDtcblxuICB0aGlzLm9uTW91c2VEb3duKG1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xuXG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRpbWVvdXQsXG4gICAgdG9wT2Zmc2V0LFxuICAgIGxlZnRPZmZzZXQsXG4gICAgZHJhZ0VuYWJsZWQsXG4gICAgc3RhcnRNb3VzZVRvcCxcbiAgICBzdGFydE1vdXNlTGVmdFxuICB9KTtcbn1cblxuZnVuY3Rpb24gZGlzYWJsZURyYWcoKSB7XG4gIGNvbnN0IGRyYWdFbmFibGVkID0gZmFsc2U7XG5cbiAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgZHJhZ0VuYWJsZWRcbiAgfSk7XG5cbiAgdGhpcy5vZmZNb3VzZURvd24obW91c2VEb3duSGFuZGxlciwgdGhpcyk7XG59XG5cbmZ1bmN0aW9uIG9uQ3VzdG9tRHJhZyhkcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBEUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gZHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tRHJhZyhkcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBEUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gZHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9mZkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9uQ3VzdG9tU3RvcERyYWcoc3RvcERyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IHN0b3BEcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub25DdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZDdXN0b21TdG9wRHJhZyhzdG9wRHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gU1RPUF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RvcERyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vZmZDdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvbkN1c3RvbVN0YXJ0RHJhZyhzdGFydERyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNUQVJUX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzdGFydERyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vbkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZkN1c3RvbVN0YXJ0RHJhZyhzdGFydERyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNUQVJUX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzdGFydERyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vZmZDdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBpc0RyYWdFbmFibGVkKCkge1xuICBjb25zdCB7IGRyYWdFbmFibGVkID0gZmFsc2UgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gZHJhZ0VuYWJsZWQ7XG59XG5cbmZ1bmN0aW9uIGlzRHJhZ2dpbmcoKSB7XG4gIGNvbnN0IGRyYWdnaW5nID0gdGhpcy5oYXNDbGFzcyhcImRyYWdnaW5nXCIpO1xuXG4gIHJldHVybiBkcmFnZ2luZztcbn1cblxuZnVuY3Rpb24gc3RhcnREcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KSB7XG4gIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRzKCksXG4gICAgICAgIGJvdW5kc1RvcCA9IGJvdW5kcy5nZXRUb3AoKSxcbiAgICAgICAgYm91bmRzTGVmdCA9IGJvdW5kcy5nZXRMZWZ0KCksXG4gICAgICAgIGJvdW5kc1JpZ2h0ID0gYm91bmRzLmdldFJpZ2h0KCksXG4gICAgICAgIGJvdW5kc0JvdHRvbSA9IGJvdW5kcy5nZXRCb3R0b20oKSxcbiAgICAgICAgYm91bmRzV2lkdGggPSBib3VuZHNSaWdodCAtIGJvdW5kc0xlZnQsXG4gICAgICAgIGJvdW5kc0hlaWdodCA9IGJvdW5kc0JvdHRvbSAtIGJvdW5kc1RvcCxcbiAgICAgICAgdG9wT2Zmc2V0ID0gTWF0aC5mbG9vcihib3VuZHNIZWlnaHQgLyAyKSxcbiAgICAgICAgbGVmdE9mZnNldCA9IE1hdGguZmxvb3IoYm91bmRzV2lkdGggLyAyKSxcbiAgICAgICAgZHJhZ0VsZW1lbnQgPSB0aGlzLCAvLy9cbiAgICAgICAgc3RhcnRNb3VzZVRvcCA9IG1vdXNlVG9wLCAvLy9cbiAgICAgICAgc3RhcnRNb3VzZUxlZnQgPSBtb3VzZUxlZnQsIC8vL1xuICAgICAgICBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFO1xuXG4gIHdpbmRvdy5vbktleURvd24oa2V5RG93bkhhbmRsZXIsIHRoaXMpO1xuXG4gIHdpbmRvdy5vbk1vdXNlTW92ZShtb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcblxuICB0aGlzLmFkZENsYXNzKFwiZHJhZ2dpbmdcIik7XG5cbiAgc2V0RHJhZ0VsZW1lbnQoZHJhZ0VsZW1lbnQpO1xuXG4gIHRoaXMuc2V0VG9wT2Zmc2V0KHRvcE9mZnNldCk7XG5cbiAgdGhpcy5zZXRMZWZ0T2Zmc2V0KGxlZnRPZmZzZXQpO1xuXG4gIHRoaXMuc2V0U3RhcnRNb3VzZVRvcChzdGFydE1vdXNlVG9wKTtcblxuICB0aGlzLnNldFN0YXJ0TW91c2VMZWZ0KHN0YXJ0TW91c2VMZWZ0KTtcblxuICB0aGlzLmNhbGxDdXN0b21IYW5kbGVycyhjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcblxuICB0aGlzLmRyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xufVxuXG5mdW5jdGlvbiBzdG9wRHJhZyhldmVudCwgZWxlbWVudCwgYWJvcnRlZCkge1xuICBjb25zdCBkcm9wRWxlbWVudCA9IGdldERyb3BFbGVtZW50KCksXG4gICAgICAgIGN1c3RvbUV2ZW50VHlwZSA9IFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRTtcblxuICB3aW5kb3cub2ZmS2V5RG93bihrZXlEb3duSGFuZGxlciwgdGhpcyk7XG5cbiAgd2luZG93Lm9mZk1vdXNlTW92ZShtb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcblxuICBjb25zdCBkb25lID0gKCkgPT4ge1xuICAgIHRoaXMuY2FsbEN1c3RvbUhhbmRsZXJzQXN5bmMoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCwgZHJvcEVsZW1lbnQsIGFib3J0ZWQsICgpID0+IHtcbiAgICAgIHJlc2V0RHJhZ0VsZW1lbnQoKTtcblxuICAgICAgdGhpcy5yZW1vdmVDbGFzcyhcImRyYWdnaW5nXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKGRyb3BFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgbGV0IGRyYWdFbGVtZW50ID0gdGhpczsgLy8vXG5cbiAgICBjb25zdCBkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCA9IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQoZHJhZ0VsZW1lbnQsIGRyb3BFbGVtZW50KTtcblxuICAgIGlmIChkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCkge1xuICAgICAgZHJhZ0VsZW1lbnQgPSBudWxsO1xuICAgIH1cblxuICAgIGRyb3BFbGVtZW50LmRyb3AoZXZlbnQsIGVsZW1lbnQsIGRyYWdFbGVtZW50LCBhYm9ydGVkLCBkb25lKTtcbiAgfSBlbHNlIHtcbiAgICBkb25lKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCkge1xuICBjb25zdCBzY3JvbGxUb3AgPSB3aW5kb3cuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgIHNjcm9sbExlZnQgPSB3aW5kb3cuZ2V0U2Nyb2xsTGVmdCgpLFxuICAgICAgICB0b3BPZmZzZXQgPSB0aGlzLmdldFRvcE9mZnNldCgpLFxuICAgICAgICBsZWZ0T2Zmc2V0ID0gdGhpcy5nZXRMZWZ0T2Zmc2V0KCksXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSB0aGlzLmdldFN0YXJ0TW91c2VUb3AoKSxcbiAgICAgICAgc3RhcnRNb3VzZUxlZnQgPSB0aGlzLmdldFN0YXJ0TW91c2VMZWZ0KCksXG4gICAgICAgIGN1c3RvbUV2ZW50VHlwZSA9IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIHJlbGF0aXZlTW91c2VUb3AgPSBtb3VzZVRvcCAtIHN0YXJ0TW91c2VUb3AsXG4gICAgICAgIHJlbGF0aXZlTW91c2VMZWZ0ID0gbW91c2VMZWZ0IC0gc3RhcnRNb3VzZUxlZnQ7XG5cbiAgbGV0IHRvcCA9IHN0YXJ0TW91c2VUb3AgKyByZWxhdGl2ZU1vdXNlVG9wIC0gdG9wT2Zmc2V0IC0gc2Nyb2xsVG9wLFxuICAgICAgbGVmdCA9IHN0YXJ0TW91c2VMZWZ0ICsgcmVsYXRpdmVNb3VzZUxlZnQgLSBsZWZ0T2Zmc2V0IC0gc2Nyb2xsTGVmdDtcblxuICB0b3AgPSBgJHt0b3B9cHhgOyAvLy9cbiAgbGVmdCA9IGAke2xlZnR9cHhgOyAvLy9cblxuICBjb25zdCBjc3MgPSB7XG4gICAgdG9wLFxuICAgIGxlZnRcbiAgfTtcblxuICB0aGlzLmNzcyhjc3MpO1xuXG4gIHRoaXMuY2FsbEN1c3RvbUhhbmRsZXJzKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQsIHJlbGF0aXZlTW91c2VUb3AsIHJlbGF0aXZlTW91c2VMZWZ0KTtcbn1cblxuZnVuY3Rpb24gc3RhcnRXYWl0aW5nVG9EcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KSB7XG4gIGxldCB0aW1lb3V0ID0gdGhpcy5nZXRUaW1lb3V0KCk7XG5cbiAgaWYgKHRpbWVvdXQgPT09IG51bGwpIHtcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0VGltZW91dCgpO1xuXG4gICAgICB0aGlzLnN0YXJ0RHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCk7XG4gICAgfSwgU1RBUlRfRFJBR0dJTkdfREVMQVkpO1xuXG4gICAgdGhpcy51cGRhdGVUaW1lb3V0KHRpbWVvdXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0b3BXYWl0aW5nVG9EcmFnKCkge1xuICBjb25zdCB0aW1lb3V0ID0gdGhpcy5nZXRUaW1lb3V0KCk7XG5cbiAgaWYgKHRpbWVvdXQgIT09IG51bGwpIHtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG5cbiAgICB0aGlzLnJlc2V0VGltZW91dCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRpbWVvdXQoKSB7XG4gIGNvbnN0IHsgdGltZW91dCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiB0aW1lb3V0O1xufVxuXG5mdW5jdGlvbiByZXNldFRpbWVvdXQoKSB7XG4gIGNvbnN0IHRpbWVvdXQgPSBudWxsO1xuXG4gIHRoaXMudXBkYXRlVGltZW91dCh0aW1lb3V0KTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVGltZW91dCh0aW1lb3V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRpbWVvdXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFRvcE9mZnNldCgpIHtcbiAgY29uc3QgeyB0b3BPZmZzZXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gdG9wT2Zmc2V0O1xufVxuXG5mdW5jdGlvbiBnZXRMZWZ0T2Zmc2V0KCkge1xuICBjb25zdCB7IGxlZnRPZmZzZXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gbGVmdE9mZnNldDtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhcnRNb3VzZVRvcCgpIHtcbiAgY29uc3QgeyBzdGFydE1vdXNlVG9wIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHN0YXJ0TW91c2VUb3A7XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW91c2VMZWZ0KCkge1xuICBjb25zdCB7IHN0YXJ0TW91c2VMZWZ0IH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHN0YXJ0TW91c2VMZWZ0O1xufVxuXG5mdW5jdGlvbiBzZXRUb3BPZmZzZXQodG9wT2Zmc2V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRvcE9mZnNldFxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0TGVmdE9mZnNldChsZWZ0T2Zmc2V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIGxlZnRPZmZzZXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldFN0YXJ0TW91c2VUb3Aoc3RhcnRNb3VzZVRvcCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBzdGFydE1vdXNlVG9wXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXRTdGFydE1vdXNlTGVmdChzdGFydE1vdXNlTGVmdCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBzdGFydE1vdXNlTGVmdFxuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBlbmFibGVEcmFnLFxuICBkaXNhYmxlRHJhZyxcbiAgb25DdXN0b21EcmFnLFxuICBvZmZDdXN0b21EcmFnLFxuICBvbkN1c3RvbVN0b3BEcmFnLFxuICBvZmZDdXN0b21TdG9wRHJhZyxcbiAgb25DdXN0b21TdGFydERyYWcsXG4gIG9mZkN1c3RvbVN0YXJ0RHJhZyxcbiAgaXNEcmFnRW5hYmxlZCxcbiAgaXNEcmFnZ2luZyxcbiAgc3RhcnREcmFnLFxuICBzdG9wRHJhZyxcbiAgZHJhZyxcbiAgc3RhcnRXYWl0aW5nVG9EcmFnLFxuICBzdG9wV2FpdGluZ1RvRHJhZyxcbiAgZ2V0VGltZW91dCxcbiAgcmVzZXRUaW1lb3V0LFxuICB1cGRhdGVUaW1lb3V0LFxuICBnZXRUb3BPZmZzZXQsXG4gIGdldExlZnRPZmZzZXQsXG4gIGdldFN0YXJ0TW91c2VUb3AsXG4gIGdldFN0YXJ0TW91c2VMZWZ0LFxuICBzZXRUb3BPZmZzZXQsXG4gIHNldExlZnRPZmZzZXQsXG4gIHNldFN0YXJ0TW91c2VUb3AsXG4gIHNldFN0YXJ0TW91c2VMZWZ0XG59O1xuXG5mdW5jdGlvbiBrZXlEb3duSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCB7IGtleUNvZGUgfSA9IGV2ZW50LFxuICAgICAgICBlc2NhcGVLZXkgPSAoa2V5Q29kZSA9PT0gRVNDQVBFX0tFWV9DT0RFKSxcbiAgICAgICAgYWJvcnRlZCA9IHRydWU7XG5cbiAgaWYgKGVzY2FwZUtleSkge1xuICAgIHRoaXMuc3RvcERyYWcoZXZlbnQsIGVsZW1lbnQsIGFib3J0ZWQpO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91c2VVcEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKSxcbiAgICAgICAgYWJvcnRlZCA9IGZhbHNlO1xuXG4gIGRyYWdnaW5nID9cbiAgICB0aGlzLnN0b3BEcmFnKGV2ZW50LCBlbGVtZW50LCBhYm9ydGVkKSA6XG4gICAgICB0aGlzLnN0b3BXYWl0aW5nVG9EcmFnKCk7XG5cbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgd2luZG93Lm9mZkV2ZW50KEJMVVJfRVZFTlRfVFlQRSwgbW91c2VVcEhhbmRsZXIsIHRoaXMpOyAgLy8vXG5cbiAgd2luZG93Lm9mZk1vdXNlVXAobW91c2VVcEhhbmRsZXIsIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBtb3VzZURvd25IYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IHsgYnV0dG9uIH0gPSBldmVudDtcblxuICBpZiAoYnV0dG9uID09PSBMRUZUX01PVVNFX0JVVFRPTikge1xuICAgIGNvbnN0IGRyYWdnaW5nID0gdGhpcy5pc0RyYWdnaW5nKCk7XG5cbiAgICBpZiAoIWRyYWdnaW5nKSB7XG4gICAgICBjb25zdCBtb3VzZVRvcCA9IG1vdXNlVG9wRnJvbUV2ZW50KGV2ZW50KSxcbiAgICAgICAgICAgIG1vdXNlTGVmdCA9IG1vdXNlTGVmdEZyb21FdmVudChldmVudCk7XG5cbiAgICAgIHRoaXMuc3RhcnRXYWl0aW5nVG9EcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgICB9XG4gIH1cblxuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICB3aW5kb3cub25FdmVudChCTFVSX0VWRU5UX1RZUEUsIG1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXG5cbiAgd2luZG93Lm9uTW91c2VVcChtb3VzZVVwSGFuZGxlciwgdGhpcyk7XG59XG5cbmZ1bmN0aW9uIG1vdXNlTW92ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKTtcblxuICBpZiAoZHJhZ2dpbmcpIHtcbiAgICBjb25zdCBtb3VzZVRvcCA9IG1vdXNlVG9wRnJvbUV2ZW50KGV2ZW50KSxcbiAgICAgICAgICBtb3VzZUxlZnQgPSBtb3VzZUxlZnRGcm9tRXZlbnQoZXZlbnQpO1xuXG4gICAgdGhpcy5kcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgfVxuXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xufVxuIl0sIm5hbWVzIjpbIkVTQ0FQRV9LRVlfQ09ERSIsImtleUNvZGVzIiwiQkxVUl9FVkVOVF9UWVBFIiwiZXZlbnRUeXBlcyIsIkxFRlRfTU9VU0VfQlVUVE9OIiwibW91c2VCdXR0b25zIiwiZ2V0RHJhZ0VsZW1lbnQiLCJkcmFnRWxlbWVudCIsImdsb2JhbFRoaXMiLCJzZXREcmFnRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsInJlc2V0RHJhZ0VsZW1lbnQiLCJlbmFibGVEcmFnIiwidGltZW91dCIsInRvcE9mZnNldCIsImxlZnRPZmZzZXQiLCJkcmFnRW5hYmxlZCIsInN0YXJ0TW91c2VUb3AiLCJzdGFydE1vdXNlTGVmdCIsIm9uTW91c2VEb3duIiwibW91c2VEb3duSGFuZGxlciIsInVwZGF0ZVN0YXRlIiwiZGlzYWJsZURyYWciLCJvZmZNb3VzZURvd24iLCJvbkN1c3RvbURyYWciLCJkcmFnQ3VzdG9tSGFuZGxlciIsImVsZW1lbnQiLCJjdXN0b21FdmVudFR5cGUiLCJEUkFHX0NVU1RPTV9FVkVOVF9UWVBFIiwiY3VzdG9tSGFuZGxlciIsIm9uQ3VzdG9tRXZlbnQiLCJvZmZDdXN0b21EcmFnIiwib2ZmQ3VzdG9tRXZlbnQiLCJvbkN1c3RvbVN0b3BEcmFnIiwic3RvcERyYWdDdXN0b21IYW5kbGVyIiwiU1RPUF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFIiwib2ZmQ3VzdG9tU3RvcERyYWciLCJvbkN1c3RvbVN0YXJ0RHJhZyIsInN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXIiLCJTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFIiwib2ZmQ3VzdG9tU3RhcnREcmFnIiwiaXNEcmFnRW5hYmxlZCIsImdldFN0YXRlIiwiaXNEcmFnZ2luZyIsImRyYWdnaW5nIiwiaGFzQ2xhc3MiLCJzdGFydERyYWciLCJldmVudCIsIm1vdXNlVG9wIiwibW91c2VMZWZ0IiwiYm91bmRzIiwiZ2V0Qm91bmRzIiwiYm91bmRzVG9wIiwiZ2V0VG9wIiwiYm91bmRzTGVmdCIsImdldExlZnQiLCJib3VuZHNSaWdodCIsImdldFJpZ2h0IiwiYm91bmRzQm90dG9tIiwiZ2V0Qm90dG9tIiwiYm91bmRzV2lkdGgiLCJib3VuZHNIZWlnaHQiLCJNYXRoIiwiZmxvb3IiLCJ3aW5kb3ciLCJvbktleURvd24iLCJrZXlEb3duSGFuZGxlciIsIm9uTW91c2VNb3ZlIiwibW91c2VNb3ZlSGFuZGxlciIsImFkZENsYXNzIiwic2V0VG9wT2Zmc2V0Iiwic2V0TGVmdE9mZnNldCIsInNldFN0YXJ0TW91c2VUb3AiLCJzZXRTdGFydE1vdXNlTGVmdCIsImNhbGxDdXN0b21IYW5kbGVycyIsImRyYWciLCJzdG9wRHJhZyIsImFib3J0ZWQiLCJkcm9wRWxlbWVudCIsImdldERyb3BFbGVtZW50Iiwib2ZmS2V5RG93biIsIm9mZk1vdXNlTW92ZSIsImRvbmUiLCJjYWxsQ3VzdG9tSGFuZGxlcnNBc3luYyIsInJlbW92ZUNsYXNzIiwiZHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQiLCJjaGVja0RyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50IiwiZHJvcCIsInNjcm9sbFRvcCIsImdldFNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJnZXRTY3JvbGxMZWZ0IiwiZ2V0VG9wT2Zmc2V0IiwiZ2V0TGVmdE9mZnNldCIsImdldFN0YXJ0TW91c2VUb3AiLCJnZXRTdGFydE1vdXNlTGVmdCIsInJlbGF0aXZlTW91c2VUb3AiLCJyZWxhdGl2ZU1vdXNlTGVmdCIsInRvcCIsImxlZnQiLCJjc3MiLCJzdGFydFdhaXRpbmdUb0RyYWciLCJnZXRUaW1lb3V0Iiwic2V0VGltZW91dCIsInJlc2V0VGltZW91dCIsIlNUQVJUX0RSQUdHSU5HX0RFTEFZIiwidXBkYXRlVGltZW91dCIsInN0b3BXYWl0aW5nVG9EcmFnIiwiY2xlYXJUaW1lb3V0Iiwia2V5Q29kZSIsImVzY2FwZUtleSIsInN0b3BQcm9wYWdhdGlvbiIsIm1vdXNlVXBIYW5kbGVyIiwib2ZmRXZlbnQiLCJvZmZNb3VzZVVwIiwiYnV0dG9uIiwibW91c2VUb3BGcm9tRXZlbnQiLCJtb3VzZUxlZnRGcm9tRXZlbnQiLCJvbkV2ZW50Iiwib25Nb3VzZVVwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFvVEE7OztlQUFBOzs7eUJBbFR5QjtvQkFDd0I7eUJBRVo7eUJBQ2M7cUJBQ0c7Z0NBQzRDO0FBRWxHLElBQU0sQUFBRUEsa0JBQW9CQyxtQkFBUSxDQUE1QkQsaUJBQ0YsQUFBRUUsa0JBQW9CQyxnQkFBVSxDQUE5QkQsaUJBQ0YsQUFBRUUsb0JBQXNCQyxrQkFBWSxDQUFsQ0Q7QUFFUixTQUFTRTtJQUNQLElBQU0sQUFBRUMsY0FBZ0JDLFdBQWhCRDtJQUVSLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTRSxlQUFlRixXQUFXO0lBQ2pDRyxPQUFPQyxNQUFNLENBQUNILFlBQVk7UUFDeEJELGFBQUFBO0lBQ0Y7QUFDRjtBQUVBLFNBQVNLO0lBQ1AsSUFBTUwsY0FBYztJQUVwQkUsZUFBZUY7QUFDakI7QUFFQUcsT0FBT0MsTUFBTSxDQUFDSCxZQUFZO0lBQ3hCRixnQkFBQUE7SUFD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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.182",
4
+ "version": "1.3.184",
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.",
@@ -42,6 +42,7 @@ function enableDrag() {
42
42
  const timeout = null,
43
43
  topOffset = null,
44
44
  leftOffset = null,
45
+ dragEnabled = true,
45
46
  startMouseTop = null,
46
47
  startMouseLeft = null;
47
48
 
@@ -51,12 +52,19 @@ function enableDrag() {
51
52
  timeout,
52
53
  topOffset,
53
54
  leftOffset,
55
+ dragEnabled,
54
56
  startMouseTop,
55
57
  startMouseLeft
56
58
  });
57
59
  }
58
60
 
59
61
  function disableDrag() {
62
+ const dragEnabled = false;
63
+
64
+ this.updateState({
65
+ dragEnabled
66
+ });
67
+
60
68
  this.offMouseDown(mouseDownHandler, this);
61
69
  }
62
70
 
@@ -102,6 +110,12 @@ function offCustomStartDrag(startDragCustomHandler, element) {
102
110
  this.offCustomEvent(customEventType, customHandler, element);
103
111
  }
104
112
 
113
+ function isDragEnabled() {
114
+ const { dragEnabled = false } = this.getState();
115
+
116
+ return dragEnabled;
117
+ }
118
+
105
119
  function isDragging() {
106
120
  const dragging = this.hasClass("dragging");
107
121
 
@@ -301,6 +315,7 @@ export default {
301
315
  offCustomStopDrag,
302
316
  onCustomStartDrag,
303
317
  offCustomStartDrag,
318
+ isDragEnabled,
304
319
  isDragging,
305
320
  startDrag,
306
321
  stopDrag,