@plait/core 0.75.0 → 0.76.0

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,6 +9,7 @@ import { getSelectionAngle, setAngleForG } from './angle';
9
9
  import { filterSelectedGroups, getAllElementsInGroup, getElementsInGroup, getElementsInGroupByElement, getGroupByElement } from './group';
10
10
  import { uniqueById } from './helper';
11
11
  import { Selection } from '../interfaces/selection';
12
+ import { toActiveRectangleFromViewBoxRectangle } from './to-point';
12
13
  export function isSelectionMoving(board) {
13
14
  return !!BOARD_TO_IS_SELECTION_MOVING.get(board);
14
15
  }
@@ -27,7 +28,7 @@ export function isHandleSelection(board) {
27
28
  return board.pointer !== PlaitPointerType.hand && !options.isDisabledSelection && !PlaitBoard.isReadonly(board);
28
29
  }
29
30
  export function hasSetSelectionOperation(board) {
30
- return !!board.operations.find(op => PlaitOperation.isSetSelectionOperation(op));
31
+ return !!board.operations.find((op) => PlaitOperation.isSetSelectionOperation(op));
31
32
  }
32
33
  export function getTemporaryElements(board) {
33
34
  const ref = BOARD_TO_TEMPORARY_ELEMENTS.get(board);
@@ -47,8 +48,9 @@ export function deleteTemporaryElements(board) {
47
48
  export function drawSelectionRectangleG(board) {
48
49
  const elements = getSelectedElements(board);
49
50
  const rectangle = getRectangleByElements(board, elements, false);
50
- if (rectangle.width > 0 && rectangle.height > 0 && elements.length > 1) {
51
- const selectionRectangleG = drawRectangle(board, RectangleClient.inflate(rectangle, ACTIVE_STROKE_WIDTH), {
51
+ const activeRectangle = toActiveRectangleFromViewBoxRectangle(board, rectangle);
52
+ if (activeRectangle.width > 0 && activeRectangle.height > 0 && elements.length > 1) {
53
+ const selectionRectangleG = drawRectangle(board, RectangleClient.inflate(activeRectangle, ACTIVE_STROKE_WIDTH), {
52
54
  stroke: SELECTION_BORDER_COLOR,
53
55
  strokeWidth: ACTIVE_STROKE_WIDTH,
54
56
  fillStyle: 'solid'
@@ -56,7 +58,7 @@ export function drawSelectionRectangleG(board) {
56
58
  selectionRectangleG.classList.add(SELECTION_RECTANGLE_CLASS_NAME, SELECTION_RECTANGLE_BOUNDING_CLASS_NAME);
57
59
  const angle = getSelectionAngle(elements);
58
60
  if (angle) {
59
- setAngleForG(selectionRectangleG, RectangleClient.getCenterPoint(rectangle), angle);
61
+ setAngleForG(selectionRectangleG, RectangleClient.getCenterPoint(activeRectangle), angle);
60
62
  }
61
63
  return selectionRectangleG;
62
64
  }
@@ -69,7 +71,7 @@ export function setSelectedElementsWithGroup(board, elements, isShift) {
69
71
  const selectedElements = getSelectedElements(board);
70
72
  if (!Selection.isCollapsed(board.selection)) {
71
73
  let newElements = [...selectedElements];
72
- elements.forEach(item => {
74
+ elements.forEach((item) => {
73
75
  if (!item.groupId) {
74
76
  newElements.push(item);
75
77
  }
@@ -85,7 +87,7 @@ export function setSelectedElementsWithGroup(board, elements, isShift) {
85
87
  const hitElementGroups = getGroupByElement(board, hitElement, true);
86
88
  if (hitElementGroups.length) {
87
89
  const elementsInHighestGroup = getElementsInGroup(board, hitElementGroups[hitElementGroups.length - 1], true) || [];
88
- const isSelectGroupElement = selectedElements.some(element => elementsInHighestGroup.map(item => item.id).includes(element.id));
90
+ const isSelectGroupElement = selectedElements.some((element) => elementsInHighestGroup.map((item) => item.id).includes(element.id));
89
91
  if (isShift) {
90
92
  cacheSelectedElementsWithGroupOnShift(board, elements, isSelectGroupElement, elementsInHighestGroup);
91
93
  }
@@ -104,16 +106,16 @@ export function cacheSelectedElementsWithGroupOnShift(board, elements, isSelectG
104
106
  pendingElements = elementsInHighestGroup;
105
107
  }
106
108
  else {
107
- const isHitSelectedElement = selectedElements.some(item => item.id === hitElement.id);
108
- const selectedElementsInGroup = elementsInHighestGroup.filter(item => selectedElements.includes(item));
109
+ const isHitSelectedElement = selectedElements.some((item) => item.id === hitElement.id);
110
+ const selectedElementsInGroup = elementsInHighestGroup.filter((item) => selectedElements.includes(item));
109
111
  if (isHitSelectedElement) {
110
- pendingElements = selectedElementsInGroup.filter(item => item.id !== hitElement.id);
112
+ pendingElements = selectedElementsInGroup.filter((item) => item.id !== hitElement.id);
111
113
  }
112
114
  else {
113
115
  pendingElements.push(...selectedElementsInGroup, ...elements);
114
116
  }
115
117
  }
116
- elementsInHighestGroup.forEach(element => {
118
+ elementsInHighestGroup.forEach((element) => {
117
119
  if (newElements.includes(element)) {
118
120
  newElements.splice(newElements.indexOf(element), 1);
119
121
  }
@@ -146,4 +148,4 @@ export const getSelectionOptions = (board) => {
146
148
  export const setSelectionOptions = (board, options) => {
147
149
  board.setPluginOptions(PlaitPluginKey.withSelection, options);
148
150
  };
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx1Q0FBdUMsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1SCxPQUFPLEVBQ0gsVUFBVSxFQUdWLGNBQWMsRUFDZCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixzQkFBc0IsRUFFekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMxSSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdwRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBaUI7SUFDL0MsT0FBTyxDQUFDLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FB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S0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDckUsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzVCLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QixXQUFXLEdBQUcscUJBQXFCLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hHLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDeEIsV0FBVyxHQUFHLGVBQWUsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUNELHFCQUFxQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDckQsTUFBTSxPQUFPLEdBQUksS0FBMkIsQ0FBQyxnQkFBZ0IsQ0FBNkIsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hILE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUE0QyxFQUFFLEVBQUU7SUFDbEcsS0FBMkIsQ0FBQyxnQkFBZ0IsQ0FBNkIsY0FBYyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNySCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQ1RJVkVfU1RST0tFX1dJRFRILCBTRUxFQ1RJT05fUkVDVEFOR0xFX0JPVU5ESU5HX0NMQVNTX05BTUUsIFNFTEVDVElPTl9SRUNUQU5HTEVfQ0xBU1NfTkFNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBsYWl0R3JvdXAsXG4gICAgUGxhaXRPcGVyYXRpb24sXG4gICAgUGxhaXRQbHVnaW5LZXksXG4gICAgUGxhaXRQb2ludGVyVHlwZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgU0VMRUNUSU9OX0JPUkRFUl9DT0xPUixcbiAgICBXaXRoU2VsZWN0aW9uUGx1Z2luT3B0aW9uc1xufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IHNldERyYWdnaW5nIH0gZnJvbSAnLi9kbmQnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBCT0FSRF9UT19JU19TRUxFQ1RJT05fTU9WSU5HLCBCT0FSRF9UT19URU1QT1JBUllfRUxFTUVOVFMgfSBmcm9tICcuL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBkcmF3UmVjdGFuZ2xlIH0gZnJvbSAnLi9kcmF3aW5nL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBjYWNoZVNlbGVjdGVkRWxlbWVudHMsIGdldFNlbGVjdGVkRWxlbWVudHMgfSBmcm9tICcuL3NlbGVjdGVkLWVsZW1lbnQnO1xuaW1wb3J0IHsgZ2V0U2VsZWN0aW9uQW5nbGUsIHNldEFuZ2xlRm9yRyB9IGZyb20gJy4vYW5nbGUnO1xuaW1wb3J0IHsgZmlsdGVyU2VsZWN0ZWRHcm91cHMsIGdldEFsbEVsZW1lbnRzSW5Hcm91cCwgZ2V0RWxlbWVudHNJbkdyb3VwLCBnZXRFbGVtZW50c0luR3JvdXBCeUVsZW1lbnQsIGdldEdyb3VwQnlFbGVtZW50IH0gZnJvbSAnLi9ncm91cCc7XG5pbXBvcnQgeyB1bmlxdWVCeUlkIH0gZnJvbSAnLi9oZWxwZXInO1xuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZWxlY3Rpb24nO1xuaW1wb3J0IHsgUGxhaXRPcHRpb25zQm9hcmQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtb3B0aW9ucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NlbGVjdGlvbk1vdmluZyhib2FyZDogUGxhaXRCb2FyZCkge1xuICAgIHJldHVybiAhIUJPQVJEX1RPX0lTX1NFTEVDVElPTl9NT1ZJTkcuZ2V0KGJvYXJkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNlbGVjdGlvbk1vdmluZyhib2FyZDogUGxhaXRCb2FyZCkge1xuICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGlvbi1tb3ZpbmcnKTtcbiAgICBCT0FSRF9UT19JU19TRUxFQ1RJT05fTU9WSU5HLnNldChib2FyZCwgdHJ1ZSk7XG4gICAgc2V0RHJhZ2dpbmcoYm9hcmQsIHRydWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJTZWxlY3Rpb25Nb3ZpbmcoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3Rpb24tbW92aW5nJyk7XG4gICAgQk9BUkRfVE9fSVNfU0VMRUNUSU9OX01PVklORy5kZWxldGUoYm9hcmQpO1xuICAgIHNldERyYWdnaW5nKGJvYXJkLCBmYWxzZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0hhbmRsZVNlbGVjdGlvbihib2FyZDogUGxhaXRCb2FyZCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBnZXRTZWxlY3Rpb25PcHRpb25zKGJvYXJkKTtcbiAgICByZXR1cm4gYm9hcmQucG9pbnRlciAhPT0gUGxhaXRQb2ludGVyVHlwZS5oYW5kICYmICFvcHRpb25zLmlzRGlzYWJsZWRTZWxlY3Rpb24gJiYgIVBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNTZXRTZWxlY3Rpb25PcGVyYXRpb24oYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICByZXR1cm4gISFib2FyZC5vcGVyYXRpb25zLmZpbmQob3AgPT4gUGxhaXRPcGVyYXRpb24uaXNTZXRTZWxlY3Rpb25PcGVyYXRpb24ob3ApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRlbXBvcmFyeUVsZW1lbnRzKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgY29uc3QgcmVmID0gQk9BUkRfVE9fVEVNUE9SQVJZX0VMRU1FTlRTLmdldChib2FyZCk7XG4gICAgaWYgKHJlZikge1xuICAgICAgICByZXR1cm4gcmVmLmVsZW1lbnRzO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVtcG9yYXJ5UmVmKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgcmV0dXJuIEJPQVJEX1RPX1RFTVBPUkFSWV9FTEVNRU5UUy5nZXQoYm9hcmQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlVGVtcG9yYXJ5RWxlbWVudHMoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBCT0FSRF9UT19URU1QT1JBUllfRUxFTUVOVFMuZGVsZXRlKGJvYXJkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdTZWxlY3Rpb25SZWN0YW5nbGVHKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBlbGVtZW50cywgZmFsc2UpO1xuICAgIGlmIChyZWN0YW5nbGUud2lkdGggPiAwICYmIHJlY3RhbmdsZS5oZWlnaHQgPiAwICYmIGVsZW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uUmVjdGFuZ2xlRyA9IGRyYXdSZWN0YW5nbGUoYm9hcmQsIFJlY3RhbmdsZUNsaWVudC5pbmZsYXRlKHJlY3RhbmdsZSwgQUNUSVZFX1NUUk9LRV9XSURUSCksIHtcbiAgICAgICAgICAgIHN0cm9rZTogU0VMRUNUSU9OX0JPUkRFUl9DT0xPUixcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgICAgICAgICAgZmlsbFN0eWxlOiAnc29saWQnXG4gICAgICAgIH0pO1xuICAgICAgICBzZWxlY3Rpb25SZWN0YW5nbGVHLmNsYXNzTGlzdC5hZGQoU0VMRUNUSU9OX1JFQ1RBTkdMRV9DTEFTU19OQU1FLCBTRUxFQ1RJT05fUkVDVEFOR0xFX0JPVU5ESU5HX0NMQVNTX05BTUUpO1xuICAgICAgICBjb25zdCBhbmdsZSA9IGdldFNlbGVjdGlvbkFuZ2xlKGVsZW1lbnRzKTtcbiAgICAgICAgaWYgKGFuZ2xlKSB7XG4gICAgICAgICAgICBzZXRBbmdsZUZvckcoc2VsZWN0aW9uUmVjdGFuZ2xlRywgUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KHJlY3RhbmdsZSksIGFuZ2xlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uUmVjdGFuZ2xlRztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZWxlY3RlZEVsZW1lbnRzV2l0aEdyb3VwKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50czogUGxhaXRFbGVtZW50W10sIGlzU2hpZnQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoIWJvYXJkLnNlbGVjdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBpZiAoIVNlbGVjdGlvbi5pc0NvbGxhcHNlZChib2FyZC5zZWxlY3Rpb24pKSB7XG4gICAgICAgIGxldCBuZXdFbGVtZW50cyA9IFsuLi5zZWxlY3RlZEVsZW1lbnRzXTtcbiAgICAgICAgZWxlbWVudHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbS5ncm91cElkKSB7XG4gICAgICAgICAgICAgICAgbmV3RWxlbWVudHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3RWxlbWVudHMucHVzaCguLi5nZXRFbGVtZW50c0luR3JvdXBCeUVsZW1lbnQoYm9hcmQsIGl0ZW0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgdW5pcXVlQnlJZChuZXdFbGVtZW50cykpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChTZWxlY3Rpb24uaXNDb2xsYXBzZWQoYm9hcmQuc2VsZWN0aW9uKSkge1xuICAgICAgICBjb25zdCBoaXRFbGVtZW50ID0gZWxlbWVudHNbMF07XG4gICAgICAgIGNvbnN0IGhpdEVsZW1lbnRHcm91cHMgPSBnZXRHcm91cEJ5RWxlbWVudChib2FyZCwgaGl0RWxlbWVudCwgdHJ1ZSkgYXMgUGxhaXRHcm91cFtdO1xuICAgICAgICBpZiAoaGl0RWxlbWVudEdyb3Vwcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzSW5IaWdoZXN0R3JvdXAgPSBnZXRFbGVtZW50c0luR3JvdXAoYm9hcmQsIGhpdEVsZW1lbnRHcm91cHNbaGl0RWxlbWVudEdyb3Vwcy5sZW5ndGggLSAxXSwgdHJ1ZSkgfHwgW107XG4gICAgICAgICAgICBjb25zdCBpc1NlbGVjdEdyb3VwRWxlbWVudCA9IHNlbGVjdGVkRWxlbWVudHMuc29tZShlbGVtZW50ID0+IGVsZW1lbnRzSW5IaWdoZXN0R3JvdXAubWFwKGl0ZW0gPT4gaXRlbS5pZCkuaW5jbHVkZXMoZWxlbWVudC5pZCkpO1xuICAgICAgICAgICAgaWYgKGlzU2hpZnQpIHtcbiAgICAgICAgICAgICAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHNXaXRoR3JvdXBPblNoaWZ0KGJvYXJkLCBlbGVtZW50cywgaXNTZWxlY3RHcm91cEVsZW1lbnQsIGVsZW1lbnRzSW5IaWdoZXN0R3JvdXApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHNXaXRoR3JvdXAoYm9hcmQsIGVsZW1lbnRzLCBpc1NlbGVjdEdyb3VwRWxlbWVudCwgaGl0RWxlbWVudEdyb3Vwcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZVNlbGVjdGVkRWxlbWVudHNXaXRoR3JvdXBPblNoaWZ0KFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSxcbiAgICBpc1NlbGVjdEdyb3VwRWxlbWVudDogYm9vbGVhbixcbiAgICBlbGVtZW50c0luSGlnaGVzdEdyb3VwOiBQbGFpdEVsZW1lbnRbXVxuKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGxldCBuZXdFbGVtZW50cyA9IFsuLi5zZWxlY3RlZEVsZW1lbnRzXTtcbiAgICBjb25zdCBoaXRFbGVtZW50ID0gZWxlbWVudHNbMF07XG4gICAgbGV0IHBlbmRpbmdFbGVtZW50czogUGxhaXRFbGVtZW50W10gPSBbXTtcbiAgICBpZiAoIWlzU2VsZWN0R3JvdXBFbGVtZW50KSB7XG4gICAgICAgIHBlbmRpbmdFbGVtZW50cyA9IGVsZW1lbnRzSW5IaWdoZXN0R3JvdXA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaXNIaXRTZWxlY3RlZEVsZW1lbnQgPSBzZWxlY3RlZEVsZW1lbnRzLnNvbWUoaXRlbSA9PiBpdGVtLmlkID09PSBoaXRFbGVtZW50LmlkKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50c0luR3JvdXAgPSBlbGVtZW50c0luSGlnaGVzdEdyb3VwLmZpbHRlcihpdGVtID0+IHNlbGVjdGVkRWxlbWVudHMuaW5jbHVkZXMoaXRlbSkpO1xuICAgICAgICBpZiAoaXNIaXRTZWxlY3RlZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHBlbmRpbmdFbGVtZW50cyA9IHNlbGVjdGVkRWxlbWVudHNJbkdyb3VwLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgIT09IGhpdEVsZW1lbnQuaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVuZGluZ0VsZW1lbnRzLnB1c2goLi4uc2VsZWN0ZWRFbGVtZW50c0luR3JvdXAsIC4uLmVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbGVtZW50c0luSGlnaGVzdEdyb3VwLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGlmIChuZXdFbGVtZW50cy5pbmNsdWRlcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgbmV3RWxlbWVudHMuc3BsaWNlKG5ld0VsZW1lbnRzLmluZGV4T2YoZWxlbWVudCksIDEpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHBlbmRpbmdFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgbmV3RWxlbWVudHMucHVzaCguLi5wZW5kaW5nRWxlbWVudHMpO1xuICAgIH1cbiAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHMoYm9hcmQsIHVuaXF1ZUJ5SWQobmV3RWxlbWVudHMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlU2VsZWN0ZWRFbGVtZW50c1dpdGhHcm91cChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBlbGVtZW50czogUGxhaXRFbGVtZW50W10sXG4gICAgaXNTZWxlY3RHcm91cEVsZW1lbnQ6IGJvb2xlYW4sXG4gICAgaGl0RWxlbWVudEdyb3VwczogUGxhaXRHcm91cFtdXG4pIHtcbiAgICBsZXQgbmV3RWxlbWVudHMgPSBbLi4uZWxlbWVudHNdO1xuICAgIGNvbnN0IHNlbGVjdGVkR3JvdXBzID0gZmlsdGVyU2VsZWN0ZWRHcm91cHMoYm9hcmQsIGhpdEVsZW1lbnRHcm91cHMpO1xuICAgIGlmIChzZWxlY3RlZEdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChzZWxlY3RlZEdyb3Vwcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBuZXdFbGVtZW50cyA9IGdldEFsbEVsZW1lbnRzSW5Hcm91cChib2FyZCwgc2VsZWN0ZWRHcm91cHNbc2VsZWN0ZWRHcm91cHMubGVuZ3RoIC0gMl0sIHRydWUpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gZ2V0QWxsRWxlbWVudHNJbkdyb3VwKGJvYXJkLCBoaXRFbGVtZW50R3JvdXBzW2hpdEVsZW1lbnRHcm91cHMubGVuZ3RoIC0gMV0sIHRydWUpO1xuICAgICAgICBpZiAoIWlzU2VsZWN0R3JvdXBFbGVtZW50KSB7XG4gICAgICAgICAgICBuZXdFbGVtZW50cyA9IGVsZW1lbnRzSW5Hcm91cDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHMoYm9hcmQsIHVuaXF1ZUJ5SWQobmV3RWxlbWVudHMpKTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGlvbk9wdGlvbnMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gKGJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5nZXRQbHVnaW5PcHRpb25zPFdpdGhTZWxlY3Rpb25QbHVnaW5PcHRpb25zPihQbGFpdFBsdWdpbktleS53aXRoU2VsZWN0aW9uKTtcbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRTZWxlY3Rpb25PcHRpb25zID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBvcHRpb25zOiBQYXJ0aWFsPFdpdGhTZWxlY3Rpb25QbHVnaW5PcHRpb25zPikgPT4ge1xuICAgIChib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCkuc2V0UGx1Z2luT3B0aW9uczxXaXRoU2VsZWN0aW9uUGx1Z2luT3B0aW9ucz4oUGxhaXRQbHVnaW5LZXkud2l0aFNlbGVjdGlvbiwgb3B0aW9ucyk7XG59O1xuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx1Q0FBdUMsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1SCxPQUFPLEVBQ0gsVUFBVSxFQUdWLGNBQWMsRUFDZCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixzQkFBc0IsRUFFekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMxSSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkUsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQWlCO0lBQy9DLE9BQU8sQ0FBQyxDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FB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QWMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckgsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUNUSVZFX1NUUk9LRV9XSURUSCwgU0VMRUNUSU9OX1JFQ1RBTkdMRV9CT1VORElOR19DTEFTU19OQU1FLCBTRUxFQ1RJT05fUkVDVEFOR0xFX0NMQVNTX05BTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQbGFpdEdyb3VwLFxuICAgIFBsYWl0T3BlcmF0aW9uLFxuICAgIFBsYWl0UGx1Z2luS2V5LFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIFNFTEVDVElPTl9CT1JERVJfQ09MT1IsXG4gICAgV2l0aFNlbGVjdGlvblBsdWdpbk9wdGlvbnNcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBzZXREcmFnZ2luZyB9IGZyb20gJy4vZG5kJztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMgfSBmcm9tICcuL2VsZW1lbnQnO1xuaW1wb3J0IHsgQk9BUkRfVE9fSVNfU0VMRUNUSU9OX01PVklORywgQk9BUkRfVE9fVEVNUE9SQVJZX0VMRU1FTlRTIH0gZnJvbSAnLi93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgZHJhd1JlY3RhbmdsZSB9IGZyb20gJy4vZHJhd2luZy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgY2FjaGVTZWxlY3RlZEVsZW1lbnRzLCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnLi9zZWxlY3RlZC1lbGVtZW50JztcbmltcG9ydCB7IGdldFNlbGVjdGlvbkFuZ2xlLCBzZXRBbmdsZUZvckcgfSBmcm9tICcuL2FuZ2xlJztcbmltcG9ydCB7IGZpbHRlclNlbGVjdGVkR3JvdXBzLCBnZXRBbGxFbGVtZW50c0luR3JvdXAsIGdldEVsZW1lbnRzSW5Hcm91cCwgZ2V0RWxlbWVudHNJbkdyb3VwQnlFbGVtZW50LCBnZXRHcm91cEJ5RWxlbWVudCB9IGZyb20gJy4vZ3JvdXAnO1xuaW1wb3J0IHsgdW5pcXVlQnlJZCB9IGZyb20gJy4vaGVscGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VsZWN0aW9uJztcbmltcG9ydCB7IFBsYWl0T3B0aW9uc0JvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW9wdGlvbnMnO1xuaW1wb3J0IHsgdG9BY3RpdmVSZWN0YW5nbGVGcm9tVmlld0JveFJlY3RhbmdsZSB9IGZyb20gJy4vdG8tcG9pbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNTZWxlY3Rpb25Nb3ZpbmcoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICByZXR1cm4gISFCT0FSRF9UT19JU19TRUxFQ1RJT05fTU9WSU5HLmdldChib2FyZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZWxlY3Rpb25Nb3ZpbmcoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jbGFzc0xpc3QuYWRkKCdzZWxlY3Rpb24tbW92aW5nJyk7XG4gICAgQk9BUkRfVE9fSVNfU0VMRUNUSU9OX01PVklORy5zZXQoYm9hcmQsIHRydWUpO1xuICAgIHNldERyYWdnaW5nKGJvYXJkLCB0cnVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyU2VsZWN0aW9uTW92aW5nKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0aW9uLW1vdmluZycpO1xuICAgIEJPQVJEX1RPX0lTX1NFTEVDVElPTl9NT1ZJTkcuZGVsZXRlKGJvYXJkKTtcbiAgICBzZXREcmFnZ2luZyhib2FyZCwgZmFsc2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIYW5kbGVTZWxlY3Rpb24oYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gZ2V0U2VsZWN0aW9uT3B0aW9ucyhib2FyZCk7XG4gICAgcmV0dXJuIGJvYXJkLnBvaW50ZXIgIT09IFBsYWl0UG9pbnRlclR5cGUuaGFuZCAmJiAhb3B0aW9ucy5pc0Rpc2FibGVkU2VsZWN0aW9uICYmICFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzU2V0U2VsZWN0aW9uT3BlcmF0aW9uKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgcmV0dXJuICEhYm9hcmQub3BlcmF0aW9ucy5maW5kKChvcCkgPT4gUGxhaXRPcGVyYXRpb24uaXNTZXRTZWxlY3Rpb25PcGVyYXRpb24ob3ApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRlbXBvcmFyeUVsZW1lbnRzKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgY29uc3QgcmVmID0gQk9BUkRfVE9fVEVNUE9SQVJZX0VMRU1FTlRTLmdldChib2FyZCk7XG4gICAgaWYgKHJlZikge1xuICAgICAgICByZXR1cm4gcmVmLmVsZW1lbnRzO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVtcG9yYXJ5UmVmKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgcmV0dXJuIEJPQVJEX1RPX1RFTVBPUkFSWV9FTEVNRU5UUy5nZXQoYm9hcmQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlVGVtcG9yYXJ5RWxlbWVudHMoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBCT0FSRF9UT19URU1QT1JBUllfRUxFTUVOVFMuZGVsZXRlKGJvYXJkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdTZWxlY3Rpb25SZWN0YW5nbGVHKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBlbGVtZW50cywgZmFsc2UpO1xuICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZSA9IHRvQWN0aXZlUmVjdGFuZ2xlRnJvbVZpZXdCb3hSZWN0YW5nbGUoYm9hcmQsIHJlY3RhbmdsZSk7XG4gICAgaWYgKGFjdGl2ZVJlY3RhbmdsZS53aWR0aCA+IDAgJiYgYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCA+IDAgJiYgZWxlbWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25SZWN0YW5nbGVHID0gZHJhd1JlY3RhbmdsZShib2FyZCwgUmVjdGFuZ2xlQ2xpZW50LmluZmxhdGUoYWN0aXZlUmVjdGFuZ2xlLCBBQ1RJVkVfU1RST0tFX1dJRFRIKSwge1xuICAgICAgICAgICAgc3Ryb2tlOiBTRUxFQ1RJT05fQk9SREVSX0NPTE9SLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgfSk7XG4gICAgICAgIHNlbGVjdGlvblJlY3RhbmdsZUcuY2xhc3NMaXN0LmFkZChTRUxFQ1RJT05fUkVDVEFOR0xFX0NMQVNTX05BTUUsIFNFTEVDVElPTl9SRUNUQU5HTEVfQk9VTkRJTkdfQ0xBU1NfTkFNRSk7XG4gICAgICAgIGNvbnN0IGFuZ2xlID0gZ2V0U2VsZWN0aW9uQW5nbGUoZWxlbWVudHMpO1xuICAgICAgICBpZiAoYW5nbGUpIHtcbiAgICAgICAgICAgIHNldEFuZ2xlRm9yRyhzZWxlY3Rpb25SZWN0YW5nbGVHLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoYWN0aXZlUmVjdGFuZ2xlKSwgYW5nbGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25SZWN0YW5nbGVHO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNlbGVjdGVkRWxlbWVudHNXaXRoR3JvdXAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgaXNTaGlmdDogYm9vbGVhbikge1xuICAgIGlmICghYm9hcmQuc2VsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGlmICghU2VsZWN0aW9uLmlzQ29sbGFwc2VkKGJvYXJkLnNlbGVjdGlvbikpIHtcbiAgICAgICAgbGV0IG5ld0VsZW1lbnRzID0gWy4uLnNlbGVjdGVkRWxlbWVudHNdO1xuICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWl0ZW0uZ3JvdXBJZCkge1xuICAgICAgICAgICAgICAgIG5ld0VsZW1lbnRzLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld0VsZW1lbnRzLnB1c2goLi4uZ2V0RWxlbWVudHNJbkdyb3VwQnlFbGVtZW50KGJvYXJkLCBpdGVtKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHMoYm9hcmQsIHVuaXF1ZUJ5SWQobmV3RWxlbWVudHMpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoU2VsZWN0aW9uLmlzQ29sbGFwc2VkKGJvYXJkLnNlbGVjdGlvbikpIHtcbiAgICAgICAgY29uc3QgaGl0RWxlbWVudCA9IGVsZW1lbnRzWzBdO1xuICAgICAgICBjb25zdCBoaXRFbGVtZW50R3JvdXBzID0gZ2V0R3JvdXBCeUVsZW1lbnQoYm9hcmQsIGhpdEVsZW1lbnQsIHRydWUpIGFzIFBsYWl0R3JvdXBbXTtcbiAgICAgICAgaWYgKGhpdEVsZW1lbnRHcm91cHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50c0luSGlnaGVzdEdyb3VwID0gZ2V0RWxlbWVudHNJbkdyb3VwKGJvYXJkLCBoaXRFbGVtZW50R3JvdXBzW2hpdEVsZW1lbnRHcm91cHMubGVuZ3RoIC0gMV0sIHRydWUpIHx8IFtdO1xuICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RHcm91cEVsZW1lbnQgPSBzZWxlY3RlZEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+XG4gICAgICAgICAgICAgICAgZWxlbWVudHNJbkhpZ2hlc3RHcm91cC5tYXAoKGl0ZW0pID0+IGl0ZW0uaWQpLmluY2x1ZGVzKGVsZW1lbnQuaWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGlzU2hpZnQpIHtcbiAgICAgICAgICAgICAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHNXaXRoR3JvdXBPblNoaWZ0KGJvYXJkLCBlbGVtZW50cywgaXNTZWxlY3RHcm91cEVsZW1lbnQsIGVsZW1lbnRzSW5IaWdoZXN0R3JvdXApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHNXaXRoR3JvdXAoYm9hcmQsIGVsZW1lbnRzLCBpc1NlbGVjdEdyb3VwRWxlbWVudCwgaGl0RWxlbWVudEdyb3Vwcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZVNlbGVjdGVkRWxlbWVudHNXaXRoR3JvdXBPblNoaWZ0KFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSxcbiAgICBpc1NlbGVjdEdyb3VwRWxlbWVudDogYm9vbGVhbixcbiAgICBlbGVtZW50c0luSGlnaGVzdEdyb3VwOiBQbGFpdEVsZW1lbnRbXVxuKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGxldCBuZXdFbGVtZW50cyA9IFsuLi5zZWxlY3RlZEVsZW1lbnRzXTtcbiAgICBjb25zdCBoaXRFbGVtZW50ID0gZWxlbWVudHNbMF07XG4gICAgbGV0IHBlbmRpbmdFbGVtZW50czogUGxhaXRFbGVtZW50W10gPSBbXTtcbiAgICBpZiAoIWlzU2VsZWN0R3JvdXBFbGVtZW50KSB7XG4gICAgICAgIHBlbmRpbmdFbGVtZW50cyA9IGVsZW1lbnRzSW5IaWdoZXN0R3JvdXA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaXNIaXRTZWxlY3RlZEVsZW1lbnQgPSBzZWxlY3RlZEVsZW1lbnRzLnNvbWUoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGhpdEVsZW1lbnQuaWQpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzSW5Hcm91cCA9IGVsZW1lbnRzSW5IaWdoZXN0R3JvdXAuZmlsdGVyKChpdGVtKSA9PiBzZWxlY3RlZEVsZW1lbnRzLmluY2x1ZGVzKGl0ZW0pKTtcbiAgICAgICAgaWYgKGlzSGl0U2VsZWN0ZWRFbGVtZW50KSB7XG4gICAgICAgICAgICBwZW5kaW5nRWxlbWVudHMgPSBzZWxlY3RlZEVsZW1lbnRzSW5Hcm91cC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgIT09IGhpdEVsZW1lbnQuaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVuZGluZ0VsZW1lbnRzLnB1c2goLi4uc2VsZWN0ZWRFbGVtZW50c0luR3JvdXAsIC4uLmVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbGVtZW50c0luSGlnaGVzdEdyb3VwLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKG5ld0VsZW1lbnRzLmluY2x1ZGVzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICBuZXdFbGVtZW50cy5zcGxpY2UobmV3RWxlbWVudHMuaW5kZXhPZihlbGVtZW50KSwgMSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAocGVuZGluZ0VsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICBuZXdFbGVtZW50cy5wdXNoKC4uLnBlbmRpbmdFbGVtZW50cyk7XG4gICAgfVxuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgdW5pcXVlQnlJZChuZXdFbGVtZW50cykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FjaGVTZWxlY3RlZEVsZW1lbnRzV2l0aEdyb3VwKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSxcbiAgICBpc1NlbGVjdEdyb3VwRWxlbWVudDogYm9vbGVhbixcbiAgICBoaXRFbGVtZW50R3JvdXBzOiBQbGFpdEdyb3VwW11cbikge1xuICAgIGxldCBuZXdFbGVtZW50cyA9IFsuLi5lbGVtZW50c107XG4gICAgY29uc3Qgc2VsZWN0ZWRHcm91cHMgPSBmaWx0ZXJTZWxlY3RlZEdyb3Vwcyhib2FyZCwgaGl0RWxlbWVudEdyb3Vwcyk7XG4gICAgaWYgKHNlbGVjdGVkR3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKHNlbGVjdGVkR3JvdXBzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIG5ld0VsZW1lbnRzID0gZ2V0QWxsRWxlbWVudHNJbkdyb3VwKGJvYXJkLCBzZWxlY3RlZEdyb3Vwc1tzZWxlY3RlZEdyb3Vwcy5sZW5ndGggLSAyXSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlbGVtZW50c0luR3JvdXAgPSBnZXRBbGxFbGVtZW50c0luR3JvdXAoYm9hcmQsIGhpdEVsZW1lbnRHcm91cHNbaGl0RWxlbWVudEdyb3Vwcy5sZW5ndGggLSAxXSwgdHJ1ZSk7XG4gICAgICAgIGlmICghaXNTZWxlY3RHcm91cEVsZW1lbnQpIHtcbiAgICAgICAgICAgIG5ld0VsZW1lbnRzID0gZWxlbWVudHNJbkdyb3VwO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgdW5pcXVlQnlJZChuZXdFbGVtZW50cykpO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0aW9uT3B0aW9ucyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSAoYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLmdldFBsdWdpbk9wdGlvbnM8V2l0aFNlbGVjdGlvblBsdWdpbk9wdGlvbnM+KFBsYWl0UGx1Z2luS2V5LndpdGhTZWxlY3Rpb24pO1xuICAgIHJldHVybiBvcHRpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFNlbGVjdGlvbk9wdGlvbnMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wdGlvbnM6IFBhcnRpYWw8V2l0aFNlbGVjdGlvblBsdWdpbk9wdGlvbnM+KSA9PiB7XG4gICAgKGJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5zZXRQbHVnaW5PcHRpb25zPFdpdGhTZWxlY3Rpb25QbHVnaW5PcHRpb25zPihQbGFpdFBsdWdpbktleS53aXRoU2VsZWN0aW9uLCBvcHRpb25zKTtcbn07XG4iXX0=
@@ -1,3 +1,4 @@
1
+ import { RectangleClient } from '../interfaces';
1
2
  import { PlaitBoard } from '../interfaces/board';
2
3
  export const getViewBox = (board) => {
3
4
  return PlaitBoard.getHost(board).viewBox.baseVal;
@@ -10,6 +11,30 @@ export function toHostPoint(board, x, y) {
10
11
  const rect = host.getBoundingClientRect();
11
12
  return [x - rect.x, y - rect.y];
12
13
  }
14
+ export function toActiveRectangleFromViewBoxRectangle(board, rectangle) {
15
+ const leftTop = [rectangle.x, rectangle.y];
16
+ const rightBottom = [rectangle.x + rectangle.width, rectangle.y + rectangle.height];
17
+ const leftTopOfActive = toActivePointFromViewBoxPoint(board, leftTop);
18
+ const rightBottomOfActive = toActivePointFromViewBoxPoint(board, rightBottom);
19
+ return RectangleClient.getRectangleByPoints([leftTopOfActive, rightBottomOfActive]);
20
+ }
21
+ export function toActivePointFromViewBoxPoint(board, point) {
22
+ const screenPoint = toScreenPointFromHostPoint(board, toHostPointFromViewBoxPoint(board, point));
23
+ return toActivePoint(board, screenPoint[0], screenPoint[1]);
24
+ }
25
+ /**
26
+ * Get the screen point starting from the upper left corner of the svg element (based on the svg screen coordinate system)
27
+ */
28
+ export function toActivePoint(board, x, y) {
29
+ const boardContainer = PlaitBoard.getBoardContainer(board);
30
+ const rect = boardContainer.getBoundingClientRect();
31
+ return [x - rect.x, y - rect.y];
32
+ }
33
+ export function toScreenPointFromActivePoint(board, activePoint) {
34
+ const boardContainer = PlaitBoard.getBoardContainer(board);
35
+ const rect = boardContainer.getBoundingClientRect();
36
+ return [rect.x + activePoint[0], rect.y + activePoint[1]];
37
+ }
13
38
  /**
14
39
  * Get the point in the coordinate system of the svg viewBox
15
40
  */
@@ -22,7 +47,7 @@ export function toViewBoxPoint(board, hostPoint) {
22
47
  return newPoint;
23
48
  }
24
49
  export function toViewBoxPoints(board, hostPoints) {
25
- const newPoints = hostPoints.map(point => {
50
+ const newPoints = hostPoints.map((point) => {
26
51
  return toViewBoxPoint(board, point);
27
52
  });
28
53
  return newPoints;
@@ -46,4 +71,4 @@ export function toHostPointFromViewBoxPoint(board, viewBoxPoint) {
46
71
  const y = (viewBoxPoint[1] - viewBox.y) * zoom;
47
72
  return [x, y];
48
73
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy91dGlscy90by1wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHakQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQzVDLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0FBQ3JELENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFpQixFQUFFLENBQVMsRUFBRSxDQUFTO0lBQy9ELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDMUMsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFpQixFQUFFLFNBQWdCO0lBQzlELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUNoQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBVSxDQUFDO0lBQ2pDLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQWlCLEVBQUUsVUFBbUI7SUFDbEUsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNyQyxPQUFPLGNBQWMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEtBQWlCLEVBQUUsU0FBZ0I7SUFDMUUsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMxQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQVUsQ0FBQztBQUNuRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsS0FBaUIsRUFBRSxZQUFtQjtJQUM5RSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUNoQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUMvQyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQy9DLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFVLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JvYXJkJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludCc7XG5cbmV4cG9ydCBjb25zdCBnZXRWaWV3Qm94ID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgcmV0dXJuIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkudmlld0JveC5iYXNlVmFsO1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIHNjcmVlbiBwb2ludCBzdGFydGluZyBmcm9tIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBvZiB0aGUgc3ZnIGVsZW1lbnQgKGJhc2VkIG9uIHRoZSBzdmcgc2NyZWVuIGNvb3JkaW5hdGUgc3lzdGVtKVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Ib3N0UG9pbnQoYm9hcmQ6IFBsYWl0Qm9hcmQsIHg6IG51bWJlciwgeTogbnVtYmVyKTogUG9pbnQge1xuICAgIGNvbnN0IGhvc3QgPSBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpO1xuICAgIGNvbnN0IHJlY3QgPSBob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiBbeCAtIHJlY3QueCwgeSAtIHJlY3QueV07XG59XG5cbi8qKlxuICogR2V0IHRoZSBwb2ludCBpbiB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gb2YgdGhlIHN2ZyB2aWV3Qm94XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1ZpZXdCb3hQb2ludChib2FyZDogUGxhaXRCb2FyZCwgaG9zdFBvaW50OiBQb2ludCkge1xuICAgIGNvbnN0IHZpZXdCb3ggPSBnZXRWaWV3Qm94KGJvYXJkKTtcbiAgICBjb25zdCB7IHpvb20gfSA9IGJvYXJkLnZpZXdwb3J0O1xuICAgIGNvbnN0IHggPSBob3N0UG9pbnRbMF0gLyB6b29tICsgdmlld0JveC54O1xuICAgIGNvbnN0IHkgPSBob3N0UG9pbnRbMV0gLyB6b29tICsgdmlld0JveC55O1xuICAgIGNvbnN0IG5ld1BvaW50ID0gW3gsIHldIGFzIFBvaW50O1xuICAgIHJldHVybiBuZXdQb2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvVmlld0JveFBvaW50cyhib2FyZDogUGxhaXRCb2FyZCwgaG9zdFBvaW50czogUG9pbnRbXSkge1xuICAgIGNvbnN0IG5ld1BvaW50cyA9IGhvc3RQb2ludHMubWFwKHBvaW50ID0+IHtcbiAgICAgICAgcmV0dXJuIHRvVmlld0JveFBvaW50KGJvYXJkLCBwb2ludCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ld1BvaW50cztcbn1cblxuLyoqXG4gKiBgdG9Ib3N0UG9pbnRgIHJldmVyc2UgcHJvY2Vzc2luZ1xuICogR2V0IHRoZSBzY3JlZW4gcG9pbnQgc3RhcnRpbmcgZnJvbSB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIGJyb3dzZXIgd2luZG93IG9yIHRoZSB2aWV3cG9ydCAoYmFzZWQgb24gdGhlIHNjcmVlbiBjb29yZGluYXRlIHN5c3RlbSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvU2NyZWVuUG9pbnRGcm9tSG9zdFBvaW50KGJvYXJkOiBQbGFpdEJvYXJkLCBob3N0UG9pbnQ6IFBvaW50KSB7XG4gICAgY29uc3QgaG9zdCA9IFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCk7XG4gICAgY29uc3QgcmVjdCA9IGhvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgcmV0dXJuIFtob3N0UG9pbnRbMF0gKyByZWN0LngsIGhvc3RQb2ludFsxXSArIHJlY3QueV0gYXMgUG9pbnQ7XG59XG5cbi8qKlxuICogYHRvVmlld0JveFBvaW50YCByZXZlcnNlIHByb2Nlc3NpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSG9zdFBvaW50RnJvbVZpZXdCb3hQb2ludChib2FyZDogUGxhaXRCb2FyZCwgdmlld0JveFBvaW50OiBQb2ludCkge1xuICAgIGNvbnN0IHsgem9vbSB9ID0gYm9hcmQudmlld3BvcnQ7XG4gICAgY29uc3Qgdmlld0JveCA9IGdldFZpZXdCb3goYm9hcmQpO1xuICAgIGNvbnN0IHggPSAodmlld0JveFBvaW50WzBdIC0gdmlld0JveC54KSAqIHpvb207XG4gICAgY29uc3QgeSA9ICh2aWV3Qm94UG9pbnRbMV0gLSB2aWV3Qm94LnkpICogem9vbTtcbiAgICByZXR1cm4gW3gsIHldIGFzIFBvaW50O1xufVxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy91dGlscy90by1wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdqRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDNUMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLEtBQWlCLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDL0QsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMxQyxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHFDQUFxQyxDQUFDLEtBQWlCLEVBQUUsU0FBMEI7SUFDL0YsTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQVUsQ0FBQztJQUNwRCxNQUFNLFdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQVUsQ0FBQztJQUM3RixNQUFNLGVBQWUsR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEUs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QWlCLEVBQUUsWUFBbUI7SUFDOUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDaEMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDL0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUMvQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBVSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JvYXJkJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludCc7XG5cbmV4cG9ydCBjb25zdCBnZXRWaWV3Qm94ID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgcmV0dXJuIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkudmlld0JveC5iYXNlVmFsO1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIHNjcmVlbiBwb2ludCBzdGFydGluZyBmcm9tIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBvZiB0aGUgc3ZnIGVsZW1lbnQgKGJhc2VkIG9uIHRoZSBzdmcgc2NyZWVuIGNvb3JkaW5hdGUgc3lzdGVtKVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Ib3N0UG9pbnQoYm9hcmQ6IFBsYWl0Qm9hcmQsIHg6IG51bWJlciwgeTogbnVtYmVyKTogUG9pbnQge1xuICAgIGNvbnN0IGhvc3QgPSBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpO1xuICAgIGNvbnN0IHJlY3QgPSBob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiBbeCAtIHJlY3QueCwgeSAtIHJlY3QueV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0FjdGl2ZVJlY3RhbmdsZUZyb21WaWV3Qm94UmVjdGFuZ2xlKGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgIGNvbnN0IGxlZnRUb3AgPSBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55XSBhcyBQb2ludDtcbiAgICBjb25zdCByaWdodEJvdHRvbSA9IFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XSBhcyBQb2ludDtcbiAgICBjb25zdCBsZWZ0VG9wT2ZBY3RpdmUgPSB0b0FjdGl2ZVBvaW50RnJvbVZpZXdCb3hQb2ludChib2FyZCwgbGVmdFRvcCk7XG4gICAgY29uc3QgcmlnaHRCb3R0b21PZkFjdGl2ZSA9IHRvQWN0aXZlUG9pbnRGcm9tVmlld0JveFBvaW50KGJvYXJkLCByaWdodEJvdHRvbSk7XG4gICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbbGVmdFRvcE9mQWN0aXZlLCByaWdodEJvdHRvbU9mQWN0aXZlXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0FjdGl2ZVBvaW50RnJvbVZpZXdCb3hQb2ludChib2FyZDogUGxhaXRCb2FyZCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgY29uc3Qgc2NyZWVuUG9pbnQgPSB0b1NjcmVlblBvaW50RnJvbUhvc3RQb2ludChib2FyZCwgdG9Ib3N0UG9pbnRGcm9tVmlld0JveFBvaW50KGJvYXJkLCBwb2ludCkpO1xuICAgIHJldHVybiB0b0FjdGl2ZVBvaW50KGJvYXJkLCBzY3JlZW5Qb2ludFswXSwgc2NyZWVuUG9pbnRbMV0pO1xufVxuXG4vKipcbiAqIEdldCB0aGUgc2NyZWVuIHBvaW50IHN0YXJ0aW5nIGZyb20gdGhlIHVwcGVyIGxlZnQgY29ybmVyIG9mIHRoZSBzdmcgZWxlbWVudCAoYmFzZWQgb24gdGhlIHN2ZyBzY3JlZW4gY29vcmRpbmF0ZSBzeXN0ZW0pXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0FjdGl2ZVBvaW50KGJvYXJkOiBQbGFpdEJvYXJkLCB4OiBudW1iZXIsIHk6IG51bWJlcik6IFBvaW50IHtcbiAgICBjb25zdCBib2FyZENvbnRhaW5lciA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpO1xuICAgIGNvbnN0IHJlY3QgPSBib2FyZENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4gW3ggLSByZWN0LngsIHkgLSByZWN0LnldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9TY3JlZW5Qb2ludEZyb21BY3RpdmVQb2ludChib2FyZDogUGxhaXRCb2FyZCwgYWN0aXZlUG9pbnQ6IFBvaW50KTogUG9pbnQge1xuICAgIGNvbnN0IGJvYXJkQ29udGFpbmVyID0gUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCk7XG4gICAgY29uc3QgcmVjdCA9IGJvYXJkQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiBbcmVjdC54ICsgYWN0aXZlUG9pbnRbMF0sIHJlY3QueSArIGFjdGl2ZVBvaW50WzFdXTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHBvaW50IGluIHRoZSBjb29yZGluYXRlIHN5c3RlbSBvZiB0aGUgc3ZnIHZpZXdCb3hcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVmlld0JveFBvaW50KGJvYXJkOiBQbGFpdEJvYXJkLCBob3N0UG9pbnQ6IFBvaW50KSB7XG4gICAgY29uc3Qgdmlld0JveCA9IGdldFZpZXdCb3goYm9hcmQpO1xuICAgIGNvbnN0IHsgem9vbSB9ID0gYm9hcmQudmlld3BvcnQ7XG4gICAgY29uc3QgeCA9IGhvc3RQb2ludFswXSAvIHpvb20gKyB2aWV3Qm94Lng7XG4gICAgY29uc3QgeSA9IGhvc3RQb2ludFsxXSAvIHpvb20gKyB2aWV3Qm94Lnk7XG4gICAgY29uc3QgbmV3UG9pbnQgPSBbeCwgeV0gYXMgUG9pbnQ7XG4gICAgcmV0dXJuIG5ld1BvaW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9WaWV3Qm94UG9pbnRzKGJvYXJkOiBQbGFpdEJvYXJkLCBob3N0UG9pbnRzOiBQb2ludFtdKSB7XG4gICAgY29uc3QgbmV3UG9pbnRzID0gaG9zdFBvaW50cy5tYXAoKHBvaW50KSA9PiB7XG4gICAgICAgIHJldHVybiB0b1ZpZXdCb3hQb2ludChib2FyZCwgcG9pbnQpO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdQb2ludHM7XG59XG5cbi8qKlxuICogYHRvSG9zdFBvaW50YCByZXZlcnNlIHByb2Nlc3NpbmdcbiAqIEdldCB0aGUgc2NyZWVuIHBvaW50IHN0YXJ0aW5nIGZyb20gdGhlIHVwcGVyIGxlZnQgY29ybmVyIG9mIHRoZSBicm93c2VyIHdpbmRvdyBvciB0aGUgdmlld3BvcnQgKGJhc2VkIG9uIHRoZSBzY3JlZW4gY29vcmRpbmF0ZSBzeXN0ZW0pXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1NjcmVlblBvaW50RnJvbUhvc3RQb2ludChib2FyZDogUGxhaXRCb2FyZCwgaG9zdFBvaW50OiBQb2ludCkge1xuICAgIGNvbnN0IGhvc3QgPSBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpO1xuICAgIGNvbnN0IHJlY3QgPSBob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiBbaG9zdFBvaW50WzBdICsgcmVjdC54LCBob3N0UG9pbnRbMV0gKyByZWN0LnldIGFzIFBvaW50O1xufVxuXG4vKipcbiAqIGB0b1ZpZXdCb3hQb2ludGAgcmV2ZXJzZSBwcm9jZXNzaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0hvc3RQb2ludEZyb21WaWV3Qm94UG9pbnQoYm9hcmQ6IFBsYWl0Qm9hcmQsIHZpZXdCb3hQb2ludDogUG9pbnQpIHtcbiAgICBjb25zdCB7IHpvb20gfSA9IGJvYXJkLnZpZXdwb3J0O1xuICAgIGNvbnN0IHZpZXdCb3ggPSBnZXRWaWV3Qm94KGJvYXJkKTtcbiAgICBjb25zdCB4ID0gKHZpZXdCb3hQb2ludFswXSAtIHZpZXdCb3gueCkgKiB6b29tO1xuICAgIGNvbnN0IHkgPSAodmlld0JveFBvaW50WzFdIC0gdmlld0JveC55KSAqIHpvb207XG4gICAgcmV0dXJuIFt4LCB5XSBhcyBQb2ludDtcbn1cbiJdfQ==
@@ -24,4 +24,4 @@ export const BOARD_TO_TEMPORARY_ELEMENTS = new WeakMap();
24
24
  export const BOARD_TO_MOVING_ELEMENT = new WeakMap();
25
25
  export const PATH_REFS = new WeakMap();
26
26
  export const ELEMENT_TO_REF = new WeakMap();
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay1tYXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvd2Vhay1tYXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLDhCQUE4QjtBQUM5QixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQXlDLENBQUM7QUFFdkYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBaUMsQ0FBQztBQUU3RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBVTdDLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBOEIsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztBQUUvRSxxQ0FBcUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxPQUFPLEVBQTRELENBQUM7QUFFbkgsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFzQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBRTFFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBMkMsSUFBSSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnQnO1xuaW1wb3J0IHsgQW5jZXN0b3IsIFBsYWl0Tm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBQYXRoUmVmIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wYXRoLXJlZic7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnRSZWYgfSBmcm9tICcuLi9jb3JlL2VsZW1lbnQvZWxlbWVudC1yZWYnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcblxuLy8gcmVjb3JkIHJpY2h0ZXh0IHR5cGUgc3RhdHVzXG5leHBvcnQgY29uc3QgSVNfQk9BUkRfQ0FDSEUgPSBuZXcgV2Vha01hcDxPYmplY3QsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBGTFVTSElORyA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBOT0RFX1RPX0lOREVYID0gbmV3IFdlYWtNYXA8UGxhaXROb2RlLCBudW1iZXI+KCk7XG5cbmV4cG9ydCBjb25zdCBOT0RFX1RPX1BBUkVOVCA9IG5ldyBXZWFrTWFwPFBsYWl0Tm9kZSwgQW5jZXN0b3I+KCk7XG5cbmV4cG9ydCBjb25zdCBLRVlfVE9fRUxFTUVOVF9NQVAgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBNYXA8U3RyaW5nLCBQbGFpdEVsZW1lbnQ+PigpO1xuXG5leHBvcnQgY29uc3QgTk9ERV9UT19HID0gbmV3IFdlYWtNYXA8UGxhaXROb2RlLCBTVkdHRWxlbWVudD4oKTtcblxuZXhwb3J0IGNvbnN0IE5PREVfVE9fQ09OVEFJTkVSX0cgPSBuZXcgV2Vha01hcDxQbGFpdE5vZGUsIFNWR0dFbGVtZW50PigpO1xuXG5leHBvcnQgY29uc3QgSVNfVEVYVF9FRElUQUJMRSA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19PTl9DSEFOR0UgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCAoKSA9PiB2b2lkPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fQUZURVJfQ0hBTkdFID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgKCkgPT4gdm9pZD4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX1JPVUdIX1NWRyA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFJvdWdoU1ZHPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fSE9TVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFNWR1NWR0VsZW1lbnQ+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19DT05URVhUID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUGxhaXRCb2FyZENvbnRleHQ+KCk7XG5cbmV4cG9ydCBjb25zdCBJU19CT0FSRF9BTElWRSA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19FTEVNRU5UX0hPU1QgPSBuZXcgV2Vha01hcDxcbiAgICBQbGFpdEJvYXJkLFxuICAgIHtcbiAgICAgICAgbG93ZXJIb3N0OiBTVkdHRWxlbWVudDtcbiAgICAgICAgaG9zdDogU1ZHR0VsZW1lbnQ7XG4gICAgICAgIHVwcGVySG9zdDogU1ZHR0VsZW1lbnQ7XG4gICAgICAgIGFjdGl2ZUhvc3Q6IFNWR0dFbGVtZW50O1xuICAgICAgICBjb250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgICAgICB2aWV3cG9ydENvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgfVxuPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudFtdPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fTU9WSU5HX1BPSU5UX0lOX0JPQVJEID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUG9pbnQ+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19NT1ZJTkdfUE9JTlQgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBQb2ludD4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX1ZJRVdQT1JUX09SSUdJTkFUSU9OID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUG9pbnQ+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19JU19TRUxFQ1RJT05fTU9WSU5HID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgYm9vbGVhbj4oKTtcblxuLy8gc2F2ZSBubyBzdGFuZGFyZCBzZWxlY3RlZCBlbGVtZW50c1xuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX1RFTVBPUkFSWV9FTEVNRU5UUyA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIHsgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdOyB0aW1lb3V0SWQ6IGFueSB9PigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fTU9WSU5HX0VMRU1FTlQgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnRbXT4oKTtcblxuZXhwb3J0IGNvbnN0IFBBVEhfUkVGUzogV2Vha01hcDxQbGFpdEJvYXJkLCBTZXQ8UGF0aFJlZj4+ID0gbmV3IFdlYWtNYXAoKTtcblxuZXhwb3J0IGNvbnN0IEVMRU1FTlRfVE9fUkVGOiBXZWFrTWFwPFBsYWl0RWxlbWVudCwgUGxhaXRFbGVtZW50UmVmPiA9IG5ldyBXZWFrTWFwKCk7XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay1tYXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvd2Vhay1tYXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLDhCQUE4QjtBQUM5QixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQXlDLENBQUM7QUFFdkYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBaUMsQ0FBQztBQUU3RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBVzdDLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBOEIsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztBQUUvRSxxQ0FBcUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxPQUFPLEVBQTRELENBQUM7QUFFbkgsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFzQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBRTFFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBMkMsSUFBSSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnQnO1xuaW1wb3J0IHsgQW5jZXN0b3IsIFBsYWl0Tm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBQYXRoUmVmIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wYXRoLXJlZic7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnRSZWYgfSBmcm9tICcuLi9jb3JlL2VsZW1lbnQvZWxlbWVudC1yZWYnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcblxuLy8gcmVjb3JkIHJpY2h0ZXh0IHR5cGUgc3RhdHVzXG5leHBvcnQgY29uc3QgSVNfQk9BUkRfQ0FDSEUgPSBuZXcgV2Vha01hcDxPYmplY3QsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBGTFVTSElORyA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBOT0RFX1RPX0lOREVYID0gbmV3IFdlYWtNYXA8UGxhaXROb2RlLCBudW1iZXI+KCk7XG5cbmV4cG9ydCBjb25zdCBOT0RFX1RPX1BBUkVOVCA9IG5ldyBXZWFrTWFwPFBsYWl0Tm9kZSwgQW5jZXN0b3I+KCk7XG5cbmV4cG9ydCBjb25zdCBLRVlfVE9fRUxFTUVOVF9NQVAgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBNYXA8U3RyaW5nLCBQbGFpdEVsZW1lbnQ+PigpO1xuXG5leHBvcnQgY29uc3QgTk9ERV9UT19HID0gbmV3IFdlYWtNYXA8UGxhaXROb2RlLCBTVkdHRWxlbWVudD4oKTtcblxuZXhwb3J0IGNvbnN0IE5PREVfVE9fQ09OVEFJTkVSX0cgPSBuZXcgV2Vha01hcDxQbGFpdE5vZGUsIFNWR0dFbGVtZW50PigpO1xuXG5leHBvcnQgY29uc3QgSVNfVEVYVF9FRElUQUJMRSA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19PTl9DSEFOR0UgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCAoKSA9PiB2b2lkPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fQUZURVJfQ0hBTkdFID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgKCkgPT4gdm9pZD4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX1JPVUdIX1NWRyA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFJvdWdoU1ZHPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fSE9TVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFNWR1NWR0VsZW1lbnQ+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19DT05URVhUID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUGxhaXRCb2FyZENvbnRleHQ+KCk7XG5cbmV4cG9ydCBjb25zdCBJU19CT0FSRF9BTElWRSA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19FTEVNRU5UX0hPU1QgPSBuZXcgV2Vha01hcDxcbiAgICBQbGFpdEJvYXJkLFxuICAgIHtcbiAgICAgICAgbG93ZXJIb3N0OiBTVkdHRWxlbWVudDtcbiAgICAgICAgaG9zdDogU1ZHR0VsZW1lbnQ7XG4gICAgICAgIHVwcGVySG9zdDogU1ZHR0VsZW1lbnQ7XG4gICAgICAgIHRvcEhvc3Q6IFNWR0dFbGVtZW50O1xuICAgICAgICBhY3RpdmVIb3N0OiBTVkdHRWxlbWVudDtcbiAgICAgICAgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgICAgICAgdmlld3BvcnRDb250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgIH1cbj4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX1NFTEVDVEVEX0VMRU1FTlQgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnRbXT4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX01PVklOR19QT0lOVF9JTl9CT0FSRCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBvaW50PigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fTU9WSU5HX1BPSU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUG9pbnQ+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19WSUVXUE9SVF9PUklHSU5BVElPTiA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBvaW50PigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fSVNfU0VMRUNUSU9OX01PVklORyA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbi8vIHNhdmUgbm8gc3RhbmRhcmQgc2VsZWN0ZWQgZWxlbWVudHNcbmV4cG9ydCBjb25zdCBCT0FSRF9UT19URU1QT1JBUllfRUxFTUVOVFMgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCB7IGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXTsgdGltZW91dElkOiBhbnkgfT4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX01PVklOR19FTEVNRU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50W10+KCk7XG5cbmV4cG9ydCBjb25zdCBQQVRIX1JFRlM6IFdlYWtNYXA8UGxhaXRCb2FyZCwgU2V0PFBhdGhSZWY+PiA9IG5ldyBXZWFrTWFwKCk7XG5cbmV4cG9ydCBjb25zdCBFTEVNRU5UX1RPX1JFRjogV2Vha01hcDxQbGFpdEVsZW1lbnQsIFBsYWl0RWxlbWVudFJlZj4gPSBuZXcgV2Vha01hcCgpO1xuIl19