@plait/draw 0.75.0-next.4 → 0.75.0-next.6

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.
@@ -92,7 +92,7 @@ export const isRectangleHitDrawElement = (board, element, selection) => {
92
92
  }
93
93
  if (PlaitDrawElement.isVectorLine(element)) {
94
94
  const points = getVectorLinePoints(board, element);
95
- return isLineHitRectangle(points, rangeRectangle, false);
95
+ return isLineHitRectangle(points, rangeRectangle);
96
96
  }
97
97
  return null;
98
98
  };
@@ -213,4 +213,4 @@ export const isHitElementInside = (board, element, point) => {
213
213
  }
214
214
  return null;
215
215
  };
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvaGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxlQUFlLEVBR2Ysa0JBQWtCLEVBRWxCLCtCQUErQixFQUMvQiw0QkFBNEIsRUFDNUIsbUJBQW1CLEVBRW5CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBRXRCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFJSCxnQkFBZ0IsRUFJbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuSSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sT0FBTyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsUUFBdUIsRUFBRSxFQUFFO0lBQzdE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Q29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0RWxlbWVudCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgU2VsZWN0aW9uLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgaXNMaW5lSGl0UmVjdGFuZ2xlLFxuICAgIFBvaW50LFxuICAgIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludCxcbiAgICBISVRfRElTVEFOQ0VfQlVGRkVSLFxuICAgIHJvdGF0ZVBvaW50c0J5RWxlbWVudCxcbiAgICByb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50LFxuICAgIGlzUG9pbnRJblBvbHlnb24sXG4gICAgcm90YXRlUG9pbnRzQnlBbmdsZSxcbiAgICBpc0xpbmVIaXRSZWN0YW5nbGVFZGdlXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7XG4gICAgUGxhaXRBcnJvd0xpbmUsXG4gICAgUGxhaXRDb21tb25HZW9tZXRyeSxcbiAgICBQbGFpdEN1c3RvbUdlb21ldHJ5LFxuICAgIFBsYWl0RHJhd0VsZW1lbnQsXG4gICAgUGxhaXRHZW9tZXRyeSxcbiAgICBQbGFpdFNoYXBlRWxlbWVudCxcbiAgICBQbGFpdFZlY3RvckxpbmVcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXROZWFyZXN0UG9pbnQgfSBmcm9tICcuL2dlb21ldHJ5JztcbmltcG9ydCB7IGdldEFycm93TGluZVBvaW50cyB9IGZyb20gJy4vYXJyb3ctbGluZS9hcnJvdy1saW5lLWJhc2ljJztcbmltcG9ydCB7IGdldEZpbGxCeUVsZW1lbnQgfSBmcm9tICcuL3N0eWxlL3N0cm9rZSc7XG5pbXBvcnQgeyBnZXRFbmdpbmUgfSBmcm9tICcuLi9lbmdpbmVzJztcbmltcG9ydCB7IGdldEVsZW1lbnRTaGFwZSB9IGZyb20gJy4vc2hhcGUnO1xuaW1wb3J0IHsgZ2V0SGl0QXJyb3dMaW5lVGV4dEluZGV4IH0gZnJvbSAnLi9wb3NpdGlvbi9hcnJvdy1saW5lJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUsIGlzQ2xvc2VkQ3VzdG9tR2VvbWV0cnksIGlzQ2xvc2VkRHJhd0VsZW1lbnQsIGlzQ2xvc2VkUG9pbnRzLCBpc0RyYXdFbGVtZW50SW5jbHVkZVRleHQgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBpc011bHRpcGxlVGV4dEdlb21ldHJ5IH0gZnJvbSAnLi9tdWx0aS10ZXh0LWdlb21ldHJ5JztcbmltcG9ydCB7IGdldEZpcnN0VGV4dEVkaXRvciwgaXNGaWxsZWQsIHNvcnRFbGVtZW50c0J5QXJlYSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0VmVjdG9yTGluZVBvaW50cyB9IGZyb20gJy4vdmVjdG9yLWxpbmUnO1xuaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuXG5leHBvcnQgY29uc3QgaXNUZXh0RXhjZWVkaW5nQm91bmRzID0gKGdlb21ldHJ5OiBQbGFpdEdlb21ldHJ5KSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGdlb21ldHJ5LnBvaW50cyk7XG4gICAgaWYgKGdlb21ldHJ5LnRleHRIZWlnaHQgJiYgZ2VvbWV0cnkudGV4dEhlaWdodCA+IGNsaWVudC5oZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0hpdEFycm93TGluZVRleHQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0QXJyb3dMaW5lLCBwb2ludDogUG9pbnQpID0+IHtcbiAgICByZXR1cm4gZ2V0SGl0QXJyb3dMaW5lVGV4dEluZGV4KGJvYXJkLCBlbGVtZW50LCBwb2ludCkgIT09IC0xO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0UG9seUxpbmUgPSAocGF0aFBvaW50czogUG9pbnRbXSwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBhdGhQb2ludHMsIHBvaW50KTtcbiAgICByZXR1cm4gZGlzdGFuY2UgPD0gSElUX0RJU1RBTkNFX0JVRkZFUjtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0hpdEFycm93TGluZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRBcnJvd0xpbmUsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IHBvaW50cyA9IGdldEFycm93TGluZVBvaW50cyhib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3QgaXNIaXRUZXh0ID0gaXNIaXRBcnJvd0xpbmVUZXh0KGJvYXJkLCBlbGVtZW50IGFzIFBsYWl0QXJyb3dMaW5lLCBwb2ludCk7XG4gICAgcmV0dXJuIGlzSGl0VGV4dCB8fCBpc0hpdFBvbHlMaW5lKHBvaW50cywgcG9pbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0VmVjdG9yTGluZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRWZWN0b3JMaW5lLCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCBwb2ludHMgPSBnZXRWZWN0b3JMaW5lUG9pbnRzKGJvYXJkLCBlbGVtZW50KSE7XG4gICAgaWYgKGlzQ2xvc2VkUG9pbnRzKGVsZW1lbnQucG9pbnRzKSkge1xuICAgICAgICByZXR1cm4gaXNQb2ludEluUG9seWdvbihwb2ludCwgcG9pbnRzKSB8fCBpc0hpdFBvbHlMaW5lKHBvaW50cywgcG9pbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpc0hpdFBvbHlMaW5lKHBvaW50cywgcG9pbnQpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpc1JlY3RhbmdsZUhpdEVsZW1lbnRUZXh0ID0gKGVsZW1lbnQ6IFBsYWl0Q29tbW9uR2VvbWV0cnksIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgY29uc3QgZW5naW5lID0gZ2V0RW5naW5lPFBsYWl0Q29tbW9uR2VvbWV0cnk+KGVsZW1lbnQuc2hhcGUpO1xuICAgIGlmIChpc011bHRpcGxlVGV4dEdlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IHRleHRzID0gZWxlbWVudC50ZXh0cztcbiAgICAgICAgcmV0dXJuIHRleHRzLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRDbGllbnQgPSBlbmdpbmUuZ2V0VGV4dFJlY3RhbmdsZSEoZWxlbWVudCwgeyBpZDogaXRlbS5pZCB9KTtcbiAgICAgICAgICAgIHJldHVybiBpc1JlY3RhbmdsZUhpdFJvdGF0ZWRQb2ludHMocmVjdGFuZ2xlLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHRleHRDbGllbnQpLCBlbGVtZW50LmFuZ2xlKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdGV4dENsaWVudCA9IGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlID8gZW5naW5lLmdldFRleHRSZWN0YW5nbGUoZWxlbWVudCkgOiBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gaXNSZWN0YW5nbGVIaXRSb3RhdGVkUG9pbnRzKHJlY3RhbmdsZSwgUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyh0ZXh0Q2xpZW50KSwgZWxlbWVudC5hbmdsZSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0RWxlbWVudFRleHQgPSAoZWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3QgZW5naW5lID0gZ2V0RW5naW5lPFBsYWl0Q29tbW9uR2VvbWV0cnk+KGVsZW1lbnQuc2hhcGUpO1xuICAgIGlmIChpc011bHRpcGxlVGV4dEdlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IHRleHRzID0gZWxlbWVudC50ZXh0cztcbiAgICAgICAgcmV0dXJuIHRleHRzLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRDbGllbnQgPSBlbmdpbmUuZ2V0VGV4dFJlY3RhbmdsZSEoZWxlbWVudCwgeyBpZDogaXRlbS5pZCB9KTtcbiAgICAgICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNQb2ludEluUmVjdGFuZ2xlKHRleHRDbGllbnQsIHBvaW50KTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdGV4dENsaWVudCA9IGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlID8gZW5naW5lLmdldFRleHRSZWN0YW5nbGUoZWxlbWVudCkgOiBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzUG9pbnRJblJlY3RhbmdsZSh0ZXh0Q2xpZW50LCBwb2ludCk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzRW1wdHlUZXh0RWxlbWVudCA9IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5KSA9PiB7XG4gICAgaWYgKCFpc0RyYXdFbGVtZW50SW5jbHVkZVRleHQoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGVkaXRvciA9IGdldEZpcnN0VGV4dEVkaXRvcihlbGVtZW50KTtcbiAgICByZXR1cm4gRWRpdG9yLmlzRW1wdHkoZWRpdG9yLCBlZGl0b3IuY2hpbGRyZW5bMF0gYXMgRWxlbWVudCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNSZWN0YW5nbGVIaXREcmF3RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50LCBzZWxlY3Rpb246IFNlbGVjdGlvbikgPT4ge1xuICAgIGNvbnN0IHJhbmdlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtzZWxlY3Rpb24uYW5jaG9yLCBzZWxlY3Rpb24uZm9jdXNdKTtcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGlzSGl0RWxlbWVudCA9IGlzUmVjdGFuZ2xlSGl0Um90YXRlZEVsZW1lbnQoYm9hcmQsIHJhbmdlUmVjdGFuZ2xlLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKGlzSGl0RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGlzSGl0RWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIWlzRW1wdHlUZXh0RWxlbWVudChlbGVtZW50KSAmJiBpc1JlY3RhbmdsZUhpdEVsZW1lbnRUZXh0KGVsZW1lbnQsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBpc1JlY3RhbmdsZUhpdFJvdGF0ZWRFbGVtZW50KGJvYXJkLCByYW5nZVJlY3RhbmdsZSwgZWxlbWVudCk7XG4gICAgfVxuXG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNBcnJvd0xpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0QXJyb3dMaW5lUG9pbnRzKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIGlzTGluZUhpdFJlY3RhbmdsZShwb2ludHMsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1ZlY3RvckxpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0VmVjdG9yTGluZVBvaW50cyhib2FyZCwgZWxlbWVudCkhO1xuICAgICAgICByZXR1cm4gaXNMaW5lSGl0UmVjdGFuZ2xlKHBvaW50cywgcmFuZ2VSZWN0YW5nbGUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1JlY3RhbmdsZUhpdFJvdGF0ZWRFbGVtZW50ID0gKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCAmIHsgcG9pbnRzOiBQb2ludFtdIH1cbikgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyk7XG4gICAgcmV0dXJuIGlzUmVjdGFuZ2xlSGl0Um90YXRlZFBvaW50cyhyZWN0YW5nbGUsIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMoY2xpZW50KSwgZWxlbWVudC5hbmdsZSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNSZWN0YW5nbGVIaXRSb3RhdGVkUG9pbnRzID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludHM6IFBvaW50W10sIGFuZ2xlOiBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcbiAgICBsZXQgcm90YXRlZFBvaW50cyA9IHJvdGF0ZVBvaW50c0J5QW5nbGUocG9pbnRzLCBhbmdsZSkgfHwgcG9pbnRzO1xuICAgIHJldHVybiBpc0xpbmVIaXRSZWN0YW5nbGUocm90YXRlZFBvaW50cywgcmVjdGFuZ2xlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIaXREcmF3RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM6IChQbGFpdERyYXdFbGVtZW50IHwgUGxhaXRDdXN0b21HZW9tZXRyeSlbXSkgPT4ge1xuICAgIGxldCBmaXJzdEZpbGxlZEVsZW1lbnQgPSBnZXRGaXJzdEZpbGxlZERyYXdFbGVtZW50KGJvYXJkLCBlbGVtZW50cyk7XG4gICAgbGV0IGVuZEluZGV4ID0gZWxlbWVudHMubGVuZ3RoO1xuICAgIGlmIChmaXJzdEZpbGxlZEVsZW1lbnQpIHtcbiAgICAgICAgZW5kSW5kZXggPSBlbGVtZW50cy5pbmRleE9mKGZpcnN0RmlsbGVkRWxlbWVudCkgKyAxO1xuICAgIH1cbiAgICBjb25zdCBuZXdFbGVtZW50cyA9IGVsZW1lbnRzLnNsaWNlKDAsIGVuZEluZGV4KTtcbiAgICBjb25zdCBlbGVtZW50ID0gZ2V0Rmlyc3RUZXh0T3JMaW5lRWxlbWVudChuZXdFbGVtZW50cyk7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XG4gICAgfVxuICAgIGNvbnN0IHNvcnRFbGVtZW50cyA9IHNvcnRFbGVtZW50c0J5QXJlYShib2FyZCwgbmV3RWxlbWVudHMsICdhc2MnKTtcbiAgICByZXR1cm4gc29ydEVsZW1lbnRzWzBdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpcnN0RmlsbGVkRHJhd0VsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiAoUGxhaXREcmF3RWxlbWVudCB8IFBsYWl0Q3VzdG9tR2VvbWV0cnkpW10pID0+IHtcbiAgICBsZXQgZmlsbGVkRWxlbWVudDogUGxhaXRHZW9tZXRyeSB8IFBsYWl0Q3VzdG9tR2VvbWV0cnkgfCBudWxsID0gbnVsbDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50c1tpXTtcbiAgICAgICAgaWYgKGlzQ2xvc2VkQ3VzdG9tR2VvbWV0cnkoYm9hcmQsIGVsZW1lbnQpIHx8IGlzQ2xvc2VkRHJhd0VsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGwgPSBnZXRGaWxsQnlFbGVtZW50KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChpc0ZpbGxlZChmaWxsKSkge1xuICAgICAgICAgICAgICAgIGZpbGxlZEVsZW1lbnQgPSBlbGVtZW50IGFzIFBsYWl0R2VvbWV0cnk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZpbGxlZEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNGaWxsZWREcmF3RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXREcmF3RWxlbWVudCB8IFBsYWl0Q3VzdG9tR2VvbWV0cnkpID0+IHtcbiAgICByZXR1cm4gZ2V0Rmlyc3RGaWxsZWREcmF3RWxlbWVudChib2FyZCwgW2VsZW1lbnRdKSAhPT0gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFRleHRPckxpbmVFbGVtZW50ID0gKGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IHRleHRzID0gZWxlbWVudHMuZmlsdGVyKChpdGVtKSA9PiBQbGFpdERyYXdFbGVtZW50LmlzVGV4dChpdGVtKSk7XG4gICAgaWYgKHRleHRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdGV4dHNbMF07XG4gICAgfVxuICAgIGNvbnN0IGxpbmVzID0gZWxlbWVudHMuZmlsdGVyKChpdGVtKSA9PiBQbGFpdERyYXdFbGVtZW50LmlzQXJyb3dMaW5lKGl0ZW0pKTtcbiAgICBpZiAobGluZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBsaW5lc1swXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgaXNIaXREcmF3RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50LCBwb2ludDogUG9pbnQsIGlzU3RyaWN0OiBib29sZWFuID0gdHJ1ZSkgPT4ge1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IGJvYXJkLmdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICBwb2ludCA9IHJvdGF0ZUFudGlQb2ludHNCeUVsZW1lbnQocG9pbnQsIGVsZW1lbnQpIHx8IHBvaW50O1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoZWxlbWVudCkpIHtcbiAgICAgICAgaWYgKGlzSGl0RWRnZU9mU2hhcGUoYm9hcmQsIGVsZW1lbnQsIHBvaW50LCBISVRfRElTVEFOQ0VfQlVGRkVSKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZW5naW5lID0gZ2V0RW5naW5lKGdldEVsZW1lbnRTaGFwZShlbGVtZW50KSk7XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVGV4dChlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgdGV4dENsaWVudCA9IGdldFRleHRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzUG9pbnRJblJlY3RhbmdsZSh0ZXh0Q2xpZW50LCBwb2ludCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEhaXNTdHJpY3QgJiYgaXNFbXB0eVRleHRFbGVtZW50KGVsZW1lbnQpICYmICFpc0ZpbGxlZERyYXdFbGVtZW50KGJvYXJkLCBlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzSGl0VGV4dCA9IGlzSGl0RWxlbWVudFRleHQoZWxlbWVudCwgcG9pbnQpO1xuICAgICAgICByZXR1cm4gaXNIaXRUZXh0IHx8IGVuZ2luZS5pc0luc2lkZVBvaW50KHJlY3RhbmdsZSEsIHBvaW50KTtcbiAgICB9XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZShlbGVtZW50KSkge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMpO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzUG9pbnRJblJlY3RhbmdsZShjbGllbnQsIHBvaW50KTtcbiAgICB9XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNBcnJvd0xpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGlzSGl0QXJyb3dMaW5lKGJvYXJkLCBlbGVtZW50LCBwb2ludCk7XG4gICAgfVxuXG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNWZWN0b3JMaW5lKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBpc0hpdFZlY3RvckxpbmUoYm9hcmQsIGVsZW1lbnQsIHBvaW50KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgaXNIaXRFZGdlT2ZTaGFwZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRTaGFwZUVsZW1lbnQsIHBvaW50OiBQb2ludCwgaGl0RGlzdGFuY2VCdWZmZXI6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IG5lYXJlc3RQb2ludCA9IGdldE5lYXJlc3RQb2ludChlbGVtZW50LCBwb2ludCk7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KG5lYXJlc3RQb2ludFswXSwgbmVhcmVzdFBvaW50WzFdLCBwb2ludFswXSwgcG9pbnRbMV0pO1xuICAgIHJldHVybiBkaXN0YW5jZSA8PSBoaXREaXN0YW5jZUJ1ZmZlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0luc2lkZU9mU2hhcGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0U2hhcGVFbGVtZW50LCBwb2ludDogUG9pbnQsIGhpdERpc3RhbmNlQnVmZmVyOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBSZWN0YW5nbGVDbGllbnQuaW5mbGF0ZShSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMpLCBoaXREaXN0YW5jZUJ1ZmZlcik7XG4gICAgcmV0dXJuIGdldEVuZ2luZShnZXRFbGVtZW50U2hhcGUoZWxlbWVudCkpLmlzSW5zaWRlUG9pbnQoY2xpZW50LCBwb2ludCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNIaXRFbGVtZW50SW5zaWRlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IGJvYXJkLmdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICBwb2ludCA9IHJvdGF0ZUFudGlQb2ludHNCeUVsZW1lbnQocG9pbnQsIGVsZW1lbnQpIHx8IHBvaW50O1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoZWxlbWVudCkgJiYgIVBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeUJ5VGFibGUoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgZW5naW5lID0gZ2V0RW5naW5lKGdldEVsZW1lbnRTaGFwZShlbGVtZW50KSk7XG4gICAgICAgIGNvbnN0IGlzSGl0SW5zaWRlID0gZW5naW5lLmlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlISwgcG9pbnQpO1xuICAgICAgICBpZiAoaXNIaXRJbnNpZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0hpdEluc2lkZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5naW5lLmdldFRleHRSZWN0YW5nbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzSGl0VGV4dCA9IGlzSGl0RWxlbWVudFRleHQoZWxlbWVudCwgcG9pbnQpO1xuICAgICAgICAgICAgaWYgKGlzSGl0VGV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0hpdFRleHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZShlbGVtZW50KSkge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMpO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzUG9pbnRJblJlY3RhbmdsZShjbGllbnQsIHBvaW50KTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0Fycm93TGluZShlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gaXNIaXRBcnJvd0xpbmUoYm9hcmQsIGVsZW1lbnQsIHBvaW50KTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1ZlY3RvckxpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGlzSGl0VmVjdG9yTGluZShib2FyZCwgZWxlbWVudCwgcG9pbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufTtcbiJdfQ==
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvaGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxlQUFlLEVBR2Ysa0JBQWtCLEVBRWxCLCtCQUErQixFQUMvQiw0QkFBNEIsRUFDNUIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFJSCxnQkFBZ0IsRUFJbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuSSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sT0FBTyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsUUFBdUIsRUFBRSxFQUFFO0lBQzdE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ImltcG9ydCB7XG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBTZWxlY3Rpb24sXG4gICAgUGxhaXRCb2FyZCxcbiAgICBpc0xpbmVIaXRSZWN0YW5nbGUsXG4gICAgUG9pbnQsXG4gICAgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50LFxuICAgIEhJVF9ESVNUQU5DRV9CVUZGRVIsXG4gICAgcm90YXRlQW50aVBvaW50c0J5RWxlbWVudCxcbiAgICBpc1BvaW50SW5Qb2x5Z29uLFxuICAgIHJvdGF0ZVBvaW50c0J5QW5nbGVcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHtcbiAgICBQbGFpdEFycm93TGluZSxcbiAgICBQbGFpdENvbW1vbkdlb21ldHJ5LFxuICAgIFBsYWl0Q3VzdG9tR2VvbWV0cnksXG4gICAgUGxhaXREcmF3RWxlbWVudCxcbiAgICBQbGFpdEdlb21ldHJ5LFxuICAgIFBsYWl0U2hhcGVFbGVtZW50LFxuICAgIFBsYWl0VmVjdG9yTGluZVxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldE5lYXJlc3RQb2ludCB9IGZyb20gJy4vZ2VvbWV0cnknO1xuaW1wb3J0IHsgZ2V0QXJyb3dMaW5lUG9pbnRzIH0gZnJvbSAnLi9hcnJvdy1saW5lL2Fycm93LWxpbmUtYmFzaWMnO1xuaW1wb3J0IHsgZ2V0RmlsbEJ5RWxlbWVudCB9IGZyb20gJy4vc3R5bGUvc3Ryb2tlJztcbmltcG9ydCB7IGdldEVuZ2luZSB9IGZyb20gJy4uL2VuZ2luZXMnO1xuaW1wb3J0IHsgZ2V0RWxlbWVudFNoYXBlIH0gZnJvbSAnLi9zaGFwZSc7XG5pbXBvcnQgeyBnZXRIaXRBcnJvd0xpbmVUZXh0SW5kZXggfSBmcm9tICcuL3Bvc2l0aW9uL2Fycm93LWxpbmUnO1xuaW1wb3J0IHsgZ2V0VGV4dFJlY3RhbmdsZSwgaXNDbG9zZWRDdXN0b21HZW9tZXRyeSwgaXNDbG9zZWREcmF3RWxlbWVudCwgaXNDbG9zZWRQb2ludHMsIGlzRHJhd0VsZW1lbnRJbmNsdWRlVGV4dCB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkgfSBmcm9tICcuL211bHRpLXRleHQtZ2VvbWV0cnknO1xuaW1wb3J0IHsgZ2V0Rmlyc3RUZXh0RWRpdG9yLCBpc0ZpbGxlZCwgc29ydEVsZW1lbnRzQnlBcmVhIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBnZXRWZWN0b3JMaW5lUG9pbnRzIH0gZnJvbSAnLi92ZWN0b3ItbGluZSc7XG5pbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBpc1RleHRFeGNlZWRpbmdCb3VuZHMgPSAoZ2VvbWV0cnk6IFBsYWl0R2VvbWV0cnkpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZ2VvbWV0cnkucG9pbnRzKTtcbiAgICBpZiAoZ2VvbWV0cnkudGV4dEhlaWdodCAmJiBnZW9tZXRyeS50ZXh0SGVpZ2h0ID4gY2xpZW50LmhlaWdodCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0QXJyb3dMaW5lVGV4dCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRBcnJvd0xpbmUsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIHJldHVybiBnZXRIaXRBcnJvd0xpbmVUZXh0SW5kZXgoYm9hcmQsIGVsZW1lbnQsIHBvaW50KSAhPT0gLTE7XG59O1xuXG5leHBvcnQgY29uc3QgaXNIaXRQb2x5TGluZSA9IChwYXRoUG9pbnRzOiBQb2ludFtdLCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kU2VnbWVudHMocGF0aFBvaW50cywgcG9pbnQpO1xuICAgIHJldHVybiBkaXN0YW5jZSA8PSBISVRfRElTVEFOQ0VfQlVGRkVSO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0QXJyb3dMaW5lID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEFycm93TGluZSwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3QgcG9pbnRzID0gZ2V0QXJyb3dMaW5lUG9pbnRzKGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBpc0hpdFRleHQgPSBpc0hpdEFycm93TGluZVRleHQoYm9hcmQsIGVsZW1lbnQgYXMgUGxhaXRBcnJvd0xpbmUsIHBvaW50KTtcbiAgICByZXR1cm4gaXNIaXRUZXh0IHx8IGlzSGl0UG9seUxpbmUocG9pbnRzLCBwb2ludCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNIaXRWZWN0b3JMaW5lID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdFZlY3RvckxpbmUsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IHBvaW50cyA9IGdldFZlY3RvckxpbmVQb2ludHMoYm9hcmQsIGVsZW1lbnQpITtcbiAgICBpZiAoaXNDbG9zZWRQb2ludHMoZWxlbWVudC5wb2ludHMpKSB7XG4gICAgICAgIHJldHVybiBpc1BvaW50SW5Qb2x5Z29uKHBvaW50LCBwb2ludHMpIHx8IGlzSGl0UG9seUxpbmUocG9pbnRzLCBwb2ludCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGlzSGl0UG9seUxpbmUocG9pbnRzLCBwb2ludCk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzUmVjdGFuZ2xlSGl0RWxlbWVudFRleHQgPSAoZWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpID0+IHtcbiAgICBjb25zdCBlbmdpbmUgPSBnZXRFbmdpbmU8UGxhaXRDb21tb25HZW9tZXRyeT4oZWxlbWVudC5zaGFwZSk7XG4gICAgaWYgKGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgdGV4dHMgPSBlbGVtZW50LnRleHRzO1xuICAgICAgICByZXR1cm4gdGV4dHMuc29tZSgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dENsaWVudCA9IGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlIShlbGVtZW50LCB7IGlkOiBpdGVtLmlkIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGlzUmVjdGFuZ2xlSGl0Um90YXRlZFBvaW50cyhyZWN0YW5nbGUsIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHModGV4dENsaWVudCksIGVsZW1lbnQuYW5nbGUpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0ZXh0Q2xpZW50ID0gZW5naW5lLmdldFRleHRSZWN0YW5nbGUgPyBlbmdpbmUuZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50KSA6IGdldFRleHRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBpc1JlY3RhbmdsZUhpdFJvdGF0ZWRQb2ludHMocmVjdGFuZ2xlLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHRleHRDbGllbnQpLCBlbGVtZW50LmFuZ2xlKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNIaXRFbGVtZW50VGV4dCA9IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5LCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCBlbmdpbmUgPSBnZXRFbmdpbmU8UGxhaXRDb21tb25HZW9tZXRyeT4oZWxlbWVudC5zaGFwZSk7XG4gICAgaWYgKGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgdGV4dHMgPSBlbGVtZW50LnRleHRzO1xuICAgICAgICByZXR1cm4gdGV4dHMuc29tZSgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dENsaWVudCA9IGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlIShlbGVtZW50LCB7IGlkOiBpdGVtLmlkIH0pO1xuICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc1BvaW50SW5SZWN0YW5nbGUodGV4dENsaWVudCwgcG9pbnQpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0ZXh0Q2xpZW50ID0gZW5naW5lLmdldFRleHRSZWN0YW5nbGUgPyBlbmdpbmUuZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50KSA6IGdldFRleHRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNQb2ludEluUmVjdGFuZ2xlKHRleHRDbGllbnQsIHBvaW50KTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNFbXB0eVRleHRFbGVtZW50ID0gKGVsZW1lbnQ6IFBsYWl0Q29tbW9uR2VvbWV0cnkpID0+IHtcbiAgICBpZiAoIWlzRHJhd0VsZW1lbnRJbmNsdWRlVGV4dChlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgZWRpdG9yID0gZ2V0Rmlyc3RUZXh0RWRpdG9yKGVsZW1lbnQpO1xuICAgIHJldHVybiBFZGl0b3IuaXNFbXB0eShlZGl0b3IsIGVkaXRvci5jaGlsZHJlblswXSBhcyBFbGVtZW50KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1JlY3RhbmdsZUhpdERyYXdFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQsIHNlbGVjdGlvbjogU2VsZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3NlbGVjdGlvbi5hbmNob3IsIHNlbGVjdGlvbi5mb2N1c10pO1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgaXNIaXRFbGVtZW50ID0gaXNSZWN0YW5nbGVIaXRSb3RhdGVkRWxlbWVudChib2FyZCwgcmFuZ2VSZWN0YW5nbGUsIGVsZW1lbnQpO1xuICAgICAgICBpZiAoaXNIaXRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gaXNIaXRFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhaXNFbXB0eVRleHRFbGVtZW50KGVsZW1lbnQpICYmIGlzUmVjdGFuZ2xlSGl0RWxlbWVudFRleHQoZWxlbWVudCwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH1cblxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGlzUmVjdGFuZ2xlSGl0Um90YXRlZEVsZW1lbnQoYm9hcmQsIHJhbmdlUmVjdGFuZ2xlLCBlbGVtZW50KTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0Fycm93TGluZShlbGVtZW50KSkge1xuICAgICAgICBjb25zdCBwb2ludHMgPSBnZXRBcnJvd0xpbmVQb2ludHMoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gaXNMaW5lSGl0UmVjdGFuZ2xlKHBvaW50cywgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH1cblxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVmVjdG9yTGluZShlbGVtZW50KSkge1xuICAgICAgICBjb25zdCBwb2ludHMgPSBnZXRWZWN0b3JMaW5lUG9pbnRzKGJvYXJkLCBlbGVtZW50KSE7XG4gICAgICAgIHJldHVybiBpc0xpbmVIaXRSZWN0YW5nbGUocG9pbnRzLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgaXNSZWN0YW5nbGVIaXRSb3RhdGVkRWxlbWVudCA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCxcbiAgICBlbGVtZW50OiBQbGFpdEVsZW1lbnQgJiB7IHBvaW50czogUG9pbnRbXSB9XG4pID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMpO1xuICAgIHJldHVybiBpc1JlY3RhbmdsZUhpdFJvdGF0ZWRQb2ludHMocmVjdGFuZ2xlLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKGNsaWVudCksIGVsZW1lbnQuYW5nbGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUmVjdGFuZ2xlSGl0Um90YXRlZFBvaW50cyA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRzOiBQb2ludFtdLCBhbmdsZTogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgbGV0IHJvdGF0ZWRQb2ludHMgPSByb3RhdGVQb2ludHNCeUFuZ2xlKHBvaW50cywgYW5nbGUpIHx8IHBvaW50cztcbiAgICByZXR1cm4gaXNMaW5lSGl0UmVjdGFuZ2xlKHJvdGF0ZWRQb2ludHMsIHJlY3RhbmdsZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SGl0RHJhd0VsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiAoUGxhaXREcmF3RWxlbWVudCB8IFBsYWl0Q3VzdG9tR2VvbWV0cnkpW10pID0+IHtcbiAgICBsZXQgZmlyc3RGaWxsZWRFbGVtZW50ID0gZ2V0Rmlyc3RGaWxsZWREcmF3RWxlbWVudChib2FyZCwgZWxlbWVudHMpO1xuICAgIGxldCBlbmRJbmRleCA9IGVsZW1lbnRzLmxlbmd0aDtcbiAgICBpZiAoZmlyc3RGaWxsZWRFbGVtZW50KSB7XG4gICAgICAgIGVuZEluZGV4ID0gZWxlbWVudHMuaW5kZXhPZihmaXJzdEZpbGxlZEVsZW1lbnQpICsgMTtcbiAgICB9XG4gICAgY29uc3QgbmV3RWxlbWVudHMgPSBlbGVtZW50cy5zbGljZSgwLCBlbmRJbmRleCk7XG4gICAgY29uc3QgZWxlbWVudCA9IGdldEZpcnN0VGV4dE9yTGluZUVsZW1lbnQobmV3RWxlbWVudHMpO1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cbiAgICBjb25zdCBzb3J0RWxlbWVudHMgPSBzb3J0RWxlbWVudHNCeUFyZWEoYm9hcmQsIG5ld0VsZW1lbnRzLCAnYXNjJyk7XG4gICAgcmV0dXJuIHNvcnRFbGVtZW50c1swXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdEZpbGxlZERyYXdFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50czogKFBsYWl0RHJhd0VsZW1lbnQgfCBQbGFpdEN1c3RvbUdlb21ldHJ5KVtdKSA9PiB7XG4gICAgbGV0IGZpbGxlZEVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkgfCBQbGFpdEN1c3RvbUdlb21ldHJ5IHwgbnVsbCA9IG51bGw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudHNbaV07XG4gICAgICAgIGlmIChpc0Nsb3NlZEN1c3RvbUdlb21ldHJ5KGJvYXJkLCBlbGVtZW50KSB8fCBpc0Nsb3NlZERyYXdFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxsID0gZ2V0RmlsbEJ5RWxlbWVudChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaXNGaWxsZWQoZmlsbCkpIHtcbiAgICAgICAgICAgICAgICBmaWxsZWRFbGVtZW50ID0gZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaWxsZWRFbGVtZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRmlsbGVkRHJhd0VsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RHJhd0VsZW1lbnQgfCBQbGFpdEN1c3RvbUdlb21ldHJ5KSA9PiB7XG4gICAgcmV0dXJuIGdldEZpcnN0RmlsbGVkRHJhd0VsZW1lbnQoYm9hcmQsIFtlbGVtZW50XSkgIT09IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RUZXh0T3JMaW5lRWxlbWVudCA9IChlbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCB0ZXh0cyA9IGVsZW1lbnRzLmZpbHRlcigoaXRlbSkgPT4gUGxhaXREcmF3RWxlbWVudC5pc1RleHQoaXRlbSkpO1xuICAgIGlmICh0ZXh0cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRleHRzWzBdO1xuICAgIH1cbiAgICBjb25zdCBsaW5lcyA9IGVsZW1lbnRzLmZpbHRlcigoaXRlbSkgPT4gUGxhaXREcmF3RWxlbWVudC5pc0Fycm93TGluZShpdGVtKSk7XG4gICAgaWYgKGxpbmVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gbGluZXNbMF07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0RHJhd0VsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgcG9pbnQ6IFBvaW50LCBpc1N0cmljdDogYm9vbGVhbiA9IHRydWUpID0+IHtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgcG9pbnQgPSByb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50KHBvaW50LCBlbGVtZW50KSB8fCBwb2ludDtcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgIGlmIChpc0hpdEVkZ2VPZlNoYXBlKGJvYXJkLCBlbGVtZW50LCBwb2ludCwgSElUX0RJU1RBTkNFX0JVRkZFUikpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZ2luZSA9IGdldEVuZ2luZShnZXRFbGVtZW50U2hhcGUoZWxlbWVudCkpO1xuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1RleHQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRDbGllbnQgPSBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc1BvaW50SW5SZWN0YW5nbGUodGV4dENsaWVudCwgcG9pbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghIWlzU3RyaWN0ICYmIGlzRW1wdHlUZXh0RWxlbWVudChlbGVtZW50KSAmJiAhaXNGaWxsZWREcmF3RWxlbWVudChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0hpdFRleHQgPSBpc0hpdEVsZW1lbnRUZXh0KGVsZW1lbnQsIHBvaW50KTtcbiAgICAgICAgcmV0dXJuIGlzSGl0VGV4dCB8fCBlbmdpbmUuaXNJbnNpZGVQb2ludChyZWN0YW5nbGUhLCBwb2ludCk7XG4gICAgfVxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc1BvaW50SW5SZWN0YW5nbGUoY2xpZW50LCBwb2ludCk7XG4gICAgfVxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzQXJyb3dMaW5lKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBpc0hpdEFycm93TGluZShib2FyZCwgZWxlbWVudCwgcG9pbnQpO1xuICAgIH1cblxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVmVjdG9yTGluZShlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gaXNIaXRWZWN0b3JMaW5lKGJvYXJkLCBlbGVtZW50LCBwb2ludCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0RWRnZU9mU2hhcGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0U2hhcGVFbGVtZW50LCBwb2ludDogUG9pbnQsIGhpdERpc3RhbmNlQnVmZmVyOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBuZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnQoZWxlbWVudCwgcG9pbnQpO1xuICAgIGNvbnN0IGRpc3RhbmNlID0gZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludChuZWFyZXN0UG9pbnRbMF0sIG5lYXJlc3RQb2ludFsxXSwgcG9pbnRbMF0sIHBvaW50WzFdKTtcbiAgICByZXR1cm4gZGlzdGFuY2UgPD0gaGl0RGlzdGFuY2VCdWZmZXI7XG59O1xuXG5leHBvcnQgY29uc3QgaXNJbnNpZGVPZlNoYXBlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdFNoYXBlRWxlbWVudCwgcG9pbnQ6IFBvaW50LCBoaXREaXN0YW5jZUJ1ZmZlcjogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gUmVjdGFuZ2xlQ2xpZW50LmluZmxhdGUoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKSwgaGl0RGlzdGFuY2VCdWZmZXIpO1xuICAgIHJldHVybiBnZXRFbmdpbmUoZ2V0RWxlbWVudFNoYXBlKGVsZW1lbnQpKS5pc0luc2lkZVBvaW50KGNsaWVudCwgcG9pbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0RWxlbWVudEluc2lkZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50LCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgcG9pbnQgPSByb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50KHBvaW50LCBlbGVtZW50KSB8fCBwb2ludDtcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KGVsZW1lbnQpICYmICFQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnlCeVRhYmxlKGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGVuZ2luZSA9IGdldEVuZ2luZShnZXRFbGVtZW50U2hhcGUoZWxlbWVudCkpO1xuICAgICAgICBjb25zdCBpc0hpdEluc2lkZSA9IGVuZ2luZS5pc0luc2lkZVBvaW50KHJlY3RhbmdsZSEsIHBvaW50KTtcbiAgICAgICAgaWYgKGlzSGl0SW5zaWRlKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNIaXRJbnNpZGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICBjb25zdCBpc0hpdFRleHQgPSBpc0hpdEVsZW1lbnRUZXh0KGVsZW1lbnQsIHBvaW50KTtcbiAgICAgICAgICAgIGlmIChpc0hpdFRleHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNIaXRUZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc1BvaW50SW5SZWN0YW5nbGUoY2xpZW50LCBwb2ludCk7XG4gICAgfVxuXG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNBcnJvd0xpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGlzSGl0QXJyb3dMaW5lKGJvYXJkLCBlbGVtZW50LCBwb2ludCk7XG4gICAgfVxuXG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNWZWN0b3JMaW5lKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBpc0hpdFZlY3RvckxpbmUoYm9hcmQsIGVsZW1lbnQsIHBvaW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn07XG4iXX0=
@@ -1115,7 +1115,7 @@ const isRectangleHitDrawElement = (board, element, selection) => {
1115
1115
  }
1116
1116
  if (PlaitDrawElement.isVectorLine(element)) {
1117
1117
  const points = getVectorLinePoints(board, element);
1118
- return isLineHitRectangle(points, rangeRectangle, false);
1118
+ return isLineHitRectangle(points, rangeRectangle);
1119
1119
  }
1120
1120
  return null;
1121
1121
  };