@plait/mind 0.50.1 → 0.51.1

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.
@@ -9,14 +9,14 @@ import { withAbstract } from './with-abstract-resize';
9
9
  import { withMindExtend } from './with-mind-extend';
10
10
  import { withCreateMind } from './with-mind-create';
11
11
  import { withMindHotkey } from './with-mind-hotkey';
12
- import { withNodeHoverDetect } from './with-node-hover-detect';
12
+ import { withNodeHoverHitTest } from './with-node-hover-hit-test';
13
13
  import { withNodeImage } from './with-node-image';
14
14
  import { withNodeResize } from './with-node-resize';
15
15
  import { withNodeImageResize } from './with-node-image-resize';
16
16
  import { withMindFragment } from './with-mind-fragment';
17
17
  export const withMind = (baseBoard) => {
18
18
  const board = baseBoard;
19
- const { drawElement, dblclick, isRectangleHit, isHit, getRectangle, isMovable, isRecursion, isAlign, isImageBindingAllowed } = board;
19
+ const { drawElement, dblClick, isRectangleHit, isHit, getRectangle, isMovable, isRecursion, isAlign, isImageBindingAllowed } = board;
20
20
  board.drawElement = (context) => {
21
21
  if (PlaitMind.isMind(context.element)) {
22
22
  return PlaitMindComponent;
@@ -49,7 +49,7 @@ export const withMind = (baseBoard) => {
49
49
  board.isRectangleHit = (element, selection) => {
50
50
  if (MindElement.isMindElement(board, element)) {
51
51
  const client = getRectangleByNode(MindElement.getNode(element));
52
- const isHit = RectangleClient.isHit(RectangleClient.toRectangleClient([selection.anchor, selection.focus]), client);
52
+ const isHit = RectangleClient.isHit(RectangleClient.getRectangleByPoints([selection.anchor, selection.focus]), client);
53
53
  return isHit;
54
54
  }
55
55
  return isRectangleHit(element, selection);
@@ -57,7 +57,7 @@ export const withMind = (baseBoard) => {
57
57
  board.isHit = (element, point) => {
58
58
  if (MindElement.isMindElement(board, element)) {
59
59
  const client = getRectangleByNode(MindElement.getNode(element));
60
- const isHit = RectangleClient.isHit(RectangleClient.toRectangleClient([point, point]), client);
60
+ const isHit = RectangleClient.isHit(RectangleClient.getRectangleByPoints([point, point]), client);
61
61
  return isHit;
62
62
  }
63
63
  return isHit(element, point);
@@ -80,9 +80,9 @@ export const withMind = (baseBoard) => {
80
80
  }
81
81
  return isAlign(element);
82
82
  };
83
- board.dblclick = (event) => {
83
+ board.dblClick = (event) => {
84
84
  if (PlaitBoard.isReadonly(board)) {
85
- dblclick(event);
85
+ dblClick(event);
86
86
  return;
87
87
  }
88
88
  const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
@@ -98,8 +98,8 @@ export const withMind = (baseBoard) => {
98
98
  if (PlaitBoard.hasBeenTextEditing(board)) {
99
99
  return;
100
100
  }
101
- dblclick(event);
101
+ dblClick(event);
102
102
  };
103
- return withNodeResize(withNodeImageResize(withNodeImage(withNodeHoverDetect(withMindFragment(withMindHotkey(withMindExtend(withCreateMind(withAbstract(withNodeDnd(board))))))))));
103
+ return withNodeResize(withNodeImageResize(withNodeImage(withNodeHoverHitTest(withMindFragment(withMindHotkey(withMindExtend(withCreateMind(withAbstract(withNodeDnd(board))))))))));
104
104
  };
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1taW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW1pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFFVixlQUFlLEVBQ2YsVUFBVSxFQUVWLG1CQUFtQixFQUVuQixrQkFBa0IsRUFFbEIsV0FBVyxFQUNYLGNBQWMsRUFDakIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdC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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMxSCxDQUNKLENBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBUcmFuc2Zvcm1zLFxuICAgIFNlbGVjdGlvbixcbiAgICBkZXB0aEZpcnN0UmVjdXJzaW9uLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBnZXRJc1JlY3Vyc2lvbkZ1bmMsXG4gICAgUG9pbnQsXG4gICAgdG9Ib3N0UG9pbnQsXG4gICAgdG9WaWV3Qm94UG9pbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIFBsYWl0TWluZCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGxhaXRNaW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vbWluZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9taW5kLW5vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSwgaXNIaXRNaW5kRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgd2l0aE5vZGVEbmQgfSBmcm9tICcuL3dpdGgtbm9kZS1kbmQnO1xuaW1wb3J0IHsgZWRpdFRvcGljIH0gZnJvbSAnLi4vdXRpbHMvbm9kZS9jb21tb24nO1xuaW1wb3J0IHsgd2l0aEFic3RyYWN0IH0gZnJvbSAnLi93aXRoLWFic3RyYWN0LXJlc2l6ZSc7XG5pbXBvcnQgeyB3aXRoTWluZEV4dGVuZCB9IGZyb20gJy4vd2l0aC1taW5kLWV4dGVuZCc7XG5pbXBvcnQgeyB3aXRoQ3JlYXRlTWluZCB9IGZyb20gJy4vd2l0aC1taW5kLWNyZWF0ZSc7XG5pbXBvcnQgeyB3aXRoTWluZEhvdGtleSB9IGZyb20gJy4vd2l0aC1taW5kLWhvdGtleSc7XG5pbXBvcnQgeyB3aXRoTm9kZUhvdmVyRGV0ZWN0IH0gZnJvbSAnLi93aXRoLW5vZGUtaG92ZXItZGV0ZWN0JztcbmltcG9ydCB7IHdpdGhOb2RlSW1hZ2UgfSBmcm9tICcuL3dpdGgtbm9kZS1pbWFnZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4vd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IHdpdGhOb2RlUmVzaXplIH0gZnJvbSAnLi93aXRoLW5vZGUtcmVzaXplJztcbmltcG9ydCB7IHdpdGhOb2RlSW1hZ2VSZXNpemUgfSBmcm9tICcuL3dpdGgtbm9kZS1pbWFnZS1yZXNpemUnO1xuaW1wb3J0IHsgd2l0aE1pbmRGcmFnbWVudCB9IGZyb20gJy4vd2l0aC1taW5kLWZyYWdtZW50JztcblxuZXhwb3J0IGNvbnN0IHdpdGhNaW5kID0gKGJhc2VCb2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IGJvYXJkID0gYmFzZUJvYXJkIGFzIFBsYWl0Qm9hcmQgJiBQbGFpdE1pbmRCb2FyZDtcbiAgICBjb25zdCB7IGRyYXdFbGVtZW50LCBkYmxjbGljaywgaXNSZWN0YW5nbGVIaXQsIGlzSGl0LCBnZXRSZWN0YW5nbGUsIGlzTW92YWJsZSwgaXNSZWN1cnNpb24sIGlzQWxpZ24sIGlzSW1hZ2VCaW5kaW5nQWxsb3dlZCB9ID0gYm9hcmQ7XG5cbiAgICBib2FyZC5kcmF3RWxlbWVudCA9IChjb250ZXh0OiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKGNvbnRleHQuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBQbGFpdE1pbmRDb21wb25lbnQ7XG4gICAgICAgIH0gZWxzZSBpZiAoTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIE1pbmROb2RlQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkcmF3RWxlbWVudChjb250ZXh0KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuYXBwbHlUaGVtZSA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICAgICAgY29uc3QgbWluZEVsZW1lbnQgPSBlbGVtZW50IGFzIE1pbmRFbGVtZW50O1xuICAgICAgICBjb25zdCBzaG91bGRDbGVhclByb3BlcnR5ID1cbiAgICAgICAgICAgICFQbGFpdEJvYXJkLmlzQm9hcmQoZWxlbWVudCkgJiYgKG1pbmRFbGVtZW50Py5icmFuY2hDb2xvciB8fCBtaW5kRWxlbWVudD8uZmlsbCB8fCBtaW5kRWxlbWVudD8uc3Ryb2tlQ29sb3IpO1xuICAgICAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KSAmJiBzaG91bGRDbGVhclByb3BlcnR5KSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIHsgZmlsbDogbnVsbCwgc3Ryb2tlQ29sb3I6IG51bGwsIGJyYW5jaENvbG9yOiBudWxsIH0sIHBhdGgpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGJvYXJkLmdldFJlY3RhbmdsZSA9IGVsZW1lbnQgPT4ge1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGVCeU5vZGUoTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaXNSZWN1cnNpb24gPSBlbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpICYmIGVsZW1lbnQuaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNSZWN1cnNpb24oZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmlzUmVjdGFuZ2xlSGl0ID0gKGVsZW1lbnQsIHNlbGVjdGlvbjogU2VsZWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCkpO1xuICAgICAgICAgICAgY29uc3QgaXNIaXQgPSBSZWN0YW5nbGVDbGllbnQuaXNIaXQoUmVjdGFuZ2xlQ2xpZW50LnRvUmVjdGFuZ2xlQ2xpZW50KFtzZWxlY3Rpb24uYW5jaG9yLCBzZWxlY3Rpb24uZm9jdXNdKSwgY2xpZW50KTtcbiAgICAgICAgICAgIHJldHVybiBpc0hpdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNSZWN0YW5nbGVIaXQoZWxlbWVudCwgc2VsZWN0aW9uKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaXNIaXQgPSAoZWxlbWVudCwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCkpO1xuICAgICAgICAgICAgY29uc3QgaXNIaXQgPSBSZWN0YW5nbGVDbGllbnQuaXNIaXQoUmVjdGFuZ2xlQ2xpZW50LnRvUmVjdGFuZ2xlQ2xpZW50KFtwb2ludCwgcG9pbnRdKSwgY2xpZW50KTtcbiAgICAgICAgICAgIHJldHVybiBpc0hpdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNIaXQoZWxlbWVudCwgcG9pbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5pc01vdmFibGUgPSBlbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCkgJiYgZWxlbWVudC5pc1Jvb3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc01vdmFibGUoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmlzSW1hZ2VCaW5kaW5nQWxsb3dlZCA9IGVsZW1lbnQgPT4ge1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0ltYWdlQmluZGluZ0FsbG93ZWQoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmlzQWxpZ24gPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpICYmIGVsZW1lbnQuaXNSb290KSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBbGlnbihlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZGJsY2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkpIHtcbiAgICAgICAgICAgIGRibGNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludCA9IHRvVmlld0JveFBvaW50KGJvYXJkLCB0b0hvc3RQb2ludChib2FyZCwgZXZlbnQueCwgZXZlbnQueSkpO1xuICAgICAgICBib2FyZC5jaGlsZHJlblxuICAgICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiBQbGFpdE1pbmQuaXNNaW5kKHZhbHVlKSlcbiAgICAgICAgICAgIC5mb3JFYWNoKG1pbmRNYXAgPT4ge1xuICAgICAgICAgICAgICAgIGRlcHRoRmlyc3RSZWN1cnNpb248TWluZEVsZW1lbnQ+KFxuICAgICAgICAgICAgICAgICAgICBtaW5kTWFwIGFzIE1pbmRFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBub2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcoYm9hcmQpICYmIGlzSGl0TWluZEVsZW1lbnQoYm9hcmQsIHBvaW50LCBub2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRUb3BpYyhub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZ2V0SXNSZWN1cnNpb25GdW5jKGJvYXJkKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgaWYgKFBsYWl0Qm9hcmQuaGFzQmVlblRleHRFZGl0aW5nKGJvYXJkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRibGNsaWNrKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHdpdGhOb2RlUmVzaXplKFxuICAgICAgICB3aXRoTm9kZUltYWdlUmVzaXplKFxuICAgICAgICAgICAgd2l0aE5vZGVJbWFnZShcbiAgICAgICAgICAgICAgICB3aXRoTm9kZUhvdmVyRGV0ZWN0KHdpdGhNaW5kRnJhZ21lbnQod2l0aE1pbmRIb3RrZXkod2l0aE1pbmRFeHRlbmQod2l0aENyZWF0ZU1pbmQod2l0aEFic3RyYWN0KHdpdGhOb2RlRG5kKGJvYXJkKSkpKSkpKVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgKTtcbn07XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1taW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW1pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFFVixlQUFlLEVBQ2YsVUFBVSxFQUVWLG1CQUFtQixFQUVuQixrQkFBa0IsRUFFbEIsV0FBVyxFQUNYLGNBQWMsRUFDakIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdC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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMzSCxDQUNKLENBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBUcmFuc2Zvcm1zLFxuICAgIFNlbGVjdGlvbixcbiAgICBkZXB0aEZpcnN0UmVjdXJzaW9uLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBnZXRJc1JlY3Vyc2lvbkZ1bmMsXG4gICAgUG9pbnQsXG4gICAgdG9Ib3N0UG9pbnQsXG4gICAgdG9WaWV3Qm94UG9pbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIFBsYWl0TWluZCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGxhaXRNaW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vbWluZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9taW5kLW5vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSwgaXNIaXRNaW5kRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgd2l0aE5vZGVEbmQgfSBmcm9tICcuL3dpdGgtbm9kZS1kbmQnO1xuaW1wb3J0IHsgZWRpdFRvcGljIH0gZnJvbSAnLi4vdXRpbHMvbm9kZS9jb21tb24nO1xuaW1wb3J0IHsgd2l0aEFic3RyYWN0IH0gZnJvbSAnLi93aXRoLWFic3RyYWN0LXJlc2l6ZSc7XG5pbXBvcnQgeyB3aXRoTWluZEV4dGVuZCB9IGZyb20gJy4vd2l0aC1taW5kLWV4dGVuZCc7XG5pbXBvcnQgeyB3aXRoQ3JlYXRlTWluZCB9IGZyb20gJy4vd2l0aC1taW5kLWNyZWF0ZSc7XG5pbXBvcnQgeyB3aXRoTWluZEhvdGtleSB9IGZyb20gJy4vd2l0aC1taW5kLWhvdGtleSc7XG5pbXBvcnQgeyB3aXRoTm9kZUhvdmVySGl0VGVzdCB9IGZyb20gJy4vd2l0aC1ub2RlLWhvdmVyLWhpdC10ZXN0JztcbmltcG9ydCB7IHdpdGhOb2RlSW1hZ2UgfSBmcm9tICcuL3dpdGgtbm9kZS1pbWFnZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4vd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IHdpdGhOb2RlUmVzaXplIH0gZnJvbSAnLi93aXRoLW5vZGUtcmVzaXplJztcbmltcG9ydCB7IHdpdGhOb2RlSW1hZ2VSZXNpemUgfSBmcm9tICcuL3dpdGgtbm9kZS1pbWFnZS1yZXNpemUnO1xuaW1wb3J0IHsgd2l0aE1pbmRGcmFnbWVudCB9IGZyb20gJy4vd2l0aC1taW5kLWZyYWdtZW50JztcblxuZXhwb3J0IGNvbnN0IHdpdGhNaW5kID0gKGJhc2VCb2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IGJvYXJkID0gYmFzZUJvYXJkIGFzIFBsYWl0Qm9hcmQgJiBQbGFpdE1pbmRCb2FyZDtcbiAgICBjb25zdCB7IGRyYXdFbGVtZW50LCBkYmxDbGljaywgaXNSZWN0YW5nbGVIaXQsIGlzSGl0LCBnZXRSZWN0YW5nbGUsIGlzTW92YWJsZSwgaXNSZWN1cnNpb24sIGlzQWxpZ24sIGlzSW1hZ2VCaW5kaW5nQWxsb3dlZCB9ID0gYm9hcmQ7XG5cbiAgICBib2FyZC5kcmF3RWxlbWVudCA9IChjb250ZXh0OiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKGNvbnRleHQuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBQbGFpdE1pbmRDb21wb25lbnQ7XG4gICAgICAgIH0gZWxzZSBpZiAoTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIE1pbmROb2RlQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkcmF3RWxlbWVudChjb250ZXh0KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuYXBwbHlUaGVtZSA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICAgICAgY29uc3QgbWluZEVsZW1lbnQgPSBlbGVtZW50IGFzIE1pbmRFbGVtZW50O1xuICAgICAgICBjb25zdCBzaG91bGRDbGVhclByb3BlcnR5ID1cbiAgICAgICAgICAgICFQbGFpdEJvYXJkLmlzQm9hcmQoZWxlbWVudCkgJiYgKG1pbmRFbGVtZW50Py5icmFuY2hDb2xvciB8fCBtaW5kRWxlbWVudD8uZmlsbCB8fCBtaW5kRWxlbWVudD8uc3Ryb2tlQ29sb3IpO1xuICAgICAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KSAmJiBzaG91bGRDbGVhclByb3BlcnR5KSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIHsgZmlsbDogbnVsbCwgc3Ryb2tlQ29sb3I6IG51bGwsIGJyYW5jaENvbG9yOiBudWxsIH0sIHBhdGgpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGJvYXJkLmdldFJlY3RhbmdsZSA9IGVsZW1lbnQgPT4ge1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGVCeU5vZGUoTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaXNSZWN1cnNpb24gPSBlbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpICYmIGVsZW1lbnQuaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNSZWN1cnNpb24oZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmlzUmVjdGFuZ2xlSGl0ID0gKGVsZW1lbnQsIHNlbGVjdGlvbjogU2VsZWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCkpO1xuICAgICAgICAgICAgY29uc3QgaXNIaXQgPSBSZWN0YW5nbGVDbGllbnQuaXNIaXQoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtzZWxlY3Rpb24uYW5jaG9yLCBzZWxlY3Rpb24uZm9jdXNdKSwgY2xpZW50KTtcbiAgICAgICAgICAgIHJldHVybiBpc0hpdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNSZWN0YW5nbGVIaXQoZWxlbWVudCwgc2VsZWN0aW9uKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaXNIaXQgPSAoZWxlbWVudCwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCkpO1xuICAgICAgICAgICAgY29uc3QgaXNIaXQgPSBSZWN0YW5nbGVDbGllbnQuaXNIaXQoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtwb2ludCwgcG9pbnRdKSwgY2xpZW50KTtcbiAgICAgICAgICAgIHJldHVybiBpc0hpdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNIaXQoZWxlbWVudCwgcG9pbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5pc01vdmFibGUgPSBlbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCkgJiYgZWxlbWVudC5pc1Jvb3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc01vdmFibGUoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmlzSW1hZ2VCaW5kaW5nQWxsb3dlZCA9IGVsZW1lbnQgPT4ge1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0ltYWdlQmluZGluZ0FsbG93ZWQoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmlzQWxpZ24gPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpICYmIGVsZW1lbnQuaXNSb290KSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBbGlnbihlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZGJsQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkpIHtcbiAgICAgICAgICAgIGRibENsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludCA9IHRvVmlld0JveFBvaW50KGJvYXJkLCB0b0hvc3RQb2ludChib2FyZCwgZXZlbnQueCwgZXZlbnQueSkpO1xuICAgICAgICBib2FyZC5jaGlsZHJlblxuICAgICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiBQbGFpdE1pbmQuaXNNaW5kKHZhbHVlKSlcbiAgICAgICAgICAgIC5mb3JFYWNoKG1pbmRNYXAgPT4ge1xuICAgICAgICAgICAgICAgIGRlcHRoRmlyc3RSZWN1cnNpb248TWluZEVsZW1lbnQ+KFxuICAgICAgICAgICAgICAgICAgICBtaW5kTWFwIGFzIE1pbmRFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBub2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcoYm9hcmQpICYmIGlzSGl0TWluZEVsZW1lbnQoYm9hcmQsIHBvaW50LCBub2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRUb3BpYyhub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZ2V0SXNSZWN1cnNpb25GdW5jKGJvYXJkKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgaWYgKFBsYWl0Qm9hcmQuaGFzQmVlblRleHRFZGl0aW5nKGJvYXJkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRibENsaWNrKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHdpdGhOb2RlUmVzaXplKFxuICAgICAgICB3aXRoTm9kZUltYWdlUmVzaXplKFxuICAgICAgICAgICAgd2l0aE5vZGVJbWFnZShcbiAgICAgICAgICAgICAgICB3aXRoTm9kZUhvdmVySGl0VGVzdCh3aXRoTWluZEZyYWdtZW50KHdpdGhNaW5kSG90a2V5KHdpdGhNaW5kRXh0ZW5kKHdpdGhDcmVhdGVNaW5kKHdpdGhBYnN0cmFjdCh3aXRoTm9kZURuZChib2FyZCkpKSkpKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICk7XG59O1xuIl19
@@ -0,0 +1,19 @@
1
+ import { throttleRAF } from '@plait/core';
2
+ import { pointerLeaveHandle, pointerMoveHandle } from '../utils/node-hover/extend';
3
+ export const withNodeHoverHitTest = (board) => {
4
+ const { pointerMove, pointerLeave } = board;
5
+ let nodeExtendHoveredRef = null;
6
+ board.pointerMove = (event) => {
7
+ throttleRAF(board, 'with-mind-node-hover-hit-test', () => {
8
+ nodeExtendHoveredRef = pointerMoveHandle(board, event, nodeExtendHoveredRef);
9
+ });
10
+ pointerMove(event);
11
+ };
12
+ board.pointerLeave = (event) => {
13
+ pointerLeaveHandle(board, event, nodeExtendHoveredRef);
14
+ nodeExtendHoveredRef = null;
15
+ pointerLeave(event);
16
+ };
17
+ return board;
18
+ };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWhvdmVyLWhpdC10ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW5vZGUtaG92ZXItaGl0LXRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQXdCLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekcsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDdEQsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDNUMsSUFBSSxvQkFBb0IsR0FBZ0MsSUFBSSxDQUFDO0lBRTdELEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDeEMsV0FBVyxDQUFDLEtBQUssRUFBRSwrQkFBK0IsRUFBRSxHQUFHLEVBQUU7WUFDckQsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDekMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZELG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUM1QixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgdGhyb3R0bGVSQUYgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBOb2RlRXh0ZW5kSG92ZXJlZFJlZiwgcG9pbnRlckxlYXZlSGFuZGxlLCBwb2ludGVyTW92ZUhhbmRsZSB9IGZyb20gJy4uL3V0aWxzL25vZGUtaG92ZXIvZXh0ZW5kJztcblxuZXhwb3J0IGNvbnN0IHdpdGhOb2RlSG92ZXJIaXRUZXN0ID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBwb2ludGVyTW92ZSwgcG9pbnRlckxlYXZlIH0gPSBib2FyZDtcbiAgICBsZXQgbm9kZUV4dGVuZEhvdmVyZWRSZWY6IE5vZGVFeHRlbmRIb3ZlcmVkUmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgICBib2FyZC5wb2ludGVyTW92ZSA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIHRocm90dGxlUkFGKGJvYXJkLCAnd2l0aC1taW5kLW5vZGUtaG92ZXItaGl0LXRlc3QnLCAoKSA9PiB7XG4gICAgICAgICAgICBub2RlRXh0ZW5kSG92ZXJlZFJlZiA9IHBvaW50ZXJNb3ZlSGFuZGxlKGJvYXJkLCBldmVudCwgbm9kZUV4dGVuZEhvdmVyZWRSZWYpO1xuICAgICAgICB9KTtcbiAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5wb2ludGVyTGVhdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBwb2ludGVyTGVhdmVIYW5kbGUoYm9hcmQsIGV2ZW50LCBub2RlRXh0ZW5kSG92ZXJlZFJlZik7XG4gICAgICAgIG5vZGVFeHRlbmRIb3ZlcmVkUmVmID0gbnVsbDtcbiAgICAgICAgcG9pbnRlckxlYXZlKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufTtcbiJdfQ==
@@ -1,7 +1,7 @@
1
- import { PlaitNode } from '@plait/core';
1
+ import { Point, PlaitNode } from '@plait/core';
2
2
  import { MindElement } from '../interfaces';
3
3
  import { getHitImageResizeHandleDirection } from '../utils';
4
- import { ResizeHandle, addElementOfFocusedImage, getElementOfFocusedImage, withResize } from '@plait/common';
4
+ import { addElementOfFocusedImage, getElementOfFocusedImage, withResize } from '@plait/common';
5
5
  import { MindTransforms } from '../transforms';
6
6
  export const withNodeImageResize = (board) => {
7
7
  const options = {
@@ -9,7 +9,7 @@ export const withNodeImageResize = (board) => {
9
9
  canResize: () => {
10
10
  return true;
11
11
  },
12
- detect: (point) => {
12
+ hitTest: (point) => {
13
13
  const elementOfFocusedImage = getElementOfFocusedImage(board);
14
14
  const selectedMindElement = elementOfFocusedImage && MindElement.isMindElement(board, elementOfFocusedImage) ? elementOfFocusedImage : undefined;
15
15
  if (selectedMindElement) {
@@ -25,25 +25,22 @@ export const withNodeImageResize = (board) => {
25
25
  return null;
26
26
  },
27
27
  onResize: (resizeRef, resizeState) => {
28
- let offsetX = resizeState.offsetX;
29
- let offsetY = resizeState.offsetY;
30
- if (resizeRef.handle === ResizeHandle.nw || resizeRef.handle === ResizeHandle.sw) {
31
- offsetX = -offsetX;
32
- }
28
+ const offsetX = Point.getOffsetX(resizeState.startPoint, resizeState.endPoint);
33
29
  const originWidth = resizeRef.element.data.image.width;
34
30
  const originHeight = resizeRef.element.data.image.height;
31
+ const path = resizeRef.path;
35
32
  let width = originWidth + offsetX;
36
33
  if (width <= 100) {
37
34
  width = 100;
38
35
  }
39
- const ratio = originWidth / width;
40
- const height = originHeight / ratio;
36
+ const ratio = originWidth / originHeight;
37
+ const height = width / ratio;
41
38
  const imageItem = { ...resizeRef.element.data.image, width, height };
42
- MindTransforms.setImage(board, PlaitNode.get(board, resizeRef.path), imageItem);
43
- addElementOfFocusedImage(board, PlaitNode.get(board, resizeRef.path));
39
+ MindTransforms.setImage(board, PlaitNode.get(board, path), imageItem);
40
+ addElementOfFocusedImage(board, PlaitNode.get(board, path));
44
41
  }
45
42
  };
46
43
  withResize(board, options);
47
44
  return board;
48
45
  };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWltYWdlLXJlc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3BsdWdpbnMvd2l0aC1ub2RlLWltYWdlLXJlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsWUFBWSxFQUlaLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDckQsTUFBTSxPQUFPLEdBQThDO1FBQ3ZELEdBQUcsRUFBRSxpQkFBaUI7UUFDdEIsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxNQUFNLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUNyQixNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlELE1BQU0sbUJBQW1CLEdBQ3JCLHFCQUFxQixJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDekgsSUFBSSxtQkFBbUIsRUFBRTtnQkFDckIsTUFBTSxNQUFNLEdBQUcsZ0NBQWdDLENBQUMsS0FBSyxFQUFFLG1CQUE2QyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM3RyxJQUFJLE1BQU0sRUFBRTtvQkFDUixPQUFPO3dCQUNILE9BQU8sRUFBRSxtQkFBNkM7d0JBQ3RELE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBc0I7d0JBQ3JDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztxQkFDbEMsQ0FBQztpQkFDTDthQUNKO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELFFBQVEsRUFBRSxDQUFDLFNBQTRDLEVBQUUsV0FBd0IsRUFBRSxFQUFFO1lBQ2pGLElBQUksT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7WUFDbEMsSUFBSSxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUNsQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLEVBQUUsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxFQUFFLEVBQUU7Z0JBQzlFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUN0QjtZQUNELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDdkQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN6RCxJQUFJLEtBQUssR0FBRyxXQUFXLEdBQUcsT0FBTyxDQUFDO1lBQ2xDLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRTtnQkFDZCxLQUFLLEdBQUcsR0FBRyxDQUFDO2FBQ2Y7WUFDRCxNQUFNLEtBQUssR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDcEMsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDckUsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2hGLHdCQUF3QixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDO0tBQ0osQ0FBQztJQUVGLFVBQVUsQ0FBeUIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRW5ELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBQbGFpdE5vZGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSW1hZ2VEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgZ2V0SGl0SW1hZ2VSZXNpemVIYW5kbGVEaXJlY3Rpb24gfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICAgIFJlc2l6ZUhhbmRsZSxcbiAgICBSZXNpemVSZWYsXG4gICAgUmVzaXplU3RhdGUsXG4gICAgV2l0aFJlc2l6ZU9wdGlvbnMsXG4gICAgYWRkRWxlbWVudE9mRm9jdXNlZEltYWdlLFxuICAgIGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZSxcbiAgICB3aXRoUmVzaXplXG59IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgTWluZFRyYW5zZm9ybXMgfSBmcm9tICcuLi90cmFuc2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IHdpdGhOb2RlSW1hZ2VSZXNpemUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCBvcHRpb25zOiBXaXRoUmVzaXplT3B0aW9uczxNaW5kRWxlbWVudDxJbWFnZURhdGE+PiA9IHtcbiAgICAgICAga2V5OiAnbWluZC1ub2RlLWltYWdlJyxcbiAgICAgICAgY2FuUmVzaXplOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgZGV0ZWN0OiAocG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgPSBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRNaW5kRWxlbWVudCA9XG4gICAgICAgICAgICAgICAgZWxlbWVudE9mRm9jdXNlZEltYWdlICYmIE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnRPZkZvY3VzZWRJbWFnZSkgPyBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRNaW5kRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGdldEhpdEltYWdlUmVzaXplSGFuZGxlRGlyZWN0aW9uKGJvYXJkLCBzZWxlY3RlZE1pbmRFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4sIHBvaW50KTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBzZWxlY3RlZE1pbmRFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4sXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU6IHJlc3VsdC5oYW5kbGUgYXMgUmVzaXplSGFuZGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yQ2xhc3M6IHJlc3VsdC5jdXJzb3JDbGFzc1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9LFxuICAgICAgICBvblJlc2l6ZTogKHJlc2l6ZVJlZjogUmVzaXplUmVmPE1pbmRFbGVtZW50PEltYWdlRGF0YT4+LCByZXNpemVTdGF0ZTogUmVzaXplU3RhdGUpID0+IHtcbiAgICAgICAgICAgIGxldCBvZmZzZXRYID0gcmVzaXplU3RhdGUub2Zmc2V0WDtcbiAgICAgICAgICAgIGxldCBvZmZzZXRZID0gcmVzaXplU3RhdGUub2Zmc2V0WTtcbiAgICAgICAgICAgIGlmIChyZXNpemVSZWYuaGFuZGxlID09PSBSZXNpemVIYW5kbGUubncgfHwgcmVzaXplUmVmLmhhbmRsZSA9PT0gUmVzaXplSGFuZGxlLnN3KSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0WCA9IC1vZmZzZXRYO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luV2lkdGggPSByZXNpemVSZWYuZWxlbWVudC5kYXRhLmltYWdlLndpZHRoO1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luSGVpZ2h0ID0gcmVzaXplUmVmLmVsZW1lbnQuZGF0YS5pbWFnZS5oZWlnaHQ7XG4gICAgICAgICAgICBsZXQgd2lkdGggPSBvcmlnaW5XaWR0aCArIG9mZnNldFg7XG4gICAgICAgICAgICBpZiAod2lkdGggPD0gMTAwKSB7XG4gICAgICAgICAgICAgICAgd2lkdGggPSAxMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByYXRpbyA9IG9yaWdpbldpZHRoIC8gd2lkdGg7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBvcmlnaW5IZWlnaHQgLyByYXRpbztcbiAgICAgICAgICAgIGNvbnN0IGltYWdlSXRlbSA9IHsgLi4ucmVzaXplUmVmLmVsZW1lbnQuZGF0YS5pbWFnZSwgd2lkdGgsIGhlaWdodCB9O1xuICAgICAgICAgICAgTWluZFRyYW5zZm9ybXMuc2V0SW1hZ2UoYm9hcmQsIFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHJlc2l6ZVJlZi5wYXRoKSwgaW1hZ2VJdGVtKTtcbiAgICAgICAgICAgIGFkZEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCwgUGxhaXROb2RlLmdldChib2FyZCwgcmVzaXplUmVmLnBhdGgpKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB3aXRoUmVzaXplPE1pbmRFbGVtZW50PEltYWdlRGF0YT4+KGJvYXJkLCBvcHRpb25zKTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWltYWdlLXJlc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3BsdWdpbnMvd2l0aC1ub2RlLWltYWdlLXJlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBUSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBS0gsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QixVQUFVLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNyRCxNQUFNLE9BQU8sR0FBOEM7UUFDdkQsR0FBRyxFQUFFLGlCQUFpQjtRQUN0QixTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3RCLE1BQU0scUJBQXFCLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUQsTUFBTSxtQkFBbUIsR0FDckIscUJBQXFCLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6SCxJQUFJLG1CQUFtQixFQUFFO2dCQUNyQixNQUFNLE1BQU0sR0FBRyxnQ0FBZ0MsQ0FBQyxLQUFLLEVBQUUsbUJBQTZDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzdHLElBQUksTUFBTSxFQUFFO29CQUNSLE9BQU87d0JBQ0gsT0FBTyxFQUFFLG1CQUE2Qzt3QkFDdEQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFzQjt3QkFDckMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO3FCQUNsQyxDQUFDO2lCQUNMO2FBQ0o7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsUUFBUSxFQUFFLENBQUMsU0FBNEMsRUFBRSxXQUF3QixFQUFFLEVBQUU7WUFDakYsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3ZELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDekQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQVksQ0FBQztZQUNwQyxJQUFJLEtBQUssR0FBRyxXQUFXLEdBQUcsT0FBTyxDQUFDO1lBQ2xDLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRTtnQkFDZCxLQUFLLEdBQUcsR0FBRyxDQUFDO2FBQ2Y7WUFDRCxNQUFNLEtBQUssR0FBRyxXQUFXLEdBQUcsWUFBWSxDQUFDO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDN0IsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDckUsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdEUsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQztLQUNKLENBQUM7SUFFRixVQUFVLENBQXlCLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVuRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgUGxhaXROb2RlLCBQYXRoIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEltYWdlRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IGdldEhpdEltYWdlUmVzaXplSGFuZGxlRGlyZWN0aW9uIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBSZXNpemVIYW5kbGUsXG4gICAgUmVzaXplUmVmLFxuICAgIFJlc2l6ZVN0YXRlLFxuICAgIFdpdGhSZXNpemVPcHRpb25zLFxuICAgIGFkZEVsZW1lbnRPZkZvY3VzZWRJbWFnZSxcbiAgICBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UsXG4gICAgd2l0aFJlc2l6ZVxufSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IE1pbmRUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoTm9kZUltYWdlUmVzaXplID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9uczogV2l0aFJlc2l6ZU9wdGlvbnM8TWluZEVsZW1lbnQ8SW1hZ2VEYXRhPj4gPSB7XG4gICAgICAgIGtleTogJ21pbmQtbm9kZS1pbWFnZScsXG4gICAgICAgIGNhblJlc2l6ZTogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIGhpdFRlc3Q6IChwb2ludDogUG9pbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRPZkZvY3VzZWRJbWFnZSA9IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE1pbmRFbGVtZW50ID1cbiAgICAgICAgICAgICAgICBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgJiYgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlKSA/IGVsZW1lbnRPZkZvY3VzZWRJbWFnZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZE1pbmRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZ2V0SGl0SW1hZ2VSZXNpemVIYW5kbGVEaXJlY3Rpb24oYm9hcmQsIHNlbGVjdGVkTWluZEVsZW1lbnQgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPiwgcG9pbnQpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IHNlbGVjdGVkTWluZEVsZW1lbnQgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZTogcmVzdWx0LmhhbmRsZSBhcyBSZXNpemVIYW5kbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JDbGFzczogcmVzdWx0LmN1cnNvckNsYXNzXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0sXG4gICAgICAgIG9uUmVzaXplOiAocmVzaXplUmVmOiBSZXNpemVSZWY8TWluZEVsZW1lbnQ8SW1hZ2VEYXRhPj4sIHJlc2l6ZVN0YXRlOiBSZXNpemVTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IFBvaW50LmdldE9mZnNldFgocmVzaXplU3RhdGUuc3RhcnRQb2ludCwgcmVzaXplU3RhdGUuZW5kUG9pbnQpO1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luV2lkdGggPSByZXNpemVSZWYuZWxlbWVudC5kYXRhLmltYWdlLndpZHRoO1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luSGVpZ2h0ID0gcmVzaXplUmVmLmVsZW1lbnQuZGF0YS5pbWFnZS5oZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gcmVzaXplUmVmLnBhdGggYXMgUGF0aDtcbiAgICAgICAgICAgIGxldCB3aWR0aCA9IG9yaWdpbldpZHRoICsgb2Zmc2V0WDtcbiAgICAgICAgICAgIGlmICh3aWR0aCA8PSAxMDApIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IDEwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gb3JpZ2luV2lkdGggLyBvcmlnaW5IZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB3aWR0aCAvIHJhdGlvO1xuICAgICAgICAgICAgY29uc3QgaW1hZ2VJdGVtID0geyAuLi5yZXNpemVSZWYuZWxlbWVudC5kYXRhLmltYWdlLCB3aWR0aCwgaGVpZ2h0IH07XG4gICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRJbWFnZShib2FyZCwgUGxhaXROb2RlLmdldChib2FyZCwgcGF0aCksIGltYWdlSXRlbSk7XG4gICAgICAgICAgICBhZGRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQsIFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGgpKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB3aXRoUmVzaXplPE1pbmRFbGVtZW50PEltYWdlRGF0YT4+KGJvYXJkLCBvcHRpb25zKTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
@@ -6,15 +6,15 @@ import { MindTransforms } from '../transforms';
6
6
  import { acceptImageTypes, buildImage, getElementOfFocusedImage } from '@plait/common';
7
7
  import { DEFAULT_MIND_IMAGE_WIDTH } from '../constants';
8
8
  export const withNodeImage = (board) => {
9
- const { keydown, pointerDown, globalPointerUp, setFragment, insertFragment, deleteFragment } = board;
10
- board.pointerDown = (event) => {
9
+ const { keyDown, pointerUp, globalPointerUp, setFragment, insertFragment, deleteFragment } = board;
10
+ board.pointerUp = (event) => {
11
11
  const elementOfFocusedImage = getElementOfFocusedImage(board);
12
- if (!isContextmenu(event) &&
12
+ if (elementOfFocusedImage &&
13
+ MindElement.isMindElement(board, elementOfFocusedImage) &&
14
+ !isContextmenu(event) &&
13
15
  (PlaitBoard.isReadonly(board) || !isMainPointer(event) || !PlaitBoard.isPointer(board, PlaitPointerType.selection))) {
14
- if (elementOfFocusedImage && MindElement.isMindElement(board, elementOfFocusedImage)) {
15
- removeImageFocus(board, elementOfFocusedImage);
16
- }
17
- pointerDown(event);
16
+ removeImageFocus(board, elementOfFocusedImage);
17
+ pointerUp(event);
18
18
  return;
19
19
  }
20
20
  const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
@@ -25,7 +25,7 @@ export const withNodeImage = (board) => {
25
25
  isHitImage(board, hitElement, point);
26
26
  if (isHitImageResult && elementOfFocusedImage && hitElement === elementOfFocusedImage) {
27
27
  temporaryDisableSelection(board);
28
- pointerDown(event);
28
+ pointerUp(event);
29
29
  return;
30
30
  }
31
31
  if (elementOfFocusedImage && MindElement.isMindElement(board, elementOfFocusedImage)) {
@@ -35,16 +35,16 @@ export const withNodeImage = (board) => {
35
35
  temporaryDisableSelection(board);
36
36
  addImageFocus(board, hitElement);
37
37
  }
38
- pointerDown(event);
38
+ pointerUp(event);
39
39
  };
40
- board.keydown = (event) => {
40
+ board.keyDown = (event) => {
41
41
  const selectedImageElement = getElementOfFocusedImage(board);
42
42
  if (!PlaitBoard.isReadonly(board) && selectedImageElement && (hotkeys.isDeleteBackward(event) || hotkeys.isDeleteForward(event))) {
43
43
  addSelectedElement(board, selectedImageElement);
44
44
  MindTransforms.removeImage(board, selectedImageElement);
45
45
  return;
46
46
  }
47
- keydown(event);
47
+ keyDown(event);
48
48
  };
49
49
  board.globalPointerUp = (event) => {
50
50
  if (PlaitBoard.isFocus(board)) {
@@ -97,4 +97,4 @@ export const withNodeImage = (board) => {
97
97
  };
98
98
  return board;
99
99
  };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW5vZGUtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFDVixhQUFhLEVBRWIsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixrQkFBa0IsRUFFbEIsbUJBQW1CLEVBRW5CLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxjQUFjLEVBRWQsc0JBQXNCLEVBRXRCLGFBQWEsRUFDaEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXhELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFckcsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUN4QyxNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQ0ksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1lBQ3JC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QUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgaXNNYWluUG9pbnRlcixcbiAgICBQbGFpdE9wdGlvbnNCb2FyZCxcbiAgICBob3RrZXlzLFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgYWRkU2VsZWN0ZWRFbGVtZW50LFxuICAgIFBvaW50LFxuICAgIGdldFNlbGVjdGVkRWxlbWVudHMsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGdldEhpdEVsZW1lbnRCeVBvaW50LFxuICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24sXG4gICAgV3JpdGFibGVDbGlwYm9hcmRUeXBlLFxuICAgIHRvSG9zdFBvaW50LFxuICAgIHRvVmlld0JveFBvaW50LFxuICAgIFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCxcbiAgICBjcmVhdGVDbGlwYm9hcmRDb250ZXh0LFxuICAgIENsaXBib2FyZERhdGEsXG4gICAgaXNDb250ZXh0bWVudVxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSW1hZ2VEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgYWRkSW1hZ2VGb2N1cywgcmVtb3ZlSW1hZ2VGb2N1cyB9IGZyb20gJy4uL3V0aWxzL25vZGUvaW1hZ2UnO1xuaW1wb3J0IHsgaXNIaXRJbWFnZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IE1pbmRUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBhY2NlcHRJbWFnZVR5cGVzLCBidWlsZEltYWdlLCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IERFRkFVTFRfTUlORF9JTUFHRV9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoTm9kZUltYWdlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBrZXlkb3duLCBwb2ludGVyRG93biwgZ2xvYmFsUG9pbnRlclVwLCBzZXRGcmFnbWVudCwgaW5zZXJ0RnJhZ21lbnQsIGRlbGV0ZUZyYWdtZW50IH0gPSBib2FyZDtcblxuICAgIGJvYXJkLnBvaW50ZXJEb3duID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudE9mRm9jdXNlZEltYWdlID0gZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWlzQ29udGV4dG1lbnUoZXZlbnQpICYmXG4gICAgICAgICAgICAoUGxhaXRCb2FyZC5pc1JlYWRvbmx5KGJvYXJkKSB8fCAhaXNNYWluUG9pbnRlcihldmVudCkgfHwgIVBsYWl0Qm9hcmQuaXNQb2ludGVyKGJvYXJkLCBQbGFpdFBvaW50ZXJUeXBlLnNlbGVjdGlvbikpXG4gICAgICAgICkge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRPZkZvY3VzZWRJbWFnZSAmJiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UpKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlSW1hZ2VGb2N1cyhib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlIGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgIGNvbnN0IGhpdEVsZW1lbnQgPSBnZXRIaXRFbGVtZW50QnlQb2ludChib2FyZCwgcG9pbnQpO1xuICAgICAgICBjb25zdCBpc0hpdEltYWdlUmVzdWx0ID1cbiAgICAgICAgICAgIGhpdEVsZW1lbnQgJiZcbiAgICAgICAgICAgIE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIGhpdEVsZW1lbnQpICYmXG4gICAgICAgICAgICBNaW5kRWxlbWVudC5oYXNJbWFnZShoaXRFbGVtZW50KSAmJlxuICAgICAgICAgICAgaXNIaXRJbWFnZShib2FyZCwgaGl0RWxlbWVudCBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+LCBwb2ludCk7XG4gICAgICAgIGlmIChpc0hpdEltYWdlUmVzdWx0ICYmIGVsZW1lbnRPZkZvY3VzZWRJbWFnZSAmJiBoaXRFbGVtZW50ID09PSBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UpIHtcbiAgICAgICAgICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24oYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpO1xuICAgICAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgJiYgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlKSkge1xuICAgICAgICAgICAgcmVtb3ZlSW1hZ2VGb2N1cyhib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlIGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0hpdEltYWdlUmVzdWx0ICYmIGhpdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24oYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpO1xuICAgICAgICAgICAgYWRkSW1hZ2VGb2N1cyhib2FyZCwgaGl0RWxlbWVudCBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+KTtcbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgICAgICBpZiAoIVBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgJiYgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgJiYgKGhvdGtleXMuaXNEZWxldGVCYWNrd2FyZChldmVudCkgfHwgaG90a2V5cy5pc0RlbGV0ZUZvcndhcmQoZXZlbnQpKSkge1xuICAgICAgICAgICAgYWRkU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCk7XG4gICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5yZW1vdmVJbWFnZShib2FyZCwgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAga2V5ZG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdEJvYXJkLmlzRm9jdXMoYm9hcmQpKSB7XG4gICAgICAgICAgICBjb25zdCBpc0luQm9hcmQgPSBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBOb2RlICYmIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEltYWdlRWxlbWVudCA9IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgICAgICAvLyBDbGVhciBpbWFnZSBzZWxlY3Rpb24gd2hlbiBtb3VzZSBib2FyZCBvdXRzaWRlIGFyZWFcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEltYWdlRWxlbWVudCAmJiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCkgJiYgIWlzSW5Cb2FyZCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUltYWdlRm9jdXMoYm9hcmQsIHNlbGVjdGVkSW1hZ2VFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLnNldEZyYWdtZW50ID0gKFxuICAgICAgICBkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsLFxuICAgICAgICBjbGlwYm9hcmRDb250ZXh0OiBXcml0YWJsZUNsaXBib2FyZENvbnRleHQgfCBudWxsLFxuICAgICAgICByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCB8IG51bGwsXG4gICAgICAgIHR5cGU6ICdjb3B5JyB8ICdjdXQnXG4gICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSW1hZ2VFbGVtZW50ID0gZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKSBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+O1xuICAgICAgICBpZiAoc2VsZWN0ZWRJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNsaXBib2FyZENvbnRleHQgPSBjcmVhdGVDbGlwYm9hcmRDb250ZXh0KFdyaXRhYmxlQ2xpcGJvYXJkVHlwZS5tZWRpYXMsIFtzZWxlY3RlZEltYWdlRWxlbWVudC5kYXRhLmltYWdlXSwgJycpO1xuICAgICAgICB9XG4gICAgICAgIHNldEZyYWdtZW50KGRhdGEsIGNsaXBib2FyZENvbnRleHQsIHJlY3RhbmdsZSwgdHlwZSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmRlbGV0ZUZyYWdtZW50ID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnJlbW92ZUltYWdlKGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+KTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGVGcmFnbWVudChkYXRhKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaW5zZXJ0RnJhZ21lbnQgPSAoZGF0YTogRGF0YVRyYW5zZmVyIHwgbnVsbCwgY2xpcGJvYXJkRGF0YTogQ2xpcGJvYXJkRGF0YSB8IG51bGwsIHRhcmdldFBvaW50OiBQb2ludCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgIGNvbnN0IGlzU2VsZWN0ZWRJbWFnZSA9ICEhZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKTtcbiAgICAgICAgY29uc3QgaXNTaW5nbGVTZWxlY3Rpb24gPSBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBzZWxlY3RlZEVsZW1lbnRzWzBdKTtcbiAgICAgICAgaWYgKGlzU2VsZWN0ZWRJbWFnZSB8fCBpc1NpbmdsZVNlbGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKGNsaXBib2FyZERhdGE/LmZpbGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY2NlcHRJbWFnZUFycmF5ID0gYWNjZXB0SW1hZ2VUeXBlcy5tYXAodHlwZSA9PiAnaW1hZ2UvJyArIHR5cGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudCA9IChzZWxlY3RlZEVsZW1lbnRzWzBdIHx8IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCkpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmIChhY2NlcHRJbWFnZUFycmF5LmluY2x1ZGVzKGNsaXBib2FyZERhdGEuZmlsZXNbMF0udHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VGaWxlID0gY2xpcGJvYXJkRGF0YS5maWxlc1swXTtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRJbWFnZShib2FyZCwgaW1hZ2VGaWxlLCBERUZBVUxUX01JTkRfSU1BR0VfV0lEVEgsIGltYWdlSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRJbWFnZShib2FyZCwgc2VsZWN0ZWRFbGVtZW50LCBpbWFnZUl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjbGlwYm9hcmREYXRhPy5tZWRpYXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudCA9IChzZWxlY3RlZEVsZW1lbnRzWzBdIHx8IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCkpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnNldEltYWdlKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnQsIGNsaXBib2FyZERhdGEubWVkaWFzWzBdKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0RnJhZ21lbnQoZGF0YSwgY2xpcGJvYXJkRGF0YSwgdGFyZ2V0UG9pbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW5vZGUtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFDVixhQUFhLEVBRWIsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixrQkFBa0IsRUFFbEIsbUJBQW1CLEVBRW5CLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxjQUFjLEVBRWQsc0JBQXNCLEVBRXRCLGFBQWEsRUFDaEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXhELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFbkcsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUN0QyxNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQ0kscUJBQXFCO1lBQ3JCLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDO1lBQ3ZELENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUNyQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUNySDtZQUNFLGdCQUFnQixDQUFDLEtBQUssRUFBRSxxQkFBK0MsQ0FBQyxDQUFDO1lBQ3pFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQixPQUFPO1NBQ1Y7UUFDRCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEQsTUFBTSxnQkFBZ0IsR0FDbEIsVUFBVTtZQUNWLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztZQUM1QyxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUNoQyxVQUFVLENBQUMsS0FBSyxFQUFFLFVBQW9DLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkUsSUFBSSxnQkFBZ0IsSUFBSSxxQkFBcUIsSUFBSSxVQUFVLEtBQUsscUJBQXFCLEVBQUU7WUFDbkYseUJBQXlCLENBQUMsS0FBMEIsQ0FBQyxDQUFDO1lBQ3RELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLHFCQUFxQixJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDLEVBQUU7WUFDbEYsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLHFCQUErQyxDQUFDLENBQUM7U0FDNUU7UUFDRCxJQUFJLGdCQUFnQixJQUFJLFVBQVUsRUFBRTtZQUNoQyx5QkFBeUIsQ0FBQyxLQUEwQixDQUFDLENBQUM7WUFDdEQsYUFBYSxDQUFDLEtBQUssRUFBRSxVQUFvQyxDQUFDLENBQUM7U0FDOUQ7UUFDRCxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtRQUNyQyxNQUFNLG9CQUFvQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLG9CQUFvQixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM5SCxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUNoRCxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxvQkFBOEMsQ0FBQyxDQUFDO1lBQ2xGLE9BQU87U0FDVjtRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1FBQzVDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxZQUFZLElBQUksSUFBSSxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3RyxNQUFNLG9CQUFvQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdELHNEQUFzRDtZQUN0RCxJQUFJLG9CQUFvQixJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQzlGLGdCQUFnQixDQUFDLEtBQUssRUFBRSxvQkFBOEMsQ0FBQyxDQUFDO2FBQzNFO1NBQ0o7UUFDRCxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUNoQixJQUF5QixFQUN6QixnQkFBaUQsRUFDakQsU0FBaUMsRUFDakMsSUFBb0IsRUFDdEIsRUFBRTtRQUNBLE1BQU0sb0JBQW9CLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUEyQixDQUFDO1FBQ3ZGLElBQUksb0JBQW9CLEVBQUU7WUFDdEIsZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2xIO1FBQ0QsV0FBVyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQXlCLEVBQUUsRUFBRTtRQUNqRCxNQUFNLG9CQUFvQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUksb0JBQW9CLEVBQUU7WUFDdEIsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsb0JBQThDLENBQUMsQ0FBQztTQUNyRjtRQUNELGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBeUIsRUFBRSxhQUFtQyxFQUFFLFdBQWtCLEVBQUUsRUFBRTtRQUMxRyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqSCxJQUFJLGVBQWUsSUFBSSxpQkFBaUIsRUFBRTtZQUN0QyxJQUFJLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2dCQUM5QixNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDdkUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztnQkFDaEcsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDeEQsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDekMsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLEVBQUU7d0JBQy9ELGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDL0QsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsT0FBTztpQkFDVjthQUNKO1lBQ0QsSUFBSSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtnQkFDL0IsTUFBTSxlQUFlLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztnQkFDaEcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekUsT0FBTzthQUNWO1NBQ0o7UUFDRCxjQUFjLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgaXNNYWluUG9pbnRlcixcbiAgICBQbGFpdE9wdGlvbnNCb2FyZCxcbiAgICBob3RrZXlzLFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgYWRkU2VsZWN0ZWRFbGVtZW50LFxuICAgIFBvaW50LFxuICAgIGdldFNlbGVjdGVkRWxlbWVudHMsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGdldEhpdEVsZW1lbnRCeVBvaW50LFxuICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24sXG4gICAgV3JpdGFibGVDbGlwYm9hcmRUeXBlLFxuICAgIHRvSG9zdFBvaW50LFxuICAgIHRvVmlld0JveFBvaW50LFxuICAgIFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCxcbiAgICBjcmVhdGVDbGlwYm9hcmRDb250ZXh0LFxuICAgIENsaXBib2FyZERhdGEsXG4gICAgaXNDb250ZXh0bWVudVxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSW1hZ2VEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgYWRkSW1hZ2VGb2N1cywgcmVtb3ZlSW1hZ2VGb2N1cyB9IGZyb20gJy4uL3V0aWxzL25vZGUvaW1hZ2UnO1xuaW1wb3J0IHsgaXNIaXRJbWFnZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IE1pbmRUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBhY2NlcHRJbWFnZVR5cGVzLCBidWlsZEltYWdlLCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IERFRkFVTFRfTUlORF9JTUFHRV9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoTm9kZUltYWdlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBrZXlEb3duLCBwb2ludGVyVXAsIGdsb2JhbFBvaW50ZXJVcCwgc2V0RnJhZ21lbnQsIGluc2VydEZyYWdtZW50LCBkZWxldGVGcmFnbWVudCB9ID0gYm9hcmQ7XG5cbiAgICBib2FyZC5wb2ludGVyVXAgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgPSBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgJiZcbiAgICAgICAgICAgIE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnRPZkZvY3VzZWRJbWFnZSkgJiZcbiAgICAgICAgICAgICFpc0NvbnRleHRtZW51KGV2ZW50KSAmJlxuICAgICAgICAgICAgKFBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgfHwgIWlzTWFpblBvaW50ZXIoZXZlbnQpIHx8ICFQbGFpdEJvYXJkLmlzUG9pbnRlcihib2FyZCwgUGxhaXRQb2ludGVyVHlwZS5zZWxlY3Rpb24pKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJlbW92ZUltYWdlRm9jdXMoYm9hcmQsIGVsZW1lbnRPZkZvY3VzZWRJbWFnZSBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+KTtcbiAgICAgICAgICAgIHBvaW50ZXJVcChldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgY29uc3QgaGl0RWxlbWVudCA9IGdldEhpdEVsZW1lbnRCeVBvaW50KGJvYXJkLCBwb2ludCk7XG4gICAgICAgIGNvbnN0IGlzSGl0SW1hZ2VSZXN1bHQgPVxuICAgICAgICAgICAgaGl0RWxlbWVudCAmJlxuICAgICAgICAgICAgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgaGl0RWxlbWVudCkgJiZcbiAgICAgICAgICAgIE1pbmRFbGVtZW50Lmhhc0ltYWdlKGhpdEVsZW1lbnQpICYmXG4gICAgICAgICAgICBpc0hpdEltYWdlKGJvYXJkLCBoaXRFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4sIHBvaW50KTtcbiAgICAgICAgaWYgKGlzSGl0SW1hZ2VSZXN1bHQgJiYgZWxlbWVudE9mRm9jdXNlZEltYWdlICYmIGhpdEVsZW1lbnQgPT09IGVsZW1lbnRPZkZvY3VzZWRJbWFnZSkge1xuICAgICAgICAgICAgdGVtcG9yYXJ5RGlzYWJsZVNlbGVjdGlvbihib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCk7XG4gICAgICAgICAgICBwb2ludGVyVXAoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgJiYgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlKSkge1xuICAgICAgICAgICAgcmVtb3ZlSW1hZ2VGb2N1cyhib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlIGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0hpdEltYWdlUmVzdWx0ICYmIGhpdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24oYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpO1xuICAgICAgICAgICAgYWRkSW1hZ2VGb2N1cyhib2FyZCwgaGl0RWxlbWVudCBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+KTtcbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyVXAoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5rZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSW1hZ2VFbGVtZW50ID0gZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKTtcbiAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpICYmIHNlbGVjdGVkSW1hZ2VFbGVtZW50ICYmIChob3RrZXlzLmlzRGVsZXRlQmFja3dhcmQoZXZlbnQpIHx8IGhvdGtleXMuaXNEZWxldGVGb3J3YXJkKGV2ZW50KSkpIHtcbiAgICAgICAgICAgIGFkZFNlbGVjdGVkRWxlbWVudChib2FyZCwgc2VsZWN0ZWRJbWFnZUVsZW1lbnQpO1xuICAgICAgICAgICAgTWluZFRyYW5zZm9ybXMucmVtb3ZlSW1hZ2UoYm9hcmQsIHNlbGVjdGVkSW1hZ2VFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGtleURvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5nbG9iYWxQb2ludGVyVXAgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoUGxhaXRCb2FyZC5pc0ZvY3VzKGJvYXJkKSkge1xuICAgICAgICAgICAgY29uc3QgaXNJbkJvYXJkID0gZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgTm9kZSAmJiBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgICAgICAgICAgLy8gQ2xlYXIgaW1hZ2Ugc2VsZWN0aW9uIHdoZW4gbW91c2UgYm9hcmQgb3V0c2lkZSBhcmVhXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbWFnZUVsZW1lbnQgJiYgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgc2VsZWN0ZWRJbWFnZUVsZW1lbnQpICYmICFpc0luQm9hcmQpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVJbWFnZUZvY3VzKGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBnbG9iYWxQb2ludGVyVXAoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5zZXRGcmFnbWVudCA9IChcbiAgICAgICAgZGF0YTogRGF0YVRyYW5zZmVyIHwgbnVsbCxcbiAgICAgICAgY2xpcGJvYXJkQ29udGV4dDogV3JpdGFibGVDbGlwYm9hcmRDb250ZXh0IHwgbnVsbCxcbiAgICAgICAgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQgfCBudWxsLFxuICAgICAgICB0eXBlOiAnY29weScgfCAnY3V0J1xuICAgICkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEltYWdlRWxlbWVudCA9IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCkgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPjtcbiAgICAgICAgaWYgKHNlbGVjdGVkSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgICAgICBjbGlwYm9hcmRDb250ZXh0ID0gY3JlYXRlQ2xpcGJvYXJkQ29udGV4dChXcml0YWJsZUNsaXBib2FyZFR5cGUubWVkaWFzLCBbc2VsZWN0ZWRJbWFnZUVsZW1lbnQuZGF0YS5pbWFnZV0sICcnKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRGcmFnbWVudChkYXRhLCBjbGlwYm9hcmRDb250ZXh0LCByZWN0YW5nbGUsIHR5cGUpO1xuICAgIH07XG5cbiAgICBib2FyZC5kZWxldGVGcmFnbWVudCA9IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSW1hZ2VFbGVtZW50ID0gZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5yZW1vdmVJbWFnZShib2FyZCwgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPik7XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlRnJhZ21lbnQoZGF0YSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmluc2VydEZyYWdtZW50ID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwsIGNsaXBib2FyZERhdGE6IENsaXBib2FyZERhdGEgfCBudWxsLCB0YXJnZXRQb2ludDogUG9pbnQpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBjb25zdCBpc1NlbGVjdGVkSW1hZ2UgPSAhIWdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgIGNvbnN0IGlzU2luZ2xlU2VsZWN0aW9uID0gc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgc2VsZWN0ZWRFbGVtZW50c1swXSk7XG4gICAgICAgIGlmIChpc1NlbGVjdGVkSW1hZ2UgfHwgaXNTaW5nbGVTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChjbGlwYm9hcmREYXRhPy5maWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWNjZXB0SW1hZ2VBcnJheSA9IGFjY2VwdEltYWdlVHlwZXMubWFwKHR5cGUgPT4gJ2ltYWdlLycgKyB0eXBlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSAoc2VsZWN0ZWRFbGVtZW50c1swXSB8fCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpKSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAoYWNjZXB0SW1hZ2VBcnJheS5pbmNsdWRlcyhjbGlwYm9hcmREYXRhLmZpbGVzWzBdLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlRmlsZSA9IGNsaXBib2FyZERhdGEuZmlsZXNbMF07XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkSW1hZ2UoYm9hcmQsIGltYWdlRmlsZSwgREVGQVVMVF9NSU5EX0lNQUdFX1dJRFRILCBpbWFnZUl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgTWluZFRyYW5zZm9ybXMuc2V0SW1hZ2UoYm9hcmQsIHNlbGVjdGVkRWxlbWVudCwgaW1hZ2VJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2xpcGJvYXJkRGF0YT8ubWVkaWFzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSAoc2VsZWN0ZWRFbGVtZW50c1swXSB8fCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpKSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRJbWFnZShib2FyZCwgc2VsZWN0ZWRFbGVtZW50LCBjbGlwYm9hcmREYXRhLm1lZGlhc1swXSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGluc2VydEZyYWdtZW50KGRhdGEsIGNsaXBib2FyZERhdGEsIHRhcmdldFBvaW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufTtcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { PlaitBoard, PlaitNode, ResizeCursorClass, distanceBetweenPointAndRectangle, getSelectedElements } from '@plait/core';
1
+ import { PlaitBoard, PlaitNode, Point, ResizeCursorClass, distanceBetweenPointAndRectangle, getSelectedElements } from '@plait/core';
2
2
  import { MindElement } from '../interfaces/element';
3
3
  import { getRectangleByNode } from '../utils/position/node';
4
4
  import { NodeSpace } from '../utils/space/node-space';
@@ -13,7 +13,7 @@ export const withNodeResize = (board) => {
13
13
  canResize: () => {
14
14
  return !isDragging(board);
15
15
  },
16
- detect: (point) => {
16
+ hitTest: (point) => {
17
17
  const newTargetElement = getSelectedTarget(board, point);
18
18
  if (newTargetElement) {
19
19
  return {
@@ -34,7 +34,7 @@ export const withNodeResize = (board) => {
34
34
  },
35
35
  onResize: (resizeRef, resizeState) => {
36
36
  const zoom = board.viewport.zoom;
37
- let resizedWidth = targetElementRef.currentWidth + resizeState.offsetX / zoom;
37
+ let resizedWidth = targetElementRef.currentWidth + Point.getOffsetX(resizeState.startPoint, resizeState.endPoint);
38
38
  if (resizedWidth <= targetElementRef.minWidth) {
39
39
  resizedWidth = targetElementRef.minWidth;
40
40
  }
@@ -68,4 +68,4 @@ export const getResizeActiveRectangle = (board, element) => {
68
68
  const rectangle = getRectangleByNode(node);
69
69
  return { x: rectangle.x + rectangle.width - EXTEND_OFFSET, y: rectangle.y, width: EXTEND_OFFSET * 2, height: rectangle.height };
70
70
  };
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLXJlc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3BsdWdpbnMvd2l0aC1ub2RlLXJlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsVUFBVSxFQUNWLFNBQVMsRUFHVCxpQkFBaUIsRUFDakIsZ0NBQWdDLEVBQ2hDLG1CQUFtQixFQUN0QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXRELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQTZDLGtCQUFrQixFQUFrQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTMUgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ2hELElBQUksZ0JBQWdCLEdBQTRCLElBQUksQ0FBQztJQUNyRCxNQUFNLE9BQU8sR0FBeUM7UUFDbEQsR0FBRyxFQUFFLFdBQVc7UUFDaEIsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNELE1BQU0sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsS0FBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFJLGdCQUFnQixFQUFFO2dCQUNsQixPQUFPO29CQUNILE9B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SUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFtQixFQUFFO0lBQ2pHLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsYUFBYSxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDcEksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQYXRoLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXROb2RlLFxuICAgIFBvaW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBSZXNpemVDdXJzb3JDbGFzcyxcbiAgICBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFJlY3RhbmdsZSxcbiAgICBnZXRTZWxlY3RlZEVsZW1lbnRzXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgTm9kZVNwYWNlIH0gZnJvbSAnLi4vdXRpbHMvc3BhY2Uvbm9kZS1zcGFjZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4vd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IE1pbmRUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBUZXh0TWFuYWdlIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgRVhURU5EX09GRlNFVCB9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IGlzRHJhZ2dpbmcgfSBmcm9tICcuLi91dGlscy9kbmQvY29tbW9uJztcbmltcG9ydCB7IFJlc2l6ZVJlZiwgUmVzaXplU3RhdGUsIFdpdGhSZXNpemVPcHRpb25zLCBnZXRGaXJzdFRleHRNYW5hZ2UsIGdldFRleHRNYW5hZ2VzLCB3aXRoUmVzaXplIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmludGVyZmFjZSBUYXJnZXRFbGVtZW50UmVmIHtcbiAgICBtaW5XaWR0aDogbnVtYmVyO1xuICAgIGN1cnJlbnRXaWR0aDogbnVtYmVyO1xuICAgIHBhdGg6IFBhdGg7XG4gICAgdGV4dE1hbmFnZTogVGV4dE1hbmFnZTtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhOb2RlUmVzaXplID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgbGV0IHRhcmdldEVsZW1lbnRSZWY6IFRhcmdldEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcbiAgICBjb25zdCBvcHRpb25zOiBXaXRoUmVzaXplT3B0aW9uczxNaW5kRWxlbWVudCwgbnVsbD4gPSB7XG4gICAgICAgIGtleTogJ21pbmQtbm9kZScsXG4gICAgICAgIGNhblJlc2l6ZTogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFpc0RyYWdnaW5nKGJvYXJkKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGV0ZWN0OiAocG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdUYXJnZXRFbGVtZW50ID0gZ2V0U2VsZWN0ZWRUYXJnZXQoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIHBvaW50KTtcbiAgICAgICAgICAgIGlmIChuZXdUYXJnZXRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogbmV3VGFyZ2V0RWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBjdXJzb3JDbGFzczogUmVzaXplQ3Vyc29yQ2xhc3MuZXdcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0sXG4gICAgICAgIGJlZm9yZVJlc2l6ZTogKHJlc2l6ZVJlZjogUmVzaXplUmVmPE1pbmRFbGVtZW50LCBudWxsPikgPT4ge1xuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudFJlZiA9IHtcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogTm9kZVNwYWNlLmdldE5vZGVSZXNpemFibGVNaW5XaWR0aChib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgcmVzaXplUmVmLmVsZW1lbnQpLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRXaWR0aDogTm9kZVNwYWNlLmdldE5vZGVEeW5hbWljV2lkdGgoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIHJlc2l6ZVJlZi5lbGVtZW50KSxcbiAgICAgICAgICAgICAgICBwYXRoOiBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCByZXNpemVSZWYuZWxlbWVudCksXG4gICAgICAgICAgICAgICAgdGV4dE1hbmFnZTogZ2V0Rmlyc3RUZXh0TWFuYWdlKHJlc2l6ZVJlZi5lbGVtZW50KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgb25SZXNpemU6IChyZXNpemVSZWY6IFJlc2l6ZVJlZjxNaW5kRWxlbWVudCwgbnVsbD4sIHJlc2l6ZVN0YXRlOiBSZXNpemVTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgem9vbSA9IGJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgICAgICAgICBsZXQgcmVzaXplZFdpZHRoID0gdGFyZ2V0RWxlbWVudFJlZiEuY3VycmVudFdpZHRoICsgcmVzaXplU3RhdGUub2Zmc2V0WCAvIHpvb207XG4gICAgICAgICAgICBpZiAocmVzaXplZFdpZHRoIDw9IHRhcmdldEVsZW1lbnRSZWYhLm1pbldpZHRoKSB7XG4gICAgICAgICAgICAgICAgcmVzaXplZFdpZHRoID0gdGFyZ2V0RWxlbWVudFJlZiEubWluV2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXdUYXJnZXQgPSBQbGFpdE5vZGUuZ2V0PE1pbmRFbGVtZW50Pihib2FyZCwgdGFyZ2V0RWxlbWVudFJlZiEucGF0aCk7XG4gICAgICAgICAgICBpZiAobmV3VGFyZ2V0ICYmIE5vZGVTcGFjZS5nZXROb2RlVG9waWNNaW5XaWR0aChib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgbmV3VGFyZ2V0KSAhPT0gcmVzaXplZFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0RWxlbWVudFJlZiEudGV4dE1hbmFnZS51cGRhdGVSZWN0YW5nbGVXaWR0aChyZXNpemVkV2lkdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaGVpZ2h0IH0gPSB0YXJnZXRFbGVtZW50UmVmIS50ZXh0TWFuYWdlLmdldFNpemUoKTtcbiAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXROb2RlTWFudWFsV2lkdGgoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIG5ld1RhcmdldCwgcmVzaXplZFdpZHRoICogem9vbSwgaGVpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYWZ0ZXJSZXNpemU6IChyZXNpemVSZWY6IFJlc2l6ZVJlZjxNaW5kRWxlbWVudCwgbnVsbD4pID0+IHtcbiAgICAgICAgICAgIHRhcmdldEVsZW1lbnRSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcbiAgICB3aXRoUmVzaXplPE1pbmRFbGVtZW50LCBudWxsPihib2FyZCwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkVGFyZ2V0ID0gKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpLmZpbHRlcih2YWx1ZSA9PiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCB2YWx1ZSkpIGFzIE1pbmRFbGVtZW50W107XG4gICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBzZWxlY3RlZEVsZW1lbnRzLmZpbmQodmFsdWUgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0UmVzaXplQWN0aXZlUmVjdGFuZ2xlKGJvYXJkLCB2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRSZWN0YW5nbGUocG9pbnRbMF0sIHBvaW50WzFdLCByZWN0YW5nbGUpIDw9IDA7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGFyZ2V0ID8gdGFyZ2V0IDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVzaXplQWN0aXZlUmVjdGFuZ2xlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCk6IFJlY3RhbmdsZUNsaWVudCA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCk7XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKG5vZGUpO1xuICAgIHJldHVybiB7IHg6IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC0gRVhURU5EX09GRlNFVCwgeTogcmVjdGFuZ2xlLnksIHdpZHRoOiBFWFRFTkRfT0ZGU0VUICogMiwgaGVpZ2h0OiByZWN0YW5nbGUuaGVpZ2h0IH07XG59O1xuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLXJlc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3BsdWdpbnMvd2l0aC1ub2RlLXJlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsVUFBVSxFQUNWLFNBQVMsRUFDVCxLQUFLLEVBRUwsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUNoQyxtQkFBbUIsRUFDdEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUE2QyxrQkFBa0IsRUFBa0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUzFILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNoRCxJQUFJLGdCQUFnQixHQUE0QixJQUFJLENBQUM7SUFDckQsTUFBTSxPQUFPLEdBQXlDO1FBQ2xELEdBQUcsRUFBRSxXQUFXO1FBQ2hCLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUN0QixNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDLEtBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0UsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDbEIsT0FB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QUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUNqQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFtQixFQUFFO0lBQ2pHLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsYUFBYSxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDcEksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQYXRoLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXROb2RlLFxuICAgIFBvaW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBSZXNpemVDdXJzb3JDbGFzcyxcbiAgICBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFJlY3RhbmdsZSxcbiAgICBnZXRTZWxlY3RlZEVsZW1lbnRzXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgTm9kZVNwYWNlIH0gZnJvbSAnLi4vdXRpbHMvc3BhY2Uvbm9kZS1zcGFjZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4vd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IE1pbmRUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBUZXh0TWFuYWdlIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgRVhURU5EX09GRlNFVCB9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IGlzRHJhZ2dpbmcgfSBmcm9tICcuLi91dGlscy9kbmQvY29tbW9uJztcbmltcG9ydCB7IFJlc2l6ZVJlZiwgUmVzaXplU3RhdGUsIFdpdGhSZXNpemVPcHRpb25zLCBnZXRGaXJzdFRleHRNYW5hZ2UsIGdldFRleHRNYW5hZ2VzLCB3aXRoUmVzaXplIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmludGVyZmFjZSBUYXJnZXRFbGVtZW50UmVmIHtcbiAgICBtaW5XaWR0aDogbnVtYmVyO1xuICAgIGN1cnJlbnRXaWR0aDogbnVtYmVyO1xuICAgIHBhdGg6IFBhdGg7XG4gICAgdGV4dE1hbmFnZTogVGV4dE1hbmFnZTtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhOb2RlUmVzaXplID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgbGV0IHRhcmdldEVsZW1lbnRSZWY6IFRhcmdldEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcbiAgICBjb25zdCBvcHRpb25zOiBXaXRoUmVzaXplT3B0aW9uczxNaW5kRWxlbWVudCwgbnVsbD4gPSB7XG4gICAgICAgIGtleTogJ21pbmQtbm9kZScsXG4gICAgICAgIGNhblJlc2l6ZTogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFpc0RyYWdnaW5nKGJvYXJkKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGl0VGVzdDogKHBvaW50OiBQb2ludCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3VGFyZ2V0RWxlbWVudCA9IGdldFNlbGVjdGVkVGFyZ2V0KGJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCBwb2ludCk7XG4gICAgICAgICAgICBpZiAobmV3VGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IG5ld1RhcmdldEVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yQ2xhc3M6IFJlc2l6ZUN1cnNvckNsYXNzLmV3XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9LFxuICAgICAgICBiZWZvcmVSZXNpemU6IChyZXNpemVSZWY6IFJlc2l6ZVJlZjxNaW5kRWxlbWVudCwgbnVsbD4pID0+IHtcbiAgICAgICAgICAgIHRhcmdldEVsZW1lbnRSZWYgPSB7XG4gICAgICAgICAgICAgICAgbWluV2lkdGg6IE5vZGVTcGFjZS5nZXROb2RlUmVzaXphYmxlTWluV2lkdGgoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIHJlc2l6ZVJlZi5lbGVtZW50KSxcbiAgICAgICAgICAgICAgICBjdXJyZW50V2lkdGg6IE5vZGVTcGFjZS5nZXROb2RlRHluYW1pY1dpZHRoKGJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCByZXNpemVSZWYuZWxlbWVudCksXG4gICAgICAgICAgICAgICAgcGF0aDogUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgcmVzaXplUmVmLmVsZW1lbnQpLFxuICAgICAgICAgICAgICAgIHRleHRNYW5hZ2U6IGdldEZpcnN0VGV4dE1hbmFnZShyZXNpemVSZWYuZWxlbWVudClcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIG9uUmVzaXplOiAocmVzaXplUmVmOiBSZXNpemVSZWY8TWluZEVsZW1lbnQsIG51bGw+LCByZXNpemVTdGF0ZTogUmVzaXplU3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHpvb20gPSBib2FyZC52aWV3cG9ydC56b29tO1xuICAgICAgICAgICAgbGV0IHJlc2l6ZWRXaWR0aCA9IHRhcmdldEVsZW1lbnRSZWYhLmN1cnJlbnRXaWR0aCArIFBvaW50LmdldE9mZnNldFgocmVzaXplU3RhdGUuc3RhcnRQb2ludCwgcmVzaXplU3RhdGUuZW5kUG9pbnQpO1xuICAgICAgICAgICAgaWYgKHJlc2l6ZWRXaWR0aCA8PSB0YXJnZXRFbGVtZW50UmVmIS5taW5XaWR0aCkge1xuICAgICAgICAgICAgICAgIHJlc2l6ZWRXaWR0aCA9IHRhcmdldEVsZW1lbnRSZWYhLm1pbldpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV3VGFyZ2V0ID0gUGxhaXROb2RlLmdldDxNaW5kRWxlbWVudD4oYm9hcmQsIHRhcmdldEVsZW1lbnRSZWYhLnBhdGgpO1xuICAgICAgICAgICAgaWYgKG5ld1RhcmdldCAmJiBOb2RlU3BhY2UuZ2V0Tm9kZVRvcGljTWluV2lkdGgoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIG5ld1RhcmdldCkgIT09IHJlc2l6ZWRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRhcmdldEVsZW1lbnRSZWYhLnRleHRNYW5hZ2UudXBkYXRlUmVjdGFuZ2xlV2lkdGgocmVzaXplZFdpZHRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGhlaWdodCB9ID0gdGFyZ2V0RWxlbWVudFJlZiEudGV4dE1hbmFnZS5nZXRTaXplKCk7XG4gICAgICAgICAgICAgICAgTWluZFRyYW5zZm9ybXMuc2V0Tm9kZU1hbnVhbFdpZHRoKGJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCBuZXdUYXJnZXQsIHJlc2l6ZWRXaWR0aCAqIHpvb20sIGhlaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGFmdGVyUmVzaXplOiAocmVzaXplUmVmOiBSZXNpemVSZWY8TWluZEVsZW1lbnQsIG51bGw+KSA9PiB7XG4gICAgICAgICAgICB0YXJnZXRFbGVtZW50UmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgd2l0aFJlc2l6ZTxNaW5kRWxlbWVudCwgbnVsbD4oYm9hcmQsIG9wdGlvbnMpO1xuICAgIHJldHVybiBib2FyZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZFRhcmdldCA9IChib2FyZDogUGxhaXRNaW5kQm9hcmQsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKS5maWx0ZXIodmFsdWUgPT4gTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgdmFsdWUpKSBhcyBNaW5kRWxlbWVudFtdO1xuICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gc2VsZWN0ZWRFbGVtZW50cy5maW5kKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldFJlc2l6ZUFjdGl2ZVJlY3RhbmdsZShib2FyZCwgdmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUmVjdGFuZ2xlKHBvaW50WzBdLCBwb2ludFsxXSwgcmVjdGFuZ2xlKSA8PSAwO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRhcmdldCA/IHRhcmdldCA6IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlc2l6ZUFjdGl2ZVJlY3RhbmdsZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpOiBSZWN0YW5nbGVDbGllbnQgPT4ge1xuICAgIGNvbnN0IG5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKGVsZW1lbnQpO1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5Tm9kZShub2RlKTtcbiAgICByZXR1cm4geyB4OiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAtIEVYVEVORF9PRkZTRVQsIHk6IHJlY3RhbmdsZS55LCB3aWR0aDogRVhURU5EX09GRlNFVCAqIDIsIGhlaWdodDogcmVjdGFuZ2xlLmhlaWdodCB9O1xufTtcbiJdfQ==
@@ -113,7 +113,7 @@ export const getHitAbstractHandle = (board, element, point) => {
113
113
  abstractRectangle = RectangleClient.getOutlineRectangle(abstractRectangle, -ABSTRACT_INCLUDED_OUTLINE_OFFSET);
114
114
  const startHandleRec = getAbstractHandleRectangle(abstractRectangle, isHorizontal, AbstractHandlePosition.start);
115
115
  const endHandleRec = getAbstractHandleRectangle(abstractRectangle, isHorizontal, AbstractHandlePosition.end);
116
- const pointRec = RectangleClient.toRectangleClient([point, point]);
116
+ const pointRec = RectangleClient.getRectangleByPoints([point, point]);
117
117
  if (RectangleClient.isHit(pointRec, startHandleRec))
118
118
  return AbstractHandlePosition.start;
119
119
  if (RectangleClient.isHit(pointRec, endHandleRec))
@@ -188,4 +188,4 @@ export function handleTouchedAbstract(board, touchedAbstract, endPoint) {
188
188
  }
189
189
  return touchedAbstract;
190
190
  }
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvYWJzdHJhY3QvcmVzaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxZQUFZLEVBQVMsZUFBZSxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUE4QixrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFbEYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FDMUMsaUJBQWtDLEVBQ2xDLFFBQWdCLEVBQ2hCLG9CQUE0QyxFQUM1QyxZQUFxQixFQUN2QixFQUFFO0lBQ0EsSUFBSSxZQUFZLEVBQUU7UUFDZCxJQUFJLG9CQUFvQixLQUFLLHNCQUFzQixDQUFDLEtBQUssRUFBRTtZQUN2RCxPQUFPO2dCQUNILEdBQUcsaUJBQWlCO2dCQUNwQixDQUFDLEVBQUUsUUFBUTtnQkFDWCxNQUFNLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsR0FBRyxRQUFRO2FBQ3BFLENBQUM7U0FDTDthQUFNO1lBQ0gsT0FBTztnQkFDSCxHQUFHLGlCQUFpQjtnQkFDcEIsTUFBTSxFQUFFLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO2FBQ3pDLENBQUM7U0FDTDtLQUNKO1NBQU07UUFD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Q0FBQztBQUNiLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBaUIsRUFBRSxlQUF3QyxFQUFFLFFBQWU7SUFDOUcsSUFBSSxhQUFhLENBQUM7SUFDbEIsTUFBTSxRQUFRLEdBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDOUgsYUFBYSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFzQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxlQUFlLEtBQUssUUFBUSxFQUFFO1FBQzlCLE9BQU8sZUFBZSxDQUFDO0tBQzFCO0lBRUQsSUFBSSxlQUFlLEVBQUU7UUFDakIsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxlQUFnQixDQUFzQixDQUFDO1FBQ25GLFNBQVMsQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakUsZUFBZSxHQUFHLFNBQVMsQ0FBQztLQUMvQjtJQUVELElBQUksUUFBUSxFQUFFO1FBQ1YsZUFBZSxHQUFHLFFBQVEsQ0FBQztRQUMzQixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLGVBQWdCLENBQXNCLENBQUM7UUFDbkYsU0FBUyxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDbkY7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzLCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSwgTGF5b3V0Tm9kZSwgTWluZExheW91dFR5cGUsIGlzSG9yaXpvbnRhbExheW91dCB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IEFCU1RSQUNUX0hBTkRMRV9NQVNLX1dJRFRILCBBQlNUUkFDVF9JTkNMVURFRF9PVVRMSU5FX09GRlNFVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hYnN0cmFjdC1ub2RlJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBnZXRDb3JyZWN0U3RhcnRFbmQgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBNaW5kTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21pbmQtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3RIYW5kbGVQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1hYnN0cmFjdC1yZXNpemUuYm9hcmQnO1xuXG5leHBvcnQgY29uc3QgZ2V0UmVjdGFuZ2xlQnlSZXNpemluZ0xvY2F0aW9uID0gKFxuICAgIGFic3RyYWN0UmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsXG4gICAgbG9jYXRpb246IG51bWJlcixcbiAgICBhY3RpdmVIYW5kbGVQb3NpdGlvbjogQWJzdHJhY3RIYW5kbGVQb3NpdGlvbixcbiAgICBpc0hvcml6b250YWw6IGJvb2xlYW5cbikgPT4ge1xuICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgaWYgKGFjdGl2ZUhhbmRsZVBvc2l0aW9uID09PSBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLnN0YXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFic3RyYWN0UmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgIHk6IGxvY2F0aW9uLFxuICAgICAgICAgICAgICAgIGhlaWdodDogYWJzdHJhY3RSZWN0YW5nbGUuaGVpZ2h0ICsgYWJzdHJhY3RSZWN0YW5nbGUueSAtIGxvY2F0aW9uXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hYnN0cmFjdFJlY3RhbmdsZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGxvY2F0aW9uIC0gYWJzdHJhY3RSZWN0YW5nbGUueVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhY3RpdmVIYW5kbGVQb3NpdGlvbiA9PT0gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5zdGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hYnN0cmFjdFJlY3RhbmdsZSxcbiAgICAgICAgICAgICAgICB4OiBsb2NhdGlvbixcbiAgICAgICAgICAgICAgICB3aWR0aDogYWJzdHJhY3RSZWN0YW5nbGUud2lkdGggKyBhYnN0cmFjdFJlY3RhbmdsZS54IC0gbG9jYXRpb25cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFic3RyYWN0UmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBsb2NhdGlvbiAtIGFic3RyYWN0UmVjdGFuZ2xlLnhcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TG9jYXRpb25TY29wZSA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBoYW5kbGVQb3NpdGlvbjogQWJzdHJhY3RIYW5kbGVQb3NpdGlvbixcbiAgICBwYXJlbnRDaGlsZHJlbjogTWluZEVsZW1lbnRbXSxcbiAgICBlbGVtZW50OiBNaW5kRWxlbWVudCxcbiAgICBwYXJlbnQ6IExheW91dE5vZGUsXG4gICAgaXNIb3Jpem9udGFsOiBib29sZWFuXG4pID0+IHtcbiAgICBjb25zdCBub2RlID0gKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCkgYXMgdW5rbm93bikgYXMgTGF5b3V0Tm9kZTtcbiAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IGdldENvcnJlY3RTdGFydEVuZChub2RlLm9yaWdpbiBhcyBBYnN0cmFjdE5vZGUsIHBhcmVudCk7XG5cbiAgICBjb25zdCBzdGFydE5vZGUgPSBwYXJlbnRDaGlsZHJlbltzdGFydF07XG4gICAgY29uc3QgZW5kTm9kZSA9IHBhcmVudENoaWxkcmVuW2VuZF07XG5cbiAgICBpZiAoaGFuZGxlUG9zaXRpb24gPT09IEFic3RyYWN0SGFuZGxlUG9zaXRpb24uc3RhcnQpIHtcbiAgICAgICAgY29uc3QgYWJzdHJhY3ROb2RlID0gcGFyZW50Q2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGNoaWxkKSAmJiBjaGlsZC5lbmQgPCBlbGVtZW50LnN0YXJ0ISk7XG4gICAgICAgIGxldCBtaW5Ob2RlO1xuXG4gICAgICAgIGlmIChhYnN0cmFjdE5vZGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGFic3RyYWN0Tm9kZVxuICAgICAgICAgICAgICAgIC5tYXAobm9kZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZW5kIH0gPSBnZXRDb3JyZWN0U3RhcnRFbmQobm9kZSBhcyBBYnN0cmFjdE5vZGUsIHBhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbmQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYiAtIGEpWzBdO1xuICAgICAgICAgICAgbWluTm9kZSA9IHBhcmVudENoaWxkcmVuW2luZGV4ICsgMV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtaW5Ob2RlID0gcGFyZW50Q2hpbGRyZW5bMF07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtaW5Ob2RlUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgW21pbk5vZGVdLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZW5kTm9kZVJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIFtlbmROb2RlXSwgZmFsc2UpO1xuXG4gICAgICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbWF4OiBlbmROb2RlUmVjdGFuZ2xlLnkgLSBBQlNUUkFDVF9JTkNMVURFRF9PVVRMSU5FX09GRlNFVCxcbiAgICAgICAgICAgICAgICBtaW46IG1pbk5vZGVSZWN0YW5nbGUueSAtIEFCU1RSQUNUX0lOQ0xVREVEX09VVExJTkVfT0ZGU0VUXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtYXg6IGVuZE5vZGVSZWN0YW5nbGUueCAtIEFCU1RSQUNUX0lOQ0xVREVEX09VVExJTkVfT0ZGU0VULFxuICAgICAgICAgICAgICAgIG1pbjogbWluTm9kZVJlY3RhbmdsZS54IC0gQUJTVFJBQ1RfSU5DTFVERURfT1VUTElORV9PRkZTRVRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBhYnN0cmFjdE5vZGUgPSBwYXJlbnRDaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4gQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoY2hpbGQpICYmIGNoaWxkLnN0YXJ0ID4gZWxlbWVudC5lbmQhKTtcbiAgICAgICAgbGV0IG1heE5vZGU7XG5cbiAgICAgICAgaWYgKGFic3RyYWN0Tm9kZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gYWJzdHJhY3ROb2RlXG4gICAgICAgICAgICAgICAgLm1hcChub2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBzdGFydCB9ID0gZ2V0Q29ycmVjdFN0YXJ0RW5kKG5vZGUgYXMgQWJzdHJhY3ROb2RlLCBwYXJlbnQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYSAtIGIpWzBdO1xuICAgICAgICAgICAgbWF4Tm9kZSA9IHBhcmVudENoaWxkcmVuW2luZGV4IC0gMV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudENoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiAhQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoY2hpbGQpKTtcbiAgICAgICAgICAgIG1heE5vZGUgPSBwYXJlbnRDaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1heE5vZGVSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBbbWF4Tm9kZV0sIHRydWUpO1xuICAgICAgICBjb25zdCBzdGFydE5vZGVSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBbc3RhcnROb2RlXSwgZmFsc2UpO1xuXG4gICAgICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbWF4OiBtYXhOb2RlUmVjdGFuZ2xlLnkgKyBtYXhOb2RlUmVjdGFuZ2xlLmhlaWdodCArIEFCU1RSQUNUX0lOQ0xVREVEX09VVExJTkVfT0ZGU0VULFxuICAgICAgICAgICAgICAgIG1pbjogc3RhcnROb2RlUmVjdGFuZ2xlLnkgKyBzdGFydE5vZGVSZWN0YW5nbGUuaGVpZ2h0ICsgQUJTVFJBQ1RfSU5DTFVERURfT1VUTElORV9PRkZTRVRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1heDogbWF4Tm9kZVJlY3RhbmdsZS54ICsgbWF4Tm9kZVJlY3RhbmdsZS53aWR0aCArIEFCU1RSQUNUX0lOQ0xVREVEX09VVExJTkVfT0ZGU0VULFxuICAgICAgICAgICAgICAgIG1pbjogc3RhcnROb2RlUmVjdGFuZ2xlLnggKyBzdGFydE5vZGVSZWN0YW5nbGUud2lkdGggKyBBQlNUUkFDVF9JTkNMVURFRF9PVVRMSU5FX09GRlNFVFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIaXRBYnN0cmFjdEhhbmRsZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IG5vZGVMYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50KGJvYXJkLCBlbGVtZW50KSBhcyBNaW5kTGF5b3V0VHlwZTtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxMYXlvdXQobm9kZUxheW91dCk7XG5cbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IGluY2x1ZGVkRWxlbWVudHMgPSBwYXJlbnRFbGVtZW50LmNoaWxkcmVuLnNsaWNlKGVsZW1lbnQuc3RhcnQhLCBlbGVtZW50LmVuZCEgKyAxKTtcbiAgICBsZXQgYWJzdHJhY3RSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBpbmNsdWRlZEVsZW1lbnRzLCB0cnVlKTtcbiAgICBhYnN0cmFjdFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRPdXRsaW5lUmVjdGFuZ2xlKGFic3RyYWN0UmVjdGFuZ2xlLCAtQUJTVFJBQ1RfSU5DTFVERURfT1VUTElORV9PRkZTRVQpO1xuXG4gICAgY29uc3Qgc3RhcnRIYW5kbGVSZWMgPSBnZXRBYnN0cmFjdEhhbmRsZVJlY3RhbmdsZShhYnN0cmFjdFJlY3RhbmdsZSwgaXNIb3Jpem9udGFsLCBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLnN0YXJ0KTtcbiAgICBjb25zdCBlbmRIYW5kbGVSZWMgPSBnZXRBYnN0cmFjdEhhbmRsZVJlY3RhbmdsZShhYnN0cmFjdFJlY3RhbmdsZSwgaXNIb3Jpem9udGFsLCBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLmVuZCk7XG5cbiAgICBjb25zdCBwb2ludFJlYyA9IFJlY3RhbmdsZUNsaWVudC50b1JlY3RhbmdsZUNsaWVudChbcG9pbnQsIHBvaW50XSk7XG4gICAgaWYgKFJlY3RhbmdsZUNsaWVudC5pc0hpdChwb2ludFJlYywgc3RhcnRIYW5kbGVSZWMpKSByZXR1cm4gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5zdGFydDtcbiAgICBpZiAoUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHBvaW50UmVjLCBlbmRIYW5kbGVSZWMpKSByZXR1cm4gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5lbmQ7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBYnN0cmFjdEhhbmRsZVJlY3RhbmdsZSA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgaXNIb3Jpem9udGFsOiBib29sZWFuLCBwb3NpdGlvbjogQWJzdHJhY3RIYW5kbGVQb3NpdGlvbikgPT4ge1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKHBvc2l0aW9uID09PSBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLnN0YXJ0KSB7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gaXNIb3Jpem9udGFsID8gcmVjdGFuZ2xlLnkgOiByZWN0YW5nbGUueDtcblxuICAgICAgICByZXN1bHQgPSBnZXRSZWN0YW5nbGVCeVJlc2l6aW5nTG9jYXRpb24oXG4gICAgICAgICAgICByZWN0YW5nbGUsXG4gICAgICAgICAgICBsb2NhdGlvbiArIEFCU1RSQUNUX0hBTkRMRV9NQVNLX1dJRFRIIC8gMixcbiAgICAgICAgICAgIEFic3RyYWN0SGFuZGxlUG9zaXRpb24uZW5kLFxuICAgICAgICAgICAgaXNIb3Jpem9udGFsXG4gICAgICAgICk7XG4gICAgICAgIHJlc3VsdCA9IGdldFJlY3RhbmdsZUJ5UmVzaXppbmdMb2NhdGlvbihyZXN1bHQsIGxvY2F0aW9uIC0gQUJTVFJBQ1RfSEFORExFX01BU0tfV0lEVEggLyAyLCBwb3NpdGlvbiwgaXNIb3Jpem9udGFsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IGlzSG9yaXpvbnRhbCA/IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCA6IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoO1xuXG4gICAgICAgIHJlc3VsdCA9IGdldFJlY3RhbmdsZUJ5UmVzaXppbmdMb2NhdGlvbihcbiAgICAgICAgICAgIHJlY3RhbmdsZSxcbiAgICAgICAgICAgIGxvY2F0aW9uIC0gQUJTVFJBQ1RfSEFORExFX01BU0tfV0lEVEggLyAyLFxuICAgICAgICAgICAgQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5zdGFydCxcbiAgICAgICAgICAgIGlzSG9yaXpvbnRhbFxuICAgICAgICApO1xuICAgICAgICByZXN1bHQgPSBnZXRSZWN0YW5nbGVCeVJlc2l6aW5nTG9jYXRpb24ocmVzdWx0LCBsb2NhdGlvbiArIEFCU1RSQUNUX0hBTkRMRV9NQVNLX1dJRFRIIC8gMiwgcG9zaXRpb24sIGlzSG9yaXpvbnRhbCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZExvY2F0aW9uTGVmdEluZGV4KGJvYXJkOiBQbGFpdEJvYXJkLCBwYXJlbnRDaGlsZHJlbjogTWluZEVsZW1lbnRbXSwgbG9jYXRpb246IG51bWJlciwgaXNIb3Jpem9udGFsOiBib29sZWFuKSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnRDaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4ge1xuICAgICAgICByZXR1cm4gIUFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGNoaWxkKTtcbiAgICB9KTtcbiAgICBjb25zdCByZWNBcnJheSA9IGNoaWxkcmVuLm1hcChjaGlsZCA9PiB7XG4gICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBbY2hpbGRdLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBmaXJzdFJlYyA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIFtjaGlsZHJlblswXV0sIHRydWUpO1xuICAgIGNvbnN0IGZha2VMZWZ0UmVjID0ge1xuICAgICAgICB4OiBmaXJzdFJlYy54IC0gZmlyc3RSZWMud2lkdGgsXG4gICAgICAgIHk6IGZpcnN0UmVjLnkgLSBmaXJzdFJlYy5oZWlnaHQsXG4gICAgICAgIHdpZHRoOiBmaXJzdFJlYy53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBmaXJzdFJlYy5oZWlnaHRcbiAgICB9O1xuICAgIGNvbnN0IGxhc3RSZWMgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBbY2hpbGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV1dLCB0cnVlKTtcbiAgICBjb25zdCBmYWtlUmlnaHRSZWMgPSB7XG4gICAgICAgIHg6IGxhc3RSZWMueCArIGxhc3RSZWMud2lkdGgsXG4gICAgICAgIHk6IGxhc3RSZWMueSArIGxhc3RSZWMuaGVpZ2h0LFxuICAgICAgICB3aWR0aDogbGFzdFJlYy53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBsYXN0UmVjLmhlaWdodFxuICAgIH07XG5cbiAgICByZWNBcnJheS5wdXNoKGZha2VSaWdodFJlYyk7XG4gICAgcmVjQXJyYXkudW5zaGlmdChmYWtlTGVmdFJlYyk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlY0FycmF5Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICBjb25zdCByZWNYT3JZID0gaXNIb3Jpem9udGFsID8gcmVjQXJyYXlbaV0ueSA6IHJlY0FycmF5W2ldLng7XG4gICAgICAgIGNvbnN0IHJlY1dpZHRoT3JIZWlnaHQgPSBpc0hvcml6b250YWwgPyByZWNBcnJheVtpXS5oZWlnaHQgOiByZWNBcnJheVtpXS53aWR0aDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBsb2NhdGlvbiA+PSByZWNYT3JZICsgcmVjV2lkdGhPckhlaWdodCAvIDIgJiZcbiAgICAgICAgICAgIGxvY2F0aW9uIDw9IHJlY0FycmF5W2kgKyAxXVtpc0hvcml6b250YWwgPyAneScgOiAneCddICsgcmVjQXJyYXlbaSArIDFdW2lzSG9yaXpvbnRhbCA/ICdoZWlnaHQnIDogJ3dpZHRoJ10gLyAyXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGkgLSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlVG91Y2hlZEFic3RyYWN0KGJvYXJkOiBQbGFpdEJvYXJkLCB0b3VjaGVkQWJzdHJhY3Q6IE1pbmRFbGVtZW50IHwgdW5kZWZpbmVkLCBlbmRQb2ludDogUG9pbnQpIHtcbiAgICBsZXQgdG91Y2hlZEhhbmRsZTtcbiAgICBjb25zdCBhYnN0cmFjdCA9IChnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKS5maWx0ZXIoZWxlbWVudCA9PiBBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSkgYXMgTWluZEVsZW1lbnRbXSkuZmluZChlbGVtZW50ID0+IHtcbiAgICAgICAgdG91Y2hlZEhhbmRsZSA9IGdldEhpdEFic3RyYWN0SGFuZGxlKGJvYXJkLCBlbGVtZW50IGFzIE1pbmRFbGVtZW50LCBlbmRQb2ludCk7XG4gICAgICAgIHJldHVybiB0b3VjaGVkSGFuZGxlO1xuICAgIH0pO1xuXG4gICAgaWYgKHRvdWNoZWRBYnN0cmFjdCA9PT0gYWJzdHJhY3QpIHtcbiAgICAgICAgcmV0dXJuIHRvdWNoZWRBYnN0cmFjdDtcbiAgICB9XG5cbiAgICBpZiAodG91Y2hlZEFic3RyYWN0KSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQodG91Y2hlZEFic3RyYWN0ISkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgICAgIGNvbXBvbmVudC5hY3RpdmVHZW5lcmF0b3IudXBkYXRlQWJzdHJhY3RPdXRsaW5lKHRvdWNoZWRBYnN0cmFjdCk7XG4gICAgICAgIHRvdWNoZWRBYnN0cmFjdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoYWJzdHJhY3QpIHtcbiAgICAgICAgdG91Y2hlZEFic3RyYWN0ID0gYWJzdHJhY3Q7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQodG91Y2hlZEFic3RyYWN0ISkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgICAgIGNvbXBvbmVudC5hY3RpdmVHZW5lcmF0b3IudXBkYXRlQWJzdHJhY3RPdXRsaW5lKHRvdWNoZWRBYnN0cmFjdCwgdG91Y2hlZEhhbmRsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvdWNoZWRBYnN0cmFjdDtcbn1cbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvYWJzdHJhY3QvcmVzaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxZQUFZLEVBQVMsZUFBZSxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUE4QixrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFbEYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FDMUMsaUJBQWtDLEVBQ2xDLFFBQWdCLEVBQ2hCLG9CQUE0QyxFQUM1QyxZQUFxQixFQUN2QixFQUFFO0lBQ0EsSUFBSSxZQUFZLEVBQUU7UUFDZCxJQUFJLG9CQUFvQixLQUFLLHNCQUFzQixDQUFDLEtBQUssRUFBRTtZQUN2RCxPQUFPO2dCQUNILEdBQUcsaUJBQWlCO2dCQUNwQixDQUFDLEVBQUUsUUFBUTtnQkFDWCxNQUFNLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsR0FBRyxRQUFRO2FBQ3BFLENBQUM7U0FDTDthQUFNO1lBQ0gsT0FBTztnQkFDSCxHQUFHLGlCQUFpQjtnQkFDcEIsTUFBTSxFQUFFLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO2FBQ3pDLENBQUM7U0FDTDtLQUNKO1NBQU07UUFD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Q0FBQztBQUNiLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBaUIsRUFBRSxlQUF3QyxFQUFFLFFBQWU7SUFDOUcsSUFBSSxhQUFhLENBQUM7SUFDbEIsTUFBTSxRQUFRLEdBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDOUgsYUFBYSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFzQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxlQUFlLEtBQUssUUFBUSxFQUFFO1FBQzlCLE9BQU8sZUFBZSxDQUFDO0tBQzFCO0lBRUQsSUFBSSxlQUFlLEVBQUU7UUFDakIsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxlQUFnQixDQUFzQixDQUFDO1FBQ25GLFNBQVMsQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakUsZUFBZSxHQUFHLFNBQVMsQ0FBQztLQUMvQjtJQUVELElBQUksUUFBUSxFQUFFO1FBQ1YsZUFBZSxHQUFHLFFBQVEsQ0FBQztRQUMzQixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLGVBQWdCLENBQXNCLENBQUM7UUFDbkYsU0FBUyxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDbkY7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzLCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSwgTGF5b3V0Tm9kZSwgTWluZExheW91dFR5cGUsIGlzSG9yaXpvbnRhbExheW91dCB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IEFCU1RSQUNUX0hBTkRMRV9NQVNLX1dJRFRILCBBQlNUUkFDVF9JTkNMVURFRF9PVVRMSU5FX09GRlNFVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hYnN0cmFjdC1ub2RlJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBnZXRDb3JyZWN0U3RhcnRFbmQgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBNaW5kTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21pbmQtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3RIYW5kbGVQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1hYnN0cmFjdC1yZXNpemUuYm9hcmQnO1xuXG5leHBvcnQgY29uc3QgZ2V0UmVjdGFuZ2xlQnlSZXNpemluZ0xvY2F0aW9uID0gKFxuICAgIGFic3RyYWN0UmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsXG4gICAgbG9jYXRpb246IG51bWJlcixcbiAgICBhY3RpdmVIYW5kbGVQb3NpdGlvbjogQWJzdHJhY3RIYW5kbGVQb3NpdGlvbixcbiAgICBpc0hvcml6b250YWw6IGJvb2xlYW5cbikgPT4ge1xuICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgaWYgKGFjdGl2ZUhhbmRsZVBvc2l0aW9uID09PSBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLnN0YXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFic3RyYWN0UmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgIHk6IGxvY2F0aW9uLFxuICAgICAgICAgICAgICAgIGhlaWdodDogYWJzdHJhY3RSZWN0YW5nbGUuaGVpZ2h0ICsgYWJzdHJhY3RSZWN0YW5nbGUueSAtIGxvY2F0aW9uXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hYnN0cmFjdFJlY3RhbmdsZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGxvY2F0aW9uIC0gYWJzdHJhY3RSZWN0YW5nbGUueVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhY3RpdmVIYW5kbGVQb3NpdGlvbiA9PT0gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5zdGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hYnN0cmFjdFJlY3RhbmdsZSxcbiAgICAgICAgICAgICAgICB4OiBsb2NhdGlvbixcbiAgICAgICAgICAgICAgICB3aWR0aDogYWJzdHJhY3RSZWN0YW5nbGUud2lkdGggKyBhYnN0cmFjdFJlY3RhbmdsZS54IC0gbG9jYXRpb25cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFic3RyYWN0UmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBsb2NhdGlvbiAtIGFic3RyYWN0UmVjdGFuZ2xlLnhcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TG9jYXRpb25TY29wZSA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBoYW5kbGVQb3NpdGlvbjogQWJzdHJhY3RIYW5kbGVQb3NpdGlvbixcbiAgICBwYXJlbnRDaGlsZHJlbjogTWluZEVsZW1lbnRbXSxcbiAgICBlbGVtZW50OiBNaW5kRWxlbWVudCxcbiAgICBwYXJlbnQ6IExheW91dE5vZGUsXG4gICAgaXNIb3Jpem9udGFsOiBib29sZWFuXG4pID0+IHtcbiAgICBjb25zdCBub2RlID0gKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCkgYXMgdW5rbm93bikgYXMgTGF5b3V0Tm9kZTtcbiAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IGdldENvcnJlY3RTdGFydEVuZChub2RlLm9yaWdpbiBhcyBBYnN0cmFjdE5vZGUsIHBhcmVudCk7XG5cbiAgICBjb25zdCBzdGFydE5vZGUgPSBwYXJlbnRDaGlsZHJlbltzdGFydF07XG4gICAgY29uc3QgZW5kTm9kZSA9IHBhcmVudENoaWxkcmVuW2VuZF07XG5cbiAgICBpZiAoaGFuZGxlUG9zaXRpb24gPT09IEFic3RyYWN0SGFuZGxlUG9zaXRpb24uc3RhcnQpIHtcbiAgICAgICAgY29uc3QgYWJzdHJhY3ROb2RlID0gcGFyZW50Q2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGNoaWxkKSAmJiBjaGlsZC5lbmQgPCBlbGVtZW50LnN0YXJ0ISk7XG4gICAgICAgIGxldCBtaW5Ob2RlO1xuXG4gICAgICAgIGlmIChhYnN0cmFjdE5vZGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGFic3RyYWN0Tm9kZVxuICAgICAgICAgICAgICAgIC5tYXAobm9kZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZW5kIH0gPSBnZXRDb3JyZWN0U3RhcnRFbmQobm9kZSBhcyBBYnN0cmFjdE5vZGUsIHBhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbmQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYiAtIGEpWzBdO1xuICAgICAgICAgICAgbWluTm9kZSA9IHBhcmVudENoaWxkcmVuW2luZGV4ICsgMV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtaW5Ob2RlID0gcGFyZW50Q2hpbGRyZW5bMF07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtaW5Ob2RlUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgW21pbk5vZGVdLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZW5kTm9kZVJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIFtlbmROb2RlXSwgZmFsc2UpO1xuXG4gICAgICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbWF4OiBlbmROb2RlUmVjdGFuZ2xlLnkgLSBBQlNUUkFDVF9JTkNMVURFRF9PVVRMSU5FX09GRlNFVCxcbiAgICAgICAgICAgICAgICBtaW46IG1pbk5vZGVSZWN0YW5nbGUueSAtIEFCU1RSQUNUX0lOQ0xVREVEX09VVExJTkVfT0ZGU0VUXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtYXg6IGVuZE5vZGVSZWN0YW5nbGUueCAtIEFCU1RSQUNUX0lOQ0xVREVEX09VVExJTkVfT0ZGU0VULFxuICAgICAgICAgICAgICAgIG1pbjogbWluTm9kZVJlY3RhbmdsZS54IC0gQUJTVFJBQ1RfSU5DTFVERURfT1VUTElORV9PRkZTRVRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBhYnN0cmFjdE5vZGUgPSBwYXJlbnRDaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4gQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoY2hpbGQpICYmIGNoaWxkLnN0YXJ0ID4gZWxlbWVudC5lbmQhKTtcbiAgICAgICAgbGV0IG1heE5vZGU7XG5cbiAgICAgICAgaWYgKGFic3RyYWN0Tm9kZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gYWJzdHJhY3ROb2RlXG4gICAgICAgICAgICAgICAgLm1hcChub2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBzdGFydCB9ID0gZ2V0Q29ycmVjdFN0YXJ0RW5kKG5vZGUgYXMgQWJzdHJhY3ROb2RlLCBwYXJlbnQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYSAtIGIpWzBdO1xuICAgICAgICAgICAgbWF4Tm9kZSA9IHBhcmVudENoaWxkcmVuW2luZGV4IC0gMV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudENoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiAhQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoY2hpbGQpKTtcbiAgICAgICAgICAgIG1heE5vZGUgPSBwYXJlbnRDaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1heE5vZGVSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBbbWF4Tm9kZV0sIHRydWUpO1xuICAgICAgICBjb25zdCBzdGFydE5vZGVSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBbc3RhcnROb2RlXSwgZmFsc2UpO1xuXG4gICAgICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbWF4OiBtYXhOb2RlUmVjdGFuZ2xlLnkgKyBtYXhOb2RlUmVjdGFuZ2xlLmhlaWdodCArIEFCU1RSQUNUX0lOQ0xVREVEX09VVExJTkVfT0ZGU0VULFxuICAgICAgICAgICAgICAgIG1pbjogc3RhcnROb2RlUmVjdGFuZ2xlLnkgKyBzdGFydE5vZGVSZWN0YW5nbGUuaGVpZ2h0ICsgQUJTVFJBQ1RfSU5DTFVERURfT1VUTElORV9PRkZTRVRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1heDogbWF4Tm9kZVJlY3RhbmdsZS54ICsgbWF4Tm9kZVJlY3RhbmdsZS53aWR0aCArIEFCU1RSQUNUX0lOQ0xVREVEX09VVExJTkVfT0ZGU0VULFxuICAgICAgICAgICAgICAgIG1pbjogc3RhcnROb2RlUmVjdGFuZ2xlLnggKyBzdGFydE5vZGVSZWN0YW5nbGUud2lkdGggKyBBQlNUUkFDVF9JTkNMVURFRF9PVVRMSU5FX09GRlNFVFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIaXRBYnN0cmFjdEhhbmRsZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IG5vZGVMYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50KGJvYXJkLCBlbGVtZW50KSBhcyBNaW5kTGF5b3V0VHlwZTtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxMYXlvdXQobm9kZUxheW91dCk7XG5cbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IGluY2x1ZGVkRWxlbWVudHMgPSBwYXJlbnRFbGVtZW50LmNoaWxkcmVuLnNsaWNlKGVsZW1lbnQuc3RhcnQhLCBlbGVtZW50LmVuZCEgKyAxKTtcbiAgICBsZXQgYWJzdHJhY3RSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBpbmNsdWRlZEVsZW1lbnRzLCB0cnVlKTtcbiAgICBhYnN0cmFjdFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRPdXRsaW5lUmVjdGFuZ2xlKGFic3RyYWN0UmVjdGFuZ2xlLCAtQUJTVFJBQ1RfSU5DTFVERURfT1VUTElORV9PRkZTRVQpO1xuXG4gICAgY29uc3Qgc3RhcnRIYW5kbGVSZWMgPSBnZXRBYnN0cmFjdEhhbmRsZVJlY3RhbmdsZShhYnN0cmFjdFJlY3RhbmdsZSwgaXNIb3Jpem9udGFsLCBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLnN0YXJ0KTtcbiAgICBjb25zdCBlbmRIYW5kbGVSZWMgPSBnZXRBYnN0cmFjdEhhbmRsZVJlY3RhbmdsZShhYnN0cmFjdFJlY3RhbmdsZSwgaXNIb3Jpem9udGFsLCBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLmVuZCk7XG5cbiAgICBjb25zdCBwb2ludFJlYyA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgaWYgKFJlY3RhbmdsZUNsaWVudC5pc0hpdChwb2ludFJlYywgc3RhcnRIYW5kbGVSZWMpKSByZXR1cm4gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5zdGFydDtcbiAgICBpZiAoUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHBvaW50UmVjLCBlbmRIYW5kbGVSZWMpKSByZXR1cm4gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5lbmQ7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBYnN0cmFjdEhhbmRsZVJlY3RhbmdsZSA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgaXNIb3Jpem9udGFsOiBib29sZWFuLCBwb3NpdGlvbjogQWJzdHJhY3RIYW5kbGVQb3NpdGlvbikgPT4ge1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKHBvc2l0aW9uID09PSBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLnN0YXJ0KSB7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gaXNIb3Jpem9udGFsID8gcmVjdGFuZ2xlLnkgOiByZWN0YW5nbGUueDtcblxuICAgICAgICByZXN1bHQgPSBnZXRSZWN0YW5nbGVCeVJlc2l6aW5nTG9jYXRpb24oXG4gICAgICAgICAgICByZWN0YW5nbGUsXG4gICAgICAgICAgICBsb2NhdGlvbiArIEFCU1RSQUNUX0hBTkRMRV9NQVNLX1dJRFRIIC8gMixcbiAgICAgICAgICAgIEFic3RyYWN0SGFuZGxlUG9zaXRpb24uZW5kLFxuICAgICAgICAgICAgaXNIb3Jpem9udGFsXG4gICAgICAgICk7XG4gICAgICAgIHJlc3VsdCA9IGdldFJlY3RhbmdsZUJ5UmVzaXppbmdMb2NhdGlvbihyZXN1bHQsIGxvY2F0aW9uIC0gQUJTVFJBQ1RfSEFORExFX01BU0tfV0lEVEggLyAyLCBwb3NpdGlvbiwgaXNIb3Jpem9udGFsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IGlzSG9yaXpvbnRhbCA/IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCA6IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoO1xuXG4gICAgICAgIHJlc3VsdCA9IGdldFJlY3RhbmdsZUJ5UmVzaXppbmdMb2NhdGlvbihcbiAgICAgICAgICAgIHJlY3RhbmdsZSxcbiAgICAgICAgICAgIGxvY2F0aW9uIC0gQUJTVFJBQ1RfSEFORExFX01BU0tfV0lEVEggLyAyLFxuICAgICAgICAgICAgQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5zdGFydCxcbiAgICAgICAgICAgIGlzSG9yaXpvbnRhbFxuICAgICAgICApO1xuICAgICAgICByZXN1bHQgPSBnZXRSZWN0YW5nbGVCeVJlc2l6aW5nTG9jYXRpb24ocmVzdWx0LCBsb2NhdGlvbiArIEFCU1RSQUNUX0hBTkRMRV9NQVNLX1dJRFRIIC8gMiwgcG9zaXRpb24sIGlzSG9yaXpvbnRhbCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZExvY2F0aW9uTGVmdEluZGV4KGJvYXJkOiBQbGFpdEJvYXJkLCBwYXJlbnRDaGlsZHJlbjogTWluZEVsZW1lbnRbXSwgbG9jYXRpb246IG51bWJlciwgaXNIb3Jpem9udGFsOiBib29sZWFuKSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnRDaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4ge1xuICAgICAgICByZXR1cm4gIUFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGNoaWxkKTtcbiAgICB9KTtcbiAgICBjb25zdCByZWNBcnJheSA9IGNoaWxkcmVuLm1hcChjaGlsZCA9PiB7XG4gICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBbY2hpbGRdLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBmaXJzdFJlYyA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIFtjaGlsZHJlblswXV0sIHRydWUpO1xuICAgIGNvbnN0IGZha2VMZWZ0UmVjID0ge1xuICAgICAgICB4OiBmaXJzdFJlYy54IC0gZmlyc3RSZWMud2lkdGgsXG4gICAgICAgIHk6IGZpcnN0UmVjLnkgLSBmaXJzdFJlYy5oZWlnaHQsXG4gICAgICAgIHdpZHRoOiBmaXJzdFJlYy53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBmaXJzdFJlYy5oZWlnaHRcbiAgICB9O1xuICAgIGNvbnN0IGxhc3RSZWMgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBbY2hpbGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV1dLCB0cnVlKTtcbiAgICBjb25zdCBmYWtlUmlnaHRSZWMgPSB7XG4gICAgICAgIHg6IGxhc3RSZWMueCArIGxhc3RSZWMud2lkdGgsXG4gICAgICAgIHk6IGxhc3RSZWMueSArIGxhc3RSZWMuaGVpZ2h0LFxuICAgICAgICB3aWR0aDogbGFzdFJlYy53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBsYXN0UmVjLmhlaWdodFxuICAgIH07XG5cbiAgICByZWNBcnJheS5wdXNoKGZha2VSaWdodFJlYyk7XG4gICAgcmVjQXJyYXkudW5zaGlmdChmYWtlTGVmdFJlYyk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlY0FycmF5Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICBjb25zdCByZWNYT3JZID0gaXNIb3Jpem9udGFsID8gcmVjQXJyYXlbaV0ueSA6IHJlY0FycmF5W2ldLng7XG4gICAgICAgIGNvbnN0IHJlY1dpZHRoT3JIZWlnaHQgPSBpc0hvcml6b250YWwgPyByZWNBcnJheVtpXS5oZWlnaHQgOiByZWNBcnJheVtpXS53aWR0aDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBsb2NhdGlvbiA+PSByZWNYT3JZICsgcmVjV2lkdGhPckhlaWdodCAvIDIgJiZcbiAgICAgICAgICAgIGxvY2F0aW9uIDw9IHJlY0FycmF5W2kgKyAxXVtpc0hvcml6b250YWwgPyAneScgOiAneCddICsgcmVjQXJyYXlbaSArIDFdW2lzSG9yaXpvbnRhbCA/ICdoZWlnaHQnIDogJ3dpZHRoJ10gLyAyXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGkgLSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlVG91Y2hlZEFic3RyYWN0KGJvYXJkOiBQbGFpdEJvYXJkLCB0b3VjaGVkQWJzdHJhY3Q6IE1pbmRFbGVtZW50IHwgdW5kZWZpbmVkLCBlbmRQb2ludDogUG9pbnQpIHtcbiAgICBsZXQgdG91Y2hlZEhhbmRsZTtcbiAgICBjb25zdCBhYnN0cmFjdCA9IChnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKS5maWx0ZXIoZWxlbWVudCA9PiBBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSkgYXMgTWluZEVsZW1lbnRbXSkuZmluZChlbGVtZW50ID0+IHtcbiAgICAgICAgdG91Y2hlZEhhbmRsZSA9IGdldEhpdEFic3RyYWN0SGFuZGxlKGJvYXJkLCBlbGVtZW50IGFzIE1pbmRFbGVtZW50LCBlbmRQb2ludCk7XG4gICAgICAgIHJldHVybiB0b3VjaGVkSGFuZGxlO1xuICAgIH0pO1xuXG4gICAgaWYgKHRvdWNoZWRBYnN0cmFjdCA9PT0gYWJzdHJhY3QpIHtcbiAgICAgICAgcmV0dXJuIHRvdWNoZWRBYnN0cmFjdDtcbiAgICB9XG5cbiAgICBpZiAodG91Y2hlZEFic3RyYWN0KSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQodG91Y2hlZEFic3RyYWN0ISkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgICAgIGNvbXBvbmVudC5hY3RpdmVHZW5lcmF0b3IudXBkYXRlQWJzdHJhY3RPdXRsaW5lKHRvdWNoZWRBYnN0cmFjdCk7XG4gICAgICAgIHRvdWNoZWRBYnN0cmFjdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoYWJzdHJhY3QpIHtcbiAgICAgICAgdG91Y2hlZEFic3RyYWN0ID0gYWJzdHJhY3Q7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQodG91Y2hlZEFic3RyYWN0ISkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgICAgIGNvbXBvbmVudC5hY3RpdmVHZW5lcmF0b3IudXBkYXRlQWJzdHJhY3RPdXRsaW5lKHRvdWNoZWRBYnN0cmFjdCwgdG91Y2hlZEhhbmRsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvdWNoZWRBYnN0cmFjdDtcbn1cbiJdfQ==