@plait/mind 0.49.0 → 0.50.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.
- package/esm2022/plugins/with-mind-fragment.mjs +28 -19
- package/esm2022/plugins/with-node-image.mjs +23 -22
- package/esm2022/utils/clipboard.mjs +3 -10
- package/esm2022/utils/mind.mjs +1 -12
- package/fesm2022/plait-mind.mjs +47 -55
- package/fesm2022/plait-mind.mjs.map +1 -1
- package/package.json +1 -1
- package/utils/clipboard.d.ts +0 -1
- package/utils/mind.d.ts +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Path, PlaitBoard, PlaitNode, addSelectedElement,
|
|
1
|
+
import { Path, PlaitBoard, PlaitNode, WritableClipboardType, addClipboardContext, addSelectedElement, createClipboardContext } from '@plait/core';
|
|
2
2
|
import { MindElement } from '../interfaces';
|
|
3
3
|
import { AbstractNode } from '@plait/layouts';
|
|
4
4
|
import { getFirstLevelElement } from '../utils/mind';
|
|
@@ -6,8 +6,9 @@ import { deleteElementsHandleRightNodeCount } from '../utils/node/right-node-cou
|
|
|
6
6
|
import { MindTransforms } from '../transforms';
|
|
7
7
|
import { deleteElementHandleAbstract } from '../utils/abstract/common';
|
|
8
8
|
import { getSelectedMindElements } from '../utils/node/common';
|
|
9
|
-
import { buildClipboardData, insertClipboardData, insertClipboardText
|
|
10
|
-
import { buildText
|
|
9
|
+
import { buildClipboardData, insertClipboardData, insertClipboardText } from '../utils/clipboard';
|
|
10
|
+
import { buildText } from '@plait/text';
|
|
11
|
+
import { getElementsText } from '@plait/common';
|
|
11
12
|
export const withMindFragment = (baseBoard) => {
|
|
12
13
|
const board = baseBoard;
|
|
13
14
|
const { getDeletedFragment, insertFragment, setFragment } = board;
|
|
@@ -28,32 +29,40 @@ export const withMindFragment = (baseBoard) => {
|
|
|
28
29
|
}
|
|
29
30
|
return getDeletedFragment(data);
|
|
30
31
|
};
|
|
31
|
-
board.setFragment = (data, rectangle, type) => {
|
|
32
|
+
board.setFragment = (data, clipboardContext, rectangle, type) => {
|
|
32
33
|
const targetMindElements = getSelectedMindElements(board);
|
|
33
34
|
const firstLevelElements = getFirstLevelElement(targetMindElements);
|
|
34
35
|
if (firstLevelElements.length) {
|
|
35
36
|
const elements = buildClipboardData(board, firstLevelElements, rectangle ? [rectangle.x, rectangle.y] : [0, 0]);
|
|
36
|
-
|
|
37
|
+
const text = getElementsText(targetMindElements);
|
|
38
|
+
if (!clipboardContext) {
|
|
39
|
+
clipboardContext = createClipboardContext(WritableClipboardType.elements, elements, text);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
clipboardContext = addClipboardContext(clipboardContext, {
|
|
43
|
+
text,
|
|
44
|
+
type: WritableClipboardType.elements,
|
|
45
|
+
data: elements
|
|
46
|
+
});
|
|
47
|
+
}
|
|
37
48
|
}
|
|
38
|
-
setFragment(data, rectangle, type);
|
|
49
|
+
setFragment(data, clipboardContext, rectangle, type);
|
|
39
50
|
};
|
|
40
|
-
board.insertFragment = (data, targetPoint) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
board.insertFragment = (data, clipboardData, targetPoint) => {
|
|
52
|
+
if (clipboardData?.elements?.length) {
|
|
53
|
+
const mindElements = clipboardData.elements?.filter(value => MindElement.isMindElement(board, value));
|
|
54
|
+
if (mindElements && mindElements.length > 0) {
|
|
55
|
+
insertClipboardData(board, mindElements, targetPoint);
|
|
56
|
+
}
|
|
45
57
|
}
|
|
46
|
-
|
|
58
|
+
if (clipboardData?.text) {
|
|
47
59
|
const mindElements = getSelectedMindElements(board);
|
|
48
60
|
if (mindElements.length === 1) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
insertClipboardText(board, mindElements[0], buildText(text));
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
61
|
+
insertClipboardText(board, mindElements[0], buildText(clipboardData.text));
|
|
62
|
+
return;
|
|
54
63
|
}
|
|
55
64
|
}
|
|
56
|
-
insertFragment(data, targetPoint);
|
|
65
|
+
insertFragment(data, clipboardData, targetPoint);
|
|
57
66
|
};
|
|
58
67
|
return board;
|
|
59
68
|
};
|
|
@@ -87,4 +96,4 @@ export const getNextSelectedElement = (board, firstLevelElements) => {
|
|
|
87
96
|
}
|
|
88
97
|
return activeElement;
|
|
89
98
|
};
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1taW5kLWZyYWdtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW1pbmQtZnJhZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBMEIsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFNBQXFCLEVBQUUsRUFBRTtJQUN0RCxNQUFNLEtBQUssR0FBRyxTQUF3QyxDQUFDO0lBQ3ZELE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRWxFLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLElBQW9CLEVBQUUsRUFBRTtRQUNoRCxNQUFNLGtCQUFrQixHQUFH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QUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEUsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3JELE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxrQkFBa0IsQ0FBQztJQUNsRSxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksa0JBQWtCLElBQUksYUFBYSxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ3ZELGFBQWEsR0FBRyxrQkFBa0IsQ0FBQztLQUN0QztJQUNELE9BQU8sYUFBYSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhdGgsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUGxhaXROb2RlLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBhZGRTZWxlY3RlZEVsZW1lbnQsIGdldERhdGFGcm9tQ2xpcGJvYXJkIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IGdldEZpcnN0TGV2ZWxFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbWluZCc7XG5pbXBvcnQgeyBkZWxldGVFbGVtZW50c0hhbmRsZVJpZ2h0Tm9kZUNvdW50IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS9yaWdodC1ub2RlLWNvdW50JztcbmltcG9ydCB7IE1pbmRUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBkZWxldGVFbGVtZW50SGFuZGxlQWJzdHJhY3QgfSBmcm9tICcuLi91dGlscy9hYnN0cmFjdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRNaW5kRWxlbWVudHMgfSBmcm9tICcuLi91dGlscy9ub2RlL2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4vd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IGJ1aWxkQ2xpcGJvYXJkRGF0YSwgaW5zZXJ0Q2xpcGJvYXJkRGF0YSwgaW5zZXJ0Q2xpcGJvYXJkVGV4dCwgc2V0TWluZENsaXBib2FyZERhdGEgfSBmcm9tICcuLi91dGlscy9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgYnVpbGRUZXh0LCBnZXRUZXh0RnJvbUNsaXBib2FyZCB9IGZyb20gJ0BwbGFpdC90ZXh0JztcblxuZXhwb3J0IGNvbnN0IHdpdGhNaW5kRnJhZ21lbnQgPSAoYmFzZUJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgYm9hcmQgPSBiYXNlQm9hcmQgYXMgUGxhaXRCb2FyZCAmIFBsYWl0TWluZEJvYXJkO1xuICAgIGNvbnN0IHsgZ2V0RGVsZXRlZEZyYWdtZW50LCBpbnNlcnRGcmFnbWVudCwgc2V0RnJhZ21lbnQgfSA9IGJvYXJkO1xuXG4gICAgYm9hcmQuZ2V0RGVsZXRlZEZyYWdtZW50ID0gKGRhdGE6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldE1pbmRFbGVtZW50cyA9IGdldFNlbGVjdGVkTWluZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgaWYgKHRhcmdldE1pbmRFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0TGV2ZWxFbGVtZW50cyA9IGdldEZpcnN0TGV2ZWxFbGVtZW50KHRhcmdldE1pbmRFbGVtZW50cykucmV2ZXJzZSgpO1xuICAgICAgICAgICAgY29uc3QgYWJzdHJhY3RSZWZzID0gZGVsZXRlRWxlbWVudEhhbmRsZUFic3RyYWN0KGJvYXJkLCBmaXJzdExldmVsRWxlbWVudHMpO1xuICAgICAgICAgICAgTWluZFRyYW5zZm9ybXMuc2V0QWJzdHJhY3RzQnlSZWZzKGJvYXJkLCBhYnN0cmFjdFJlZnMpO1xuICAgICAgICAgICAgY29uc3QgcmVmcyA9IGRlbGV0ZUVsZW1lbnRzSGFuZGxlUmlnaHROb2RlQ291bnQoYm9hcmQsIHRhcmdldE1pbmRFbGVtZW50cyk7XG4gICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRSaWdodE5vZGVDb3VudEJ5UmVmcyhib2FyZCwgcmVmcyk7XG4gICAgICAgICAgICBjb25zdCBkZWxldGFibGVFbGVtZW50cyA9IGdldEZpcnN0TGV2ZWxFbGVtZW50KHRhcmdldE1pbmRFbGVtZW50cyk7XG4gICAgICAgICAgICBkYXRhLnB1c2goLi4uZGVsZXRhYmxlRWxlbWVudHMpO1xuXG4gICAgICAgICAgICBjb25zdCBuZXh0U2VsZWN0ZWQgPSBnZXROZXh0U2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBmaXJzdExldmVsRWxlbWVudHMpO1xuICAgICAgICAgICAgaWYgKG5leHRTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIGFkZFNlbGVjdGVkRWxlbWVudChib2FyZCwgbmV4dFNlbGVjdGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0RGVsZXRlZEZyYWdtZW50KGRhdGEpO1xuICAgIH07XG5cbiAgICBib2FyZC5zZXRGcmFnbWVudCA9IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCB8IG51bGwsIHR5cGU6ICdjb3B5JyB8ICdjdXQnKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldE1pbmRFbGVtZW50cyA9IGdldFNlbGVjdGVkTWluZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgY29uc3QgZmlyc3RMZXZlbEVsZW1lbnRzID0gZ2V0Rmlyc3RMZXZlbEVsZW1lbnQodGFyZ2V0TWluZEVsZW1lbnRzKTtcbiAgICAgICAgaWYgKGZpcnN0TGV2ZWxFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gYnVpbGRDbGlwYm9hcmREYXRhKGJvYXJkLCBmaXJzdExldmVsRWxlbWVudHMsIHJlY3RhbmdsZSA/IFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnldIDogWzAsIDBdKTtcbiAgICAgICAgICAgIHNldE1pbmRDbGlwYm9hcmREYXRhKGRhdGEsIGVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRGcmFnbWVudChkYXRhLCByZWN0YW5nbGUsIHR5cGUpO1xuICAgIH07XG5cbiAgICBib2FyZC5pbnNlcnRGcmFnbWVudCA9IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsLCB0YXJnZXRQb2ludDogUG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBnZXREYXRhRnJvbUNsaXBib2FyZChkYXRhKTtcbiAgICAgICAgY29uc3QgbWluZEVsZW1lbnRzID0gZWxlbWVudHMuZmlsdGVyKHZhbHVlID0+IE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIHZhbHVlKSk7XG4gICAgICAgIGlmIChlbGVtZW50cy5sZW5ndGggPiAwICYmIG1pbmRFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpbnNlcnRDbGlwYm9hcmREYXRhKGJvYXJkLCBtaW5kRWxlbWVudHMsIHRhcmdldFBvaW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG1pbmRFbGVtZW50cyA9IGdldFNlbGVjdGVkTWluZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgICAgIGlmIChtaW5kRWxlbWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IGdldFRleHRGcm9tQ2xpcGJvYXJkKGRhdGEpO1xuICAgICAgICAgICAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIGluc2VydENsaXBib2FyZFRleHQoYm9hcmQsIG1pbmRFbGVtZW50c1swXSwgYnVpbGRUZXh0KHRleHQpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbnNlcnRGcmFnbWVudChkYXRhLCB0YXJnZXRQb2ludCk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXROZXh0U2VsZWN0ZWRFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBmaXJzdExldmVsRWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBsZXQgYWN0aXZlRWxlbWVudDogTWluZEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZmlyc3RMZXZlbEVsZW1lbnQgPSBmaXJzdExldmVsRWxlbWVudHNbMF07XG4gICAgY29uc3QgZmlyc3RMZXZlbEVsZW1lbnRQYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZmlyc3RMZXZlbEVsZW1lbnQpO1xuXG4gICAgbGV0IG5leHRTZWxlY3RlZFBhdGggPSBmaXJzdExldmVsRWxlbWVudFBhdGg7XG4gICAgaWYgKFBhdGguaGFzUHJldmlvdXMoZmlyc3RMZXZlbEVsZW1lbnRQYXRoKSkge1xuICAgICAgICBuZXh0U2VsZWN0ZWRQYXRoID0gUGF0aC5wcmV2aW91cyhmaXJzdExldmVsRWxlbWVudFBhdGgpO1xuICAgIH1cblxuICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChmaXJzdExldmVsRWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KGZpcnN0TGV2ZWxFbGVtZW50KTtcbiAgICAgICAgaWYgKCFmaXJzdExldmVsRWxlbWVudHMuaW5jbHVkZXMocGFyZW50LmNoaWxkcmVuW2ZpcnN0TGV2ZWxFbGVtZW50LnN0YXJ0XSkpIHtcbiAgICAgICAgICAgIGFjdGl2ZUVsZW1lbnQgPSBwYXJlbnQuY2hpbGRyZW5bZmlyc3RMZXZlbEVsZW1lbnQuc3RhcnRdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKCFhY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBhY3RpdmVFbGVtZW50ID0gUGxhaXROb2RlLmdldDxNaW5kRWxlbWVudD4oYm9hcmQsIG5leHRTZWxlY3RlZFBhdGgpO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHt9XG5cbiAgICBjb25zdCBmaXJzdEVsZW1lbnQgPSBmaXJzdExldmVsRWxlbWVudHNbMF07XG4gICAgY29uc3QgZmlyc3RFbGVtZW50UGFyZW50ID0gTWluZEVsZW1lbnQuZmluZFBhcmVudChmaXJzdEVsZW1lbnQpO1xuICAgIGNvbnN0IGhhc1NhbWVQYXJlbnQgPSBmaXJzdExldmVsRWxlbWVudHMuZXZlcnkoZWxlbWVudCA9PiB7XG4gICAgICAgIHJldHVybiBNaW5kRWxlbWVudC5maW5kUGFyZW50KGVsZW1lbnQpID09PSBmaXJzdEVsZW1lbnRQYXJlbnQ7XG4gICAgfSk7XG4gICAgaWYgKGZpcnN0RWxlbWVudFBhcmVudCAmJiBoYXNTYW1lUGFyZW50ICYmICFhY3RpdmVFbGVtZW50KSB7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQgPSBmaXJzdEVsZW1lbnRQYXJlbnQ7XG4gICAgfVxuICAgIHJldHVybiBhY3RpdmVFbGVtZW50O1xufTtcbiJdfQ==
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1taW5kLWZyYWdtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW1pbmQtZnJhZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILElBQUksRUFDSixVQUFVLEVBRVYsU0FBUyxFQUlULHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN6QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxTQUFxQixFQUFFLEVBQUU7SUFDdEQsTUFBTSxLQUFLLEdBQUcsU0FBd0MsQ0FBQztJQUN2RCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVsRSxLQUFLLENBQUMsa0JBQWtCLEdBQUcs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QUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVEO0tBQ0o7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoQixhQUFhLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBYyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztTQUN2RTtLQUNKO0lBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRTtJQUVsQixNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEUsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3JELE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxrQkFBa0IsQ0FBQztJQUNsRSxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksa0JBQWtCLElBQUksYUFBYSxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ3ZELGFBQWEsR0FBRyxrQkFBa0IsQ0FBQztLQUN0QztJQUNELE9BQU8sYUFBYSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2xpcGJvYXJkRGF0YSxcbiAgICBQYXRoLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBsYWl0Tm9kZSxcbiAgICBQb2ludCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgV3JpdGFibGVDbGlwYm9hcmRDb250ZXh0LFxuICAgIFdyaXRhYmxlQ2xpcGJvYXJkVHlwZSxcbiAgICBhZGRDbGlwYm9hcmRDb250ZXh0LFxuICAgIGFkZFNlbGVjdGVkRWxlbWVudCxcbiAgICBjcmVhdGVDbGlwYm9hcmRDb250ZXh0XG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBnZXRGaXJzdExldmVsRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL21pbmQnO1xuaW1wb3J0IHsgZGVsZXRlRWxlbWVudHNIYW5kbGVSaWdodE5vZGVDb3VudCB9IGZyb20gJy4uL3V0aWxzL25vZGUvcmlnaHQtbm9kZS1jb3VudCc7XG5pbXBvcnQgeyBNaW5kVHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgZGVsZXRlRWxlbWVudEhhbmRsZUFic3RyYWN0IH0gZnJvbSAnLi4vdXRpbHMvYWJzdHJhY3QvY29tbW9uJztcbmltcG9ydCB7IGdldFNlbGVjdGVkTWluZEVsZW1lbnRzIH0gZnJvbSAnLi4vdXRpbHMvbm9kZS9jb21tb24nO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuL3dpdGgtbWluZC5ib2FyZCc7XG5pbXBvcnQgeyBidWlsZENsaXBib2FyZERhdGEsIGluc2VydENsaXBib2FyZERhdGEsIGluc2VydENsaXBib2FyZFRleHQgfSBmcm9tICcuLi91dGlscy9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgYnVpbGRUZXh0IH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgZ2V0RWxlbWVudHNUZXh0IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCB3aXRoTWluZEZyYWdtZW50ID0gKGJhc2VCb2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IGJvYXJkID0gYmFzZUJvYXJkIGFzIFBsYWl0Qm9hcmQgJiBQbGFpdE1pbmRCb2FyZDtcbiAgICBjb25zdCB7IGdldERlbGV0ZWRGcmFnbWVudCwgaW5zZXJ0RnJhZ21lbnQsIHNldEZyYWdtZW50IH0gPSBib2FyZDtcblxuICAgIGJvYXJkLmdldERlbGV0ZWRGcmFnbWVudCA9IChkYXRhOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXRNaW5kRWxlbWVudHMgPSBnZXRTZWxlY3RlZE1pbmRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgIGlmICh0YXJnZXRNaW5kRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdExldmVsRWxlbWVudHMgPSBnZXRGaXJzdExldmVsRWxlbWVudCh0YXJnZXRNaW5kRWxlbWVudHMpLnJldmVyc2UoKTtcbiAgICAgICAgICAgIGNvbnN0IGFic3RyYWN0UmVmcyA9IGRlbGV0ZUVsZW1lbnRIYW5kbGVBYnN0cmFjdChib2FyZCwgZmlyc3RMZXZlbEVsZW1lbnRzKTtcbiAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnNldEFic3RyYWN0c0J5UmVmcyhib2FyZCwgYWJzdHJhY3RSZWZzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlZnMgPSBkZWxldGVFbGVtZW50c0hhbmRsZVJpZ2h0Tm9kZUNvdW50KGJvYXJkLCB0YXJnZXRNaW5kRWxlbWVudHMpO1xuICAgICAgICAgICAgTWluZFRyYW5zZm9ybXMuc2V0UmlnaHROb2RlQ291bnRCeVJlZnMoYm9hcmQsIHJlZnMpO1xuICAgICAgICAgICAgY29uc3QgZGVsZXRhYmxlRWxlbWVudHMgPSBnZXRGaXJzdExldmVsRWxlbWVudCh0YXJnZXRNaW5kRWxlbWVudHMpO1xuICAgICAgICAgICAgZGF0YS5wdXNoKC4uLmRlbGV0YWJsZUVsZW1lbnRzKTtcblxuICAgICAgICAgICAgY29uc3QgbmV4dFNlbGVjdGVkID0gZ2V0TmV4dFNlbGVjdGVkRWxlbWVudChib2FyZCwgZmlyc3RMZXZlbEVsZW1lbnRzKTtcbiAgICAgICAgICAgIGlmIChuZXh0U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBhZGRTZWxlY3RlZEVsZW1lbnQoYm9hcmQsIG5leHRTZWxlY3RlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldERlbGV0ZWRGcmFnbWVudChkYXRhKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuc2V0RnJhZ21lbnQgPSAoXG4gICAgICAgIGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwsXG4gICAgICAgIGNsaXBib2FyZENvbnRleHQ6IFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCB8IG51bGwsXG4gICAgICAgIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50IHwgbnVsbCxcbiAgICAgICAgdHlwZTogJ2NvcHknIHwgJ2N1dCdcbiAgICApID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0TWluZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRNaW5kRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBjb25zdCBmaXJzdExldmVsRWxlbWVudHMgPSBnZXRGaXJzdExldmVsRWxlbWVudCh0YXJnZXRNaW5kRWxlbWVudHMpO1xuICAgICAgICBpZiAoZmlyc3RMZXZlbEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBidWlsZENsaXBib2FyZERhdGEoYm9hcmQsIGZpcnN0TGV2ZWxFbGVtZW50cywgcmVjdGFuZ2xlID8gW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueV0gOiBbMCwgMF0pO1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IGdldEVsZW1lbnRzVGV4dCh0YXJnZXRNaW5kRWxlbWVudHMpO1xuICAgICAgICAgICAgaWYgKCFjbGlwYm9hcmRDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgY2xpcGJvYXJkQ29udGV4dCA9IGNyZWF0ZUNsaXBib2FyZENvbnRleHQoV3JpdGFibGVDbGlwYm9hcmRUeXBlLmVsZW1lbnRzLCBlbGVtZW50cywgdGV4dCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNsaXBib2FyZENvbnRleHQgPSBhZGRDbGlwYm9hcmRDb250ZXh0KGNsaXBib2FyZENvbnRleHQsIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogV3JpdGFibGVDbGlwYm9hcmRUeXBlLmVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBlbGVtZW50c1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNldEZyYWdtZW50KGRhdGEsIGNsaXBib2FyZENvbnRleHQsIHJlY3RhbmdsZSwgdHlwZSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmluc2VydEZyYWdtZW50ID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwsIGNsaXBib2FyZERhdGE6IENsaXBib2FyZERhdGEgfCBudWxsLCB0YXJnZXRQb2ludDogUG9pbnQpID0+IHtcbiAgICAgICAgaWYgKGNsaXBib2FyZERhdGE/LmVsZW1lbnRzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IG1pbmRFbGVtZW50cyA9IGNsaXBib2FyZERhdGEuZWxlbWVudHM/LmZpbHRlcih2YWx1ZSA9PiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCB2YWx1ZSkpO1xuICAgICAgICAgICAgaWYgKG1pbmRFbGVtZW50cyAmJiBtaW5kRWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGluc2VydENsaXBib2FyZERhdGEoYm9hcmQsIG1pbmRFbGVtZW50cywgdGFyZ2V0UG9pbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjbGlwYm9hcmREYXRhPy50ZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBtaW5kRWxlbWVudHMgPSBnZXRTZWxlY3RlZE1pbmRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgICAgICBpZiAobWluZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGluc2VydENsaXBib2FyZFRleHQoYm9hcmQsIG1pbmRFbGVtZW50c1swXSwgYnVpbGRUZXh0KGNsaXBib2FyZERhdGEudGV4dCkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGluc2VydEZyYWdtZW50KGRhdGEsIGNsaXBib2FyZERhdGEsIHRhcmdldFBvaW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE5leHRTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGZpcnN0TGV2ZWxFbGVtZW50czogTWluZEVsZW1lbnRbXSkgPT4ge1xuICAgIGxldCBhY3RpdmVFbGVtZW50OiBNaW5kRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaXJzdExldmVsRWxlbWVudCA9IGZpcnN0TGV2ZWxFbGVtZW50c1swXTtcbiAgICBjb25zdCBmaXJzdExldmVsRWxlbWVudFBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBmaXJzdExldmVsRWxlbWVudCk7XG5cbiAgICBsZXQgbmV4dFNlbGVjdGVkUGF0aCA9IGZpcnN0TGV2ZWxFbGVtZW50UGF0aDtcbiAgICBpZiAoUGF0aC5oYXNQcmV2aW91cyhmaXJzdExldmVsRWxlbWVudFBhdGgpKSB7XG4gICAgICAgIG5leHRTZWxlY3RlZFBhdGggPSBQYXRoLnByZXZpb3VzKGZpcnN0TGV2ZWxFbGVtZW50UGF0aCk7XG4gICAgfVxuXG4gICAgaWYgKEFic3RyYWN0Tm9kZS5pc0Fic3RyYWN0KGZpcnN0TGV2ZWxFbGVtZW50KSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBNaW5kRWxlbWVudC5nZXRQYXJlbnQoZmlyc3RMZXZlbEVsZW1lbnQpO1xuICAgICAgICBpZiAoIWZpcnN0TGV2ZWxFbGVtZW50cy5pbmNsdWRlcyhwYXJlbnQuY2hpbGRyZW5bZmlyc3RMZXZlbEVsZW1lbnQuc3RhcnRdKSkge1xuICAgICAgICAgICAgYWN0aXZlRWxlbWVudCA9IHBhcmVudC5jaGlsZHJlbltmaXJzdExldmVsRWxlbWVudC5zdGFydF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgICBpZiAoIWFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGFjdGl2ZUVsZW1lbnQgPSBQbGFpdE5vZGUuZ2V0PE1pbmRFbGVtZW50Pihib2FyZCwgbmV4dFNlbGVjdGVkUGF0aCk7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge31cblxuICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IGZpcnN0TGV2ZWxFbGVtZW50c1swXTtcbiAgICBjb25zdCBmaXJzdEVsZW1lbnRQYXJlbnQgPSBNaW5kRWxlbWVudC5maW5kUGFyZW50KGZpcnN0RWxlbWVudCk7XG4gICAgY29uc3QgaGFzU2FtZVBhcmVudCA9IGZpcnN0TGV2ZWxFbGVtZW50cy5ldmVyeShlbGVtZW50ID0+IHtcbiAgICAgICAgcmV0dXJuIE1pbmRFbGVtZW50LmZpbmRQYXJlbnQoZWxlbWVudCkgPT09IGZpcnN0RWxlbWVudFBhcmVudDtcbiAgICB9KTtcbiAgICBpZiAoZmlyc3RFbGVtZW50UGFyZW50ICYmIGhhc1NhbWVQYXJlbnQgJiYgIWFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgYWN0aXZlRWxlbWVudCA9IGZpcnN0RWxlbWVudFBhcmVudDtcbiAgICB9XG4gICAgcmV0dXJuIGFjdGl2ZUVsZW1lbnQ7XG59O1xuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { PlaitBoard, isMainPointer, hotkeys, PlaitPointerType, addSelectedElement, getSelectedElements,
|
|
1
|
+
import { PlaitBoard, isMainPointer, hotkeys, PlaitPointerType, addSelectedElement, getSelectedElements, getHitElementByPoint, temporaryDisableSelection, WritableClipboardType, toHostPoint, toViewBoxPoint, createClipboardContext } from '@plait/core';
|
|
2
2
|
import { MindElement } from '../interfaces';
|
|
3
3
|
import { addImageFocus, removeImageFocus } from '../utils/node/image';
|
|
4
4
|
import { isHitImage } from '../utils';
|
|
5
5
|
import { MindTransforms } from '../transforms';
|
|
6
|
-
import {
|
|
6
|
+
import { acceptImageTypes, buildImage, getElementOfFocusedImage } from '@plait/common';
|
|
7
7
|
import { DEFAULT_MIND_IMAGE_WIDTH } from '../constants';
|
|
8
8
|
export const withNodeImage = (board) => {
|
|
9
9
|
const { keydown, pointerDown, globalPointerUp, setFragment, insertFragment, deleteFragment } = board;
|
|
@@ -56,13 +56,13 @@ export const withNodeImage = (board) => {
|
|
|
56
56
|
}
|
|
57
57
|
globalPointerUp(event);
|
|
58
58
|
};
|
|
59
|
-
board.setFragment = (data, rectangle, type) => {
|
|
59
|
+
board.setFragment = (data, clipboardContext, rectangle, type) => {
|
|
60
60
|
const selectedImageElement = getElementOfFocusedImage(board);
|
|
61
61
|
if (selectedImageElement) {
|
|
62
|
-
|
|
62
|
+
clipboardContext = createClipboardContext(WritableClipboardType.medias, [selectedImageElement.data.image], '');
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
|
-
setFragment(data, rectangle, type);
|
|
65
|
+
setFragment(data, clipboardContext, rectangle, type);
|
|
66
66
|
};
|
|
67
67
|
board.deleteFragment = (data) => {
|
|
68
68
|
const selectedImageElement = getElementOfFocusedImage(board);
|
|
@@ -71,29 +71,30 @@ export const withNodeImage = (board) => {
|
|
|
71
71
|
}
|
|
72
72
|
deleteFragment(data);
|
|
73
73
|
};
|
|
74
|
-
board.insertFragment = (data, targetPoint) => {
|
|
74
|
+
board.insertFragment = (data, clipboardData, targetPoint) => {
|
|
75
75
|
const selectedElements = getSelectedElements(board);
|
|
76
76
|
const isSelectedImage = !!getElementOfFocusedImage(board);
|
|
77
77
|
const isSingleSelection = selectedElements.length === 1 && MindElement.isMindElement(board, selectedElements[0]);
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
78
|
+
if (isSelectedImage || isSingleSelection) {
|
|
79
|
+
if (clipboardData?.files?.length) {
|
|
80
|
+
const acceptImageArray = acceptImageTypes.map(type => 'image/' + type);
|
|
81
|
+
const selectedElement = (selectedElements[0] || getElementOfFocusedImage(board));
|
|
82
|
+
if (acceptImageArray.includes(clipboardData.files[0].type)) {
|
|
83
|
+
const imageFile = clipboardData.files[0];
|
|
84
|
+
buildImage(board, imageFile, DEFAULT_MIND_IMAGE_WIDTH, imageItem => {
|
|
85
|
+
MindTransforms.setImage(board, selectedElement, imageItem);
|
|
86
|
+
});
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (clipboardData?.medias?.length) {
|
|
91
|
+
const selectedElement = (selectedElements[0] || getElementOfFocusedImage(board));
|
|
92
|
+
MindTransforms.setImage(board, selectedElement, clipboardData.medias[0]);
|
|
86
93
|
return;
|
|
87
94
|
}
|
|
88
95
|
}
|
|
89
|
-
|
|
90
|
-
if (imageItem && (isSingleSelection || isSelectedImage)) {
|
|
91
|
-
const selectedElement = (selectedElements[0] || getElementOfFocusedImage(board));
|
|
92
|
-
MindTransforms.setImage(board, selectedElement, imageItem);
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
insertFragment(data, targetPoint);
|
|
96
|
+
insertFragment(data, clipboardData, targetPoint);
|
|
96
97
|
};
|
|
97
98
|
return board;
|
|
98
99
|
};
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW5vZGUtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFDVixhQUFhLEVBRWIsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixrQkFBa0IsRUFFbEIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFFdkIsb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QixXQUFXLEVBQ1gsY0FBYyxFQUNqQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXhELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFckcsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUN4QyxNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMs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LEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgaXNNYWluUG9pbnRlcixcbiAgICBQbGFpdE9wdGlvbnNCb2FyZCxcbiAgICBob3RrZXlzLFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgYWRkU2VsZWN0ZWRFbGVtZW50LFxuICAgIFBvaW50LFxuICAgIGdldFNlbGVjdGVkRWxlbWVudHMsXG4gICAgc2V0Q2xpcGJvYXJkRGF0YUJ5TWVkaWEsXG4gICAgZ2V0Q2xpcGJvYXJkRGF0YUJ5TWVkaWEsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGdldEhpdEVsZW1lbnRCeVBvaW50LFxuICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24sXG4gICAgdG9Ib3N0UG9pbnQsXG4gICAgdG9WaWV3Qm94UG9pbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEltYWdlRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IGFkZEltYWdlRm9jdXMsIHJlbW92ZUltYWdlRm9jdXMgfSBmcm9tICcuLi91dGlscy9ub2RlL2ltYWdlJztcbmltcG9ydCB7IGlzSGl0SW1hZ2UgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBNaW5kVHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgTWVkaWFLZXlzLCBhY2NlcHRJbWFnZVR5cGVzLCBidWlsZEltYWdlLCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IERFRkFVTFRfTUlORF9JTUFHRV9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoTm9kZUltYWdlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBrZXlkb3duLCBwb2ludGVyRG93biwgZ2xvYmFsUG9pbnRlclVwLCBzZXRGcmFnbWVudCwgaW5zZXJ0RnJhZ21lbnQsIGRlbGV0ZUZyYWdtZW50IH0gPSBib2FyZDtcblxuICAgIGJvYXJkLnBvaW50ZXJEb3duID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudE9mRm9jdXNlZEltYWdlID0gZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKTtcbiAgICAgICAgaWYgKFBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgfHwgIWlzTWFpblBvaW50ZXIoZXZlbnQpIHx8ICFQbGFpdEJvYXJkLmlzUG9pbnRlcihib2FyZCwgUGxhaXRQb2ludGVyVHlwZS5zZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudE9mRm9jdXNlZEltYWdlICYmIE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIGVsZW1lbnRPZkZvY3VzZWRJbWFnZSkpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVJbWFnZUZvY3VzKGJvYXJkLCBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgY29uc3QgaGl0RWxlbWVudCA9IGdldEhpdEVsZW1lbnRCeVBvaW50KGJvYXJkLCBwb2ludCk7XG4gICAgICAgIGNvbnN0IGlzSGl0SW1hZ2VSZXN1bHQgPVxuICAgICAgICAgICAgaGl0RWxlbWVudCAmJlxuICAgICAgICAgICAgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgaGl0RWxlbWVudCkgJiZcbiAgICAgICAgICAgIE1pbmRFbGVtZW50Lmhhc0ltYWdlKGhpdEVsZW1lbnQpICYmXG4gICAgICAgICAgICBpc0hpdEltYWdlKGJvYXJkLCBoaXRFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4sIHBvaW50KTtcbiAgICAgICAgaWYgKGlzSGl0SW1hZ2VSZXN1bHQgJiYgZWxlbWVudE9mRm9jdXNlZEltYWdlICYmIGhpdEVsZW1lbnQgPT09IGVsZW1lbnRPZkZvY3VzZWRJbWFnZSkge1xuICAgICAgICAgICAgdGVtcG9yYXJ5RGlzYWJsZVNlbGVjdGlvbihib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCk7XG4gICAgICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnRPZkZvY3VzZWRJbWFnZSAmJiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UpKSB7XG4gICAgICAgICAgICByZW1vdmVJbWFnZUZvY3VzKGJvYXJkLCBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzSGl0SW1hZ2VSZXN1bHQgJiYgaGl0RWxlbWVudCkge1xuICAgICAgICAgICAgdGVtcG9yYXJ5RGlzYWJsZVNlbGVjdGlvbihib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCk7XG4gICAgICAgICAgICBhZGRJbWFnZUZvY3VzKGJvYXJkLCBoaXRFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJEb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQua2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEltYWdlRWxlbWVudCA9IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgIGlmICghUGxhaXRCb2FyZC5pc1JlYWRvbmx5KGJvYXJkKSAmJiBzZWxlY3RlZEltYWdlRWxlbWVudCAmJiAoaG90a2V5cy5pc0RlbGV0ZUJhY2t3YXJkKGV2ZW50KSB8fCBob3RrZXlzLmlzRGVsZXRlRm9yd2FyZChldmVudCkpKSB7XG4gICAgICAgICAgICBhZGRTZWxlY3RlZEVsZW1lbnQoYm9hcmQsIHNlbGVjdGVkSW1hZ2VFbGVtZW50KTtcbiAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnJlbW92ZUltYWdlKGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBrZXlkb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2xvYmFsUG9pbnRlclVwID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0Qm9hcmQuaXNGb2N1cyhib2FyZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzSW5Cb2FyZCA9IGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIE5vZGUgJiYgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSW1hZ2VFbGVtZW50ID0gZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKTtcbiAgICAgICAgICAgIC8vIENsZWFyIGltYWdlIHNlbGVjdGlvbiB3aGVuIG1vdXNlIGJvYXJkIG91dHNpZGUgYXJlYVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW1hZ2VFbGVtZW50ICYmIE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIHNlbGVjdGVkSW1hZ2VFbGVtZW50KSAmJiAhaXNJbkJvYXJkKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlSW1hZ2VGb2N1cyhib2FyZCwgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ2xvYmFsUG9pbnRlclVwKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuc2V0RnJhZ21lbnQgPSAoZGF0YTogRGF0YVRyYW5zZmVyIHwgbnVsbCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQgfCBudWxsLCB0eXBlOiAnY29weScgfCAnY3V0JykgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEltYWdlRWxlbWVudCA9IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEltYWdlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0Q2xpcGJvYXJkRGF0YUJ5TWVkaWEoZGF0YSwgc2VsZWN0ZWRJbWFnZUVsZW1lbnQuZGF0YS5pbWFnZSEsIE1lZGlhS2V5cy5pbWFnZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0RnJhZ21lbnQoZGF0YSwgcmVjdGFuZ2xlLCB0eXBlKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZGVsZXRlRnJhZ21lbnQgPSAoZGF0YTogRGF0YVRyYW5zZmVyIHwgbnVsbCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEltYWdlRWxlbWVudCA9IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEltYWdlRWxlbWVudCkge1xuICAgICAgICAgICAgTWluZFRyYW5zZm9ybXMucmVtb3ZlSW1hZ2UoYm9hcmQsIHNlbGVjdGVkSW1hZ2VFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZUZyYWdtZW50KGRhdGEpO1xuICAgIH07XG5cbiAgICBib2FyZC5pbnNlcnRGcmFnbWVudCA9IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsLCB0YXJnZXRQb2ludDogUG9pbnQpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBjb25zdCBpc1NlbGVjdGVkSW1hZ2UgPSAhIWdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgIGNvbnN0IGlzU2luZ2xlU2VsZWN0aW9uID0gc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgc2VsZWN0ZWRFbGVtZW50c1swXSk7XG5cbiAgICAgICAgaWYgKGRhdGE/LmZpbGVzLmxlbmd0aCAmJiAoaXNTaW5nbGVTZWxlY3Rpb24gfHwgaXNTZWxlY3RlZEltYWdlKSkge1xuICAgICAgICAgICAgY29uc3QgYWNjZXB0SW1hZ2VBcnJheSA9IGFjY2VwdEltYWdlVHlwZXMubWFwKHR5cGUgPT4gJ2ltYWdlLycgKyB0eXBlKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudCA9IChzZWxlY3RlZEVsZW1lbnRzWzBdIHx8IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCkpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICAgICAgaWYgKGFjY2VwdEltYWdlQXJyYXkuaW5jbHVkZXMoZGF0YT8uZmlsZXNbMF0udHlwZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbWFnZUZpbGUgPSBkYXRhLmZpbGVzWzBdO1xuXG4gICAgICAgICAgICAgICAgYnVpbGRJbWFnZShib2FyZCwgaW1hZ2VGaWxlLCBERUZBVUxUX01JTkRfSU1BR0VfV0lEVEgsIGltYWdlSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnNldEltYWdlKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnQsIGltYWdlSXRlbSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW1hZ2VJdGVtID0gZ2V0Q2xpcGJvYXJkRGF0YUJ5TWVkaWEoZGF0YSwgTWVkaWFLZXlzLmltYWdlKTtcbiAgICAgICAgaWYgKGltYWdlSXRlbSAmJiAoaXNTaW5nbGVTZWxlY3Rpb24gfHwgaXNTZWxlY3RlZEltYWdlKSkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50ID0gKHNlbGVjdGVkRWxlbWVudHNbMF0gfHwgZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKSkgYXMgTWluZEVsZW1lbnQ7XG4gICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRJbWFnZShib2FyZCwgc2VsZWN0ZWRFbGVtZW50LCBpbWFnZUl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5zZXJ0RnJhZ21lbnQoZGF0YSwgdGFyZ2V0UG9pbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW5vZGUtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFDVixhQUFhLEVBRWIsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixrQkFBa0IsRUFFbEIsbUJBQW1CLEVBRW5CLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxjQUFjLEVBRWQsc0JBQXNCLEVBRXpCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDL0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRXJHLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDeEMsTUFBTSxxQkFBcUIsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNuSCxJQUFJLHFCQUFxQixJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDLEVBQUU7Z0JBQ2xGLGdCQUFnQixDQUFDLEtBQUssRUFBRSxxQkFBK0MsQ0FBQyxDQUFDO2FBQzVFO1lBQ0QsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLE9BQU87U0FDVjtRQUNELE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RCxNQUFNLGdCQUFnQixHQUNsQixVQUFVO1lBQ1YsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDO1lBQzVDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ2hDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBb0MsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRSxJQUFJLGdCQUFnQixJQUFJLHFCQUFxQixJQUFJLFVBQVUsS0FBSyxxQkFBcUIsRUFBRTtZQUNuRix5QkFBeUIsQ0FBQyxLQUEwQixDQUFDLENBQUM7WUFDdEQsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLE9BQU87U0FDVjtRQUNELElBQUkscUJBQXFCLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUMsRUFBRTtZQUNsRixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUscUJBQStDLENBQUMsQ0FBQztTQUM1RTtRQUNELElBQUksZ0JBQWdCLElBQUksVUFBVSxFQUFFO1lBQ2hDLHlCQUF5QixDQUFDLEtBQTBCLENBQUMsQ0FBQztZQUN0RCxhQUFhLENBQUMsS0FBSyxFQUFFLFVBQW9DLENBQUMsQ0FBQztTQUM5RDtRQUNELFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3JDLE1BQU0sb0JBQW9CLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksb0JBQW9CLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzlILGtCQUFrQixDQUFDLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2hELGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLG9CQUE4QyxDQUFDLENBQUM7WUFDbEYsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDNUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLFlBQVksSUFBSSxJQUFJLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdHLE1BQU0sb0JBQW9CLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0Qsc0RBQXNEO1lBQ3RELElBQUksb0JBQW9CLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDOUYsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLG9CQUE4QyxDQUFDLENBQUM7YUFDM0U7U0FDSjtRQUNELGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsV0FBVyxHQUFHLENBQ2hCLElBQXlCLEVBQ3pCLGdCQUFpRCxFQUNqRCxTQUFpQyxFQUNqQyxJQUFvQixFQUN0QixFQUFFO1FBQ0EsTUFBTSxvQkFBb0IsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLENBQTJCLENBQUM7UUFDdkYsSUFBSSxvQkFBb0IsRUFBRTtZQUN0QixnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDL0csT0FBTztTQUNWO1FBQ0QsV0FBVyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQXlCLEVBQUUsRUFBRTtRQUNqRCxNQUFNLG9CQUFvQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUksb0JBQW9CLEVBQUU7WUFDdEIsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsb0JBQThDLENBQUMsQ0FBQztTQUNyRjtRQUNELGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBeUIsRUFBRSxhQUFtQyxFQUFFLFdBQWtCLEVBQUUsRUFBRTtRQUMxRyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqSCxJQUFJLGVBQWUsSUFBSSxpQkFBaUIsRUFBRTtZQUN0QyxJQUFJLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2dCQUM5QixNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDdkUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztnQkFDaEcsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDeEQsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDekMsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLEVBQUU7d0JBQy9ELGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDL0QsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsT0FBTztpQkFDVjthQUNKO1lBQ0QsSUFBSSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtnQkFDL0IsTUFBTSxlQUFlLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztnQkFDaEcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekUsT0FBTzthQUNWO1NBQ0o7UUFDRCxjQUFjLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgaXNNYWluUG9pbnRlcixcbiAgICBQbGFpdE9wdGlvbnNCb2FyZCxcbiAgICBob3RrZXlzLFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgYWRkU2VsZWN0ZWRFbGVtZW50LFxuICAgIFBvaW50LFxuICAgIGdldFNlbGVjdGVkRWxlbWVudHMsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGdldEhpdEVsZW1lbnRCeVBvaW50LFxuICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24sXG4gICAgV3JpdGFibGVDbGlwYm9hcmRUeXBlLFxuICAgIHRvSG9zdFBvaW50LFxuICAgIHRvVmlld0JveFBvaW50LFxuICAgIFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCxcbiAgICBjcmVhdGVDbGlwYm9hcmRDb250ZXh0LFxuICAgIENsaXBib2FyZERhdGFcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEltYWdlRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IGFkZEltYWdlRm9jdXMsIHJlbW92ZUltYWdlRm9jdXMgfSBmcm9tICcuLi91dGlscy9ub2RlL2ltYWdlJztcbmltcG9ydCB7IGlzSGl0SW1hZ2UgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBNaW5kVHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgYWNjZXB0SW1hZ2VUeXBlcywgYnVpbGRJbWFnZSwgZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBERUZBVUxUX01JTkRfSU1BR0VfV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3Qgd2l0aE5vZGVJbWFnZSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHsga2V5ZG93biwgcG9pbnRlckRvd24sIGdsb2JhbFBvaW50ZXJVcCwgc2V0RnJhZ21lbnQsIGluc2VydEZyYWdtZW50LCBkZWxldGVGcmFnbWVudCB9ID0gYm9hcmQ7XG5cbiAgICBib2FyZC5wb2ludGVyRG93biA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRPZkZvY3VzZWRJbWFnZSA9IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgIGlmIChQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpIHx8ICFpc01haW5Qb2ludGVyKGV2ZW50KSB8fCAhUGxhaXRCb2FyZC5pc1BvaW50ZXIoYm9hcmQsIFBsYWl0UG9pbnRlclR5cGUuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRPZkZvY3VzZWRJbWFnZSAmJiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UpKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlSW1hZ2VGb2N1cyhib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlIGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgIGNvbnN0IGhpdEVsZW1lbnQgPSBnZXRIaXRFbGVtZW50QnlQb2ludChib2FyZCwgcG9pbnQpO1xuICAgICAgICBjb25zdCBpc0hpdEltYWdlUmVzdWx0ID1cbiAgICAgICAgICAgIGhpdEVsZW1lbnQgJiZcbiAgICAgICAgICAgIE1pbmRFbGVtZW50LmlzTWluZEVsZW1lbnQoYm9hcmQsIGhpdEVsZW1lbnQpICYmXG4gICAgICAgICAgICBNaW5kRWxlbWVudC5oYXNJbWFnZShoaXRFbGVtZW50KSAmJlxuICAgICAgICAgICAgaXNIaXRJbWFnZShib2FyZCwgaGl0RWxlbWVudCBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+LCBwb2ludCk7XG4gICAgICAgIGlmIChpc0hpdEltYWdlUmVzdWx0ICYmIGVsZW1lbnRPZkZvY3VzZWRJbWFnZSAmJiBoaXRFbGVtZW50ID09PSBlbGVtZW50T2ZGb2N1c2VkSW1hZ2UpIHtcbiAgICAgICAgICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24oYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpO1xuICAgICAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50T2ZGb2N1c2VkSW1hZ2UgJiYgTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlKSkge1xuICAgICAgICAgICAgcmVtb3ZlSW1hZ2VGb2N1cyhib2FyZCwgZWxlbWVudE9mRm9jdXNlZEltYWdlIGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0hpdEltYWdlUmVzdWx0ICYmIGhpdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24oYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpO1xuICAgICAgICAgICAgYWRkSW1hZ2VGb2N1cyhib2FyZCwgaGl0RWxlbWVudCBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+KTtcbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgICAgICBpZiAoIVBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgJiYgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgJiYgKGhvdGtleXMuaXNEZWxldGVCYWNrd2FyZChldmVudCkgfHwgaG90a2V5cy5pc0RlbGV0ZUZvcndhcmQoZXZlbnQpKSkge1xuICAgICAgICAgICAgYWRkU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCk7XG4gICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5yZW1vdmVJbWFnZShib2FyZCwgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgYXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAga2V5ZG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdEJvYXJkLmlzRm9jdXMoYm9hcmQpKSB7XG4gICAgICAgICAgICBjb25zdCBpc0luQm9hcmQgPSBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBOb2RlICYmIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEltYWdlRWxlbWVudCA9IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCk7XG4gICAgICAgICAgICAvLyBDbGVhciBpbWFnZSBzZWxlY3Rpb24gd2hlbiBtb3VzZSBib2FyZCBvdXRzaWRlIGFyZWFcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEltYWdlRWxlbWVudCAmJiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCkgJiYgIWlzSW5Cb2FyZCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUltYWdlRm9jdXMoYm9hcmQsIHNlbGVjdGVkSW1hZ2VFbGVtZW50IGFzIE1pbmRFbGVtZW50PEltYWdlRGF0YT4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLnNldEZyYWdtZW50ID0gKFxuICAgICAgICBkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsLFxuICAgICAgICBjbGlwYm9hcmRDb250ZXh0OiBXcml0YWJsZUNsaXBib2FyZENvbnRleHQgfCBudWxsLFxuICAgICAgICByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCB8IG51bGwsXG4gICAgICAgIHR5cGU6ICdjb3B5JyB8ICdjdXQnXG4gICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSW1hZ2VFbGVtZW50ID0gZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKSBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+O1xuICAgICAgICBpZiAoc2VsZWN0ZWRJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNsaXBib2FyZENvbnRleHQgPSBjcmVhdGVDbGlwYm9hcmRDb250ZXh0KFdyaXRhYmxlQ2xpcGJvYXJkVHlwZS5tZWRpYXMsIFtzZWxlY3RlZEltYWdlRWxlbWVudC5kYXRhLmltYWdlXSwgJycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEZyYWdtZW50KGRhdGEsIGNsaXBib2FyZENvbnRleHQsIHJlY3RhbmdsZSwgdHlwZSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmRlbGV0ZUZyYWdtZW50ID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnJlbW92ZUltYWdlKGJvYXJkLCBzZWxlY3RlZEltYWdlRWxlbWVudCBhcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+KTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGVGcmFnbWVudChkYXRhKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaW5zZXJ0RnJhZ21lbnQgPSAoZGF0YTogRGF0YVRyYW5zZmVyIHwgbnVsbCwgY2xpcGJvYXJkRGF0YTogQ2xpcGJvYXJkRGF0YSB8IG51bGwsIHRhcmdldFBvaW50OiBQb2ludCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgIGNvbnN0IGlzU2VsZWN0ZWRJbWFnZSA9ICEhZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKGJvYXJkKTtcbiAgICAgICAgY29uc3QgaXNTaW5nbGVTZWxlY3Rpb24gPSBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBzZWxlY3RlZEVsZW1lbnRzWzBdKTtcbiAgICAgICAgaWYgKGlzU2VsZWN0ZWRJbWFnZSB8fCBpc1NpbmdsZVNlbGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKGNsaXBib2FyZERhdGE/LmZpbGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY2NlcHRJbWFnZUFycmF5ID0gYWNjZXB0SW1hZ2VUeXBlcy5tYXAodHlwZSA9PiAnaW1hZ2UvJyArIHR5cGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudCA9IChzZWxlY3RlZEVsZW1lbnRzWzBdIHx8IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCkpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmIChhY2NlcHRJbWFnZUFycmF5LmluY2x1ZGVzKGNsaXBib2FyZERhdGEuZmlsZXNbMF0udHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VGaWxlID0gY2xpcGJvYXJkRGF0YS5maWxlc1swXTtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRJbWFnZShib2FyZCwgaW1hZ2VGaWxlLCBERUZBVUxUX01JTkRfSU1BR0VfV0lEVEgsIGltYWdlSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBNaW5kVHJhbnNmb3Jtcy5zZXRJbWFnZShib2FyZCwgc2VsZWN0ZWRFbGVtZW50LCBpbWFnZUl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjbGlwYm9hcmREYXRhPy5tZWRpYXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudCA9IChzZWxlY3RlZEVsZW1lbnRzWzBdIHx8IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZShib2FyZCkpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICAgICAgICAgIE1pbmRUcmFuc2Zvcm1zLnNldEltYWdlKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnQsIGNsaXBib2FyZERhdGEubWVkaWFzWzBdKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0RnJhZ21lbnQoZGF0YSwgY2xpcGJvYXJkRGF0YSwgdGFyZ2V0UG9pbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getSelectedElements, PlaitBoard,
|
|
1
|
+
import { getSelectedElements, PlaitBoard, Transforms } from '@plait/core';
|
|
2
2
|
import { MindElement, PlaitMind } from '../interfaces';
|
|
3
|
-
import { copyNewNode
|
|
3
|
+
import { copyNewNode } from './mind';
|
|
4
4
|
import { getRectangleByNode } from './position/node';
|
|
5
5
|
import { AbstractNode, getNonAbstractChildren } from '@plait/layouts';
|
|
6
6
|
import { getRelativeStartEndByAbstractRef, getOverallAbstracts, getValidAbstractRefs } from './abstract/common';
|
|
@@ -52,13 +52,6 @@ export const buildClipboardData = (board, selectedElements, startPoint) => {
|
|
|
52
52
|
});
|
|
53
53
|
return result;
|
|
54
54
|
};
|
|
55
|
-
export const setMindClipboardData = (data, elements) => {
|
|
56
|
-
const text = elements.reduce((string, currentNode) => {
|
|
57
|
-
return string + extractNodesText(currentNode);
|
|
58
|
-
}, '');
|
|
59
|
-
setClipboardData(data, elements);
|
|
60
|
-
setClipboardDataByText(data, text);
|
|
61
|
-
};
|
|
62
55
|
export const insertClipboardData = (board, elements, targetPoint) => {
|
|
63
56
|
let newElement, path;
|
|
64
57
|
const selectedElements = getSelectedElements(board);
|
|
@@ -111,4 +104,4 @@ export const insertClipboardText = (board, targetParent, text) => {
|
|
|
111
104
|
Transforms.insertNode(board, newElement, findNewChildNodePath(board, targetParent));
|
|
112
105
|
Transforms.addSelectionWithTemporaryElements(board, [newElement]);
|
|
113
106
|
};
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvY2xpcGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxtQkFBbUIsRUFFbkIsVUFBVSxFQUdWLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBaUIsRUFBRSxnQkFBK0IsRUFBRSxVQUFpQixFQUFFLEVBQUU7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SyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENMSVBfQk9BUkRfRk9STUFUX0tFWSxcbiAgICBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzLFxuICAgIGdldFNlbGVjdGVkRWxlbWVudHMsXG4gICAgUGF0aCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQb2ludCxcbiAgICBzZXRDbGlwYm9hcmREYXRhLFxuICAgIHNldENsaXBib2FyZERhdGFCeVRleHQsXG4gICAgVHJhbnNmb3Jtc1xufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCwgUGxhaXRNaW5kIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjb3B5TmV3Tm9kZSwgZXh0cmFjdE5vZGVzVGV4dCB9IGZyb20gJy4vbWluZCc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgQWJzdHJhY3ROb2RlLCBnZXROb25BYnN0cmFjdENoaWxkcmVuIH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgZ2V0UmVsYXRpdmVTdGFydEVuZEJ5QWJzdHJhY3RSZWYsIGdldE92ZXJhbGxBYnN0cmFjdHMsIGdldFZhbGlkQWJzdHJhY3RSZWZzIH0gZnJvbSAnLi9hYnN0cmFjdC9jb21tb24nO1xuaW1wb3J0IHsgY3JlYXRlTWluZEVsZW1lbnQgfSBmcm9tICcuL25vZGUvY3JlYXRlLW5vZGUnO1xuaW1wb3J0IHsgYWRqdXN0QWJzdHJhY3RUb05vZGUsIGFkanVzdE5vZGVUb1Jvb3QsIGFkanVzdFJvb3RUb05vZGUgfSBmcm9tICcuL25vZGUvYWRqdXN0LW5vZGUnO1xuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGdldFRleHRTaXplIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgQlJBTkNIX0ZPTlRfRkFNSUxZLCBERUZBVUxUX0ZPTlRfRkFNSUxZLCBST09UX1RPUElDX0ZPTlRfU0laRSwgVE9QSUNfREVGQVVMVF9NQVhfV09SRF9DT1VOVCB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXRvcGljLXN0eWxlJztcbmltcG9ydCB7IGZpbmROZXdDaGlsZE5vZGVQYXRoIH0gZnJvbSAnLi9wYXRoJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuaW1wb3J0IHsgZ2V0Rm9udFNpemVCeVNsYXRlRWxlbWVudCB9IGZyb20gJy4vc3BhY2Uvbm9kZS1zcGFjZSc7XG5cbmV4cG9ydCBjb25zdCBidWlsZENsaXBib2FyZERhdGEgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNlbGVjdGVkRWxlbWVudHM6IE1pbmRFbGVtZW50W10sIHN0YXJ0UG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgbGV0IHJlc3VsdDogTWluZEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgLy8gZ2V0IG92ZXJhbGwgYWJzdHJhY3RcbiAgICBjb25zdCBvdmVyYWxsQWJzdHJhY3RzID0gZ2V0T3ZlcmFsbEFic3RyYWN0cyhib2FyZCwgc2VsZWN0ZWRFbGVtZW50cykgYXMgTWluZEVsZW1lbnRbXTtcbiAgICAvLyBnZXQgdmFsaWQgYWJzdHJhY3QgcmVmc1xuICAgIGNvbnN0IHZhbGlkQWJzdHJhY3RSZWZzID0gZ2V0VmFsaWRBYnN0cmFjdFJlZnMoYm9hcmQsIFsuLi5zZWxlY3RlZEVsZW1lbnRzLCAuLi5vdmVyYWxsQWJzdHJhY3RzXSk7XG5cbiAgICAvLyBrZWVwIGNvcnJlY3Qgb3JkZXJcbiAgICBjb25zdCBuZXdTZWxlY3RlZEVsZW1lbnRzID0gc2VsZWN0ZWRFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gIXZhbGlkQWJzdHJhY3RSZWZzLmZpbmQocmVmID0+IHJlZi5hYnN0cmFjdCA9PT0gdmFsdWUpKTtcbiAgICBuZXdTZWxlY3RlZEVsZW1lbnRzLnB1c2goLi4udmFsaWRBYnN0cmFjdFJlZnMubWFwKHZhbHVlID0+IHZhbHVlLmFic3RyYWN0KSk7XG5cbiAgICBjb25zdCBzZWxlY3RlZE1pbmROb2RlcyA9IG5ld1NlbGVjdGVkRWxlbWVudHMubWFwKHZhbHVlID0+IE1pbmRFbGVtZW50LmdldE5vZGUodmFsdWUpKTtcbiAgICBuZXdTZWxlY3RlZEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIC8vIGhhbmRsZSByZWxhdGl2ZSBsb2NhdGlvblxuICAgICAgICBjb25zdCBub2RlUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKHNlbGVjdGVkTWluZE5vZGVzW2luZGV4XSk7XG4gICAgICAgIGNvbnN0IHBvaW50cyA9IFtbbm9kZVJlY3RhbmdsZS54IC0gc3RhcnRQb2ludFswXSwgbm9kZVJlY3RhbmdsZS55IC0gc3RhcnRQb2ludFsxXV1dIGFzIFBvaW50W107XG5cbiAgICAgICAgLy8gaGFuZGxlIGludmFsaWQgYWJzdHJhY3RcbiAgICAgICAgY29uc3QgYWJzdHJhY3RSZWYgPSB2YWxpZEFic3RyYWN0UmVmcy5maW5kKHJlZiA9PiByZWYuYWJzdHJhY3QgPT09IGVsZW1lbnQpO1xuICAgICAgICBpZiAoQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoZWxlbWVudCkgJiYgYWJzdHJhY3RSZWYpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gZ2V0UmVsYXRpdmVTdGFydEVuZEJ5QWJzdHJhY3RSZWYoYWJzdHJhY3RSZWYsIG5ld1NlbGVjdGVkRWxlbWVudHMpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgIC4uLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgcG9pbnRzLFxuICAgICAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgICAgIGVuZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV3RWxlbWVudCA9IHsgLi4uZWxlbWVudCwgcG9pbnRzIH0gYXMgTWluZEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld0VsZW1lbnQuc3RhcnQ7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld0VsZW1lbnQuZW5kO1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5ld0VsZW1lbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHBvaW50czogcG9pbnRzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IHNldE1pbmRDbGlwYm9hcmREYXRhID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwsIGVsZW1lbnRzOiBNaW5kRWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3QgdGV4dCA9IGVsZW1lbnRzLnJlZHVjZSgoc3RyaW5nLCBjdXJyZW50Tm9kZSkgPT4ge1xuICAgICAgICByZXR1cm4gc3RyaW5nICsgZXh0cmFjdE5vZGVzVGV4dChjdXJyZW50Tm9kZSk7XG4gICAgfSwgJycpO1xuICAgIHNldENsaXBib2FyZERhdGEoZGF0YSwgZWxlbWVudHMpO1xuICAgIHNldENsaXBib2FyZERhdGFCeVRleHQoZGF0YSwgdGV4dCk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0Q2xpcGJvYXJkRGF0YSA9IChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgdGFyZ2V0UG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgbGV0IG5ld0VsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXRoOiBQYXRoO1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBsZXQgbmV3RUxlbWVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG5cbiAgICBjb25zdCBoYXNUYXJnZXRQYXJlbnQgPSBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMTtcbiAgICBjb25zdCB0YXJnZXRQYXJlbnQgPSBzZWxlY3RlZEVsZW1lbnRzWzBdO1xuICAgIGNvbnN0IHRhcmdldFBhcmVudFBhdGggPSB0YXJnZXRQYXJlbnQgJiYgUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgdGFyZ2V0UGFyZW50KTtcbiAgICBjb25zdCBub25BYnN0cmFjdENoaWxkcmVuTGVuZ3RoID0gdGFyZ2V0UGFyZW50ICYmIGdldE5vbkFic3RyYWN0Q2hpbGRyZW4odGFyZ2V0UGFyZW50KS5sZW5ndGg7XG5cbiAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtOiBQbGFpdEVsZW1lbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgbmV3RWxlbWVudCA9IGNvcHlOZXdOb2RlKGl0ZW0gYXMgTWluZEVsZW1lbnQpO1xuICAgICAgICBpZiAoaGFzVGFyZ2V0UGFyZW50KSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5pc1Jvb3QpIHtcbiAgICAgICAgICAgICAgICBuZXdFbGVtZW50ID0gYWRqdXN0Um9vdFRvTm9kZShib2FyZCwgbmV3RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3R5bGVzID0gUGxhaXRNaW5kLmlzTWluZCh0YXJnZXRQYXJlbnQpID8geyBmb250RmFtaWx5OiBCUkFOQ0hfRk9OVF9GQU1JTFkgfSA6IHsgZm9udEZhbWlseTogREVGQVVMVF9GT05UX0ZBTUlMWSB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZ2V0VGV4dFNpemUoYm9hcmQsIG5ld0VsZW1lbnQuZGF0YS50b3BpYywgVE9QSUNfREVGQVVMVF9NQVhfV09SRF9DT1VOVCwge1xuICAgICAgICAgICAgICAgICAgICAuLi5zdHlsZXMsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBuZXdFbGVtZW50Lm1hbnVhbFdpZHRoID8gbmV3RWxlbWVudC5tYW51YWxXaWR0aCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG5ld0VsZW1lbnQud2lkdGggPSBNYXRoLm1heCh3aWR0aCwgUk9PVF9UT1BJQ19GT05UX1NJWkUpO1xuICAgICAgICAgICAgICAgIG5ld0VsZW1lbnQuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaGFuZGxlIGFic3RyYWN0IHN0YXJ0IGFuZCBlbmRcbiAgICAgICAgICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChuZXdFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIG5ld0VsZW1lbnQuc3RhcnQgPSBuZXdFbGVtZW50LnN0YXJ0ICsgbm9uQWJzdHJhY3RDaGlsZHJlbkxlbmd0aDtcbiAgICAgICAgICAgICAgICBuZXdFbGVtZW50LmVuZCA9IG5ld0VsZW1lbnQuZW5kICsgbm9uQWJzdHJhY3RDaGlsZHJlbkxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhdGggPSBbLi4udGFyZ2V0UGFyZW50UGF0aCwgbm9uQWJzdHJhY3RDaGlsZHJlbkxlbmd0aCArIGluZGV4XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50OiBQb2ludCA9IFt0YXJnZXRQb2ludFswXSArIGl0ZW0ucG9pbnRzIVswXVswXSwgdGFyZ2V0UG9pbnRbMV0gKyBpdGVtLnBvaW50cyFbMF1bMV1dO1xuICAgICAgICAgICAgbmV3RWxlbWVudC5wb2ludHMgPSBbcG9pbnRdO1xuXG4gICAgICAgICAgICBpZiAoQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICBuZXdFbGVtZW50ID0gYWRqdXN0QWJzdHJhY3RUb05vZGUobmV3RWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXRlbS5pc1Jvb3QpIHtcbiAgICAgICAgICAgICAgICBuZXdFbGVtZW50ID0gYWRqdXN0Tm9kZVRvUm9vdChib2FyZCwgbmV3RWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGggPSBbYm9hcmQuY2hpbGRyZW4ubGVuZ3RoXTtcbiAgICAgICAgfVxuICAgICAgICBuZXdFTGVtZW50cy5wdXNoKG5ld0VsZW1lbnQpO1xuICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xuICAgICAgICByZXR1cm47XG4gICAgfSk7XG4gICAgVHJhbnNmb3Jtcy5hZGRTZWxlY3Rpb25XaXRoVGVtcG9yYXJ5RWxlbWVudHMoYm9hcmQsIG5ld0VMZW1lbnRzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRDbGlwYm9hcmRUZXh0ID0gKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgdGFyZ2V0UGFyZW50OiBQbGFpdEVsZW1lbnQsIHRleHQ6IHN0cmluZyB8IEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzdHlsZXMgPSBQbGFpdE1pbmQuaXNNaW5kKHRhcmdldFBhcmVudCkgPyB7IGZvbnRGYW1pbHk6IEJSQU5DSF9GT05UX0ZBTUlMWSB9IDogeyBmb250RmFtaWx5OiBERUZBVUxUX0ZPTlRfRkFNSUxZIH07XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRUZXh0U2l6ZShib2FyZCwgdGV4dCwgVE9QSUNfREVGQVVMVF9NQVhfV09SRF9DT1VOVCwgc3R5bGVzKTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gY3JlYXRlTWluZEVsZW1lbnQodGV4dCwgTWF0aC5tYXgod2lkdGgsIGdldEZvbnRTaXplQnlTbGF0ZUVsZW1lbnQodGV4dCkpLCBoZWlnaHQsIHt9KTtcbiAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIGZpbmROZXdDaGlsZE5vZGVQYXRoKGJvYXJkLCB0YXJnZXRQYXJlbnQpKTtcbiAgICBUcmFuc2Zvcm1zLmFkZFNlbGVjdGlvbldpdGhUZW1wb3JhcnlFbGVtZW50cyhib2FyZCwgW25ld0VsZW1lbnRdKTtcbn07XG4iXX0=
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvY2xpcGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBUSxVQUFVLEVBQXVCLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU5QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsZ0JBQStCLEVBQUUsVUFBaUIsRUFBRSxFQUFFO0lBQ3hHLElBQUksTUFBTSxHQUFrQixFQUFFLENBQUM7SUFFL0Is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TUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQXFCLEVBQUUsWUFBMEIsRUFBRSxJQUFzQixFQUFFLEVBQUU7SUFDN0csTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztJQUN6SCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pGLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDcEYsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDdEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U2VsZWN0ZWRFbGVtZW50cywgUGF0aCwgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBQb2ludCwgVHJhbnNmb3JtcyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50LCBQbGFpdE1pbmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNvcHlOZXdOb2RlIH0gZnJvbSAnLi9taW5kJztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4vcG9zaXRpb24vbm9kZSc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUsIGdldE5vbkFic3RyYWN0Q2hpbGRyZW4gfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBnZXRSZWxhdGl2ZVN0YXJ0RW5kQnlBYnN0cmFjdFJlZiwgZ2V0T3ZlcmFsbEFic3RyYWN0cywgZ2V0VmFsaWRBYnN0cmFjdFJlZnMgfSBmcm9tICcuL2Fic3RyYWN0L2NvbW1vbic7XG5pbXBvcnQgeyBjcmVhdGVNaW5kRWxlbWVudCB9IGZyb20gJy4vbm9kZS9jcmVhdGUtbm9kZSc7XG5pbXBvcnQgeyBhZGp1c3RBYnN0cmFjdFRvTm9kZSwgYWRqdXN0Tm9kZVRvUm9vdCwgYWRqdXN0Um9vdFRvTm9kZSB9IGZyb20gJy4vbm9kZS9hZGp1c3Qtbm9kZSc7XG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgZ2V0VGV4dFNpemUgfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBCUkFOQ0hfRk9OVF9GQU1JTFksIERFRkFVTFRfRk9OVF9GQU1JTFksIFJPT1RfVE9QSUNfRk9OVF9TSVpFLCBUT1BJQ19ERUZBVUxUX01BWF9XT1JEX0NPVU5UIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtdG9waWMtc3R5bGUnO1xuaW1wb3J0IHsgZmluZE5ld0NoaWxkTm9kZVBhdGggfSBmcm9tICcuL3BhdGgnO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5pbXBvcnQgeyBnZXRGb250U2l6ZUJ5U2xhdGVFbGVtZW50IH0gZnJvbSAnLi9zcGFjZS9ub2RlLXNwYWNlJztcblxuZXhwb3J0IGNvbnN0IGJ1aWxkQ2xpcGJvYXJkRGF0YSA9IChib2FyZDogUGxhaXRCb2FyZCwgc2VsZWN0ZWRFbGVtZW50czogTWluZEVsZW1lbnRbXSwgc3RhcnRQb2ludDogUG9pbnQpID0+IHtcbiAgICBsZXQgcmVzdWx0OiBNaW5kRWxlbWVudFtdID0gW107XG5cbiAgICAvLyBnZXQgb3ZlcmFsbCBhYnN0cmFjdFxuICAgIGNvbnN0IG92ZXJhbGxBYnN0cmFjdHMgPSBnZXRPdmVyYWxsQWJzdHJhY3RzKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnRzKSBhcyBNaW5kRWxlbWVudFtdO1xuICAgIC8vIGdldCB2YWxpZCBhYnN0cmFjdCByZWZzXG4gICAgY29uc3QgdmFsaWRBYnN0cmFjdFJlZnMgPSBnZXRWYWxpZEFic3RyYWN0UmVmcyhib2FyZCwgWy4uLnNlbGVjdGVkRWxlbWVudHMsIC4uLm92ZXJhbGxBYnN0cmFjdHNdKTtcblxuICAgIC8vIGtlZXAgY29ycmVjdCBvcmRlclxuICAgIGNvbnN0IG5ld1NlbGVjdGVkRWxlbWVudHMgPSBzZWxlY3RlZEVsZW1lbnRzLmZpbHRlcih2YWx1ZSA9PiAhdmFsaWRBYnN0cmFjdFJlZnMuZmluZChyZWYgPT4gcmVmLmFic3RyYWN0ID09PSB2YWx1ZSkpO1xuICAgIG5ld1NlbGVjdGVkRWxlbWVudHMucHVzaCguLi52YWxpZEFic3RyYWN0UmVmcy5tYXAodmFsdWUgPT4gdmFsdWUuYWJzdHJhY3QpKTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTWluZE5vZGVzID0gbmV3U2VsZWN0ZWRFbGVtZW50cy5tYXAodmFsdWUgPT4gTWluZEVsZW1lbnQuZ2V0Tm9kZSh2YWx1ZSkpO1xuICAgIG5ld1NlbGVjdGVkRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgLy8gaGFuZGxlIHJlbGF0aXZlIGxvY2F0aW9uXG4gICAgICAgIGNvbnN0IG5vZGVSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeU5vZGUoc2VsZWN0ZWRNaW5kTm9kZXNbaW5kZXhdKTtcbiAgICAgICAgY29uc3QgcG9pbnRzID0gW1tub2RlUmVjdGFuZ2xlLnggLSBzdGFydFBvaW50WzBdLCBub2RlUmVjdGFuZ2xlLnkgLSBzdGFydFBvaW50WzFdXV0gYXMgUG9pbnRbXTtcblxuICAgICAgICAvLyBoYW5kbGUgaW52YWxpZCBhYnN0cmFjdFxuICAgICAgICBjb25zdCBhYnN0cmFjdFJlZiA9IHZhbGlkQWJzdHJhY3RSZWZzLmZpbmQocmVmID0+IHJlZi5hYnN0cmFjdCA9PT0gZWxlbWVudCk7XG4gICAgICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSAmJiBhYnN0cmFjdFJlZikge1xuICAgICAgICAgICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBnZXRSZWxhdGl2ZVN0YXJ0RW5kQnlBYnN0cmFjdFJlZihhYnN0cmFjdFJlZiwgbmV3U2VsZWN0ZWRFbGVtZW50cyk7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgICAgICAgICBwb2ludHMsXG4gICAgICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICAgICAgZW5kXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIGxldCBuZXdFbGVtZW50ID0geyAuLi5lbGVtZW50LCBwb2ludHMgfSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgICAgICAgICBkZWxldGUgbmV3RWxlbWVudC5zdGFydDtcbiAgICAgICAgICAgICAgICBkZWxldGUgbmV3RWxlbWVudC5lbmQ7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobmV3RWxlbWVudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzOiBwb2ludHNcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0Q2xpcGJvYXJkRGF0YSA9IChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgdGFyZ2V0UG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgbGV0IG5ld0VsZW1lbnQ6IE1pbmRFbGVtZW50LCBwYXRoOiBQYXRoO1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBsZXQgbmV3RUxlbWVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG5cbiAgICBjb25zdCBoYXNUYXJnZXRQYXJlbnQgPSBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMTtcbiAgICBjb25zdCB0YXJnZXRQYXJlbnQgPSBzZWxlY3RlZEVsZW1lbnRzWzBdO1xuICAgIGNvbnN0IHRhcmdldFBhcmVudFBhdGggPSB0YXJnZXRQYXJlbnQgJiYgUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgdGFyZ2V0UGFyZW50KTtcbiAgICBjb25zdCBub25BYnN0cmFjdENoaWxkcmVuTGVuZ3RoID0gdGFyZ2V0UGFyZW50ICYmIGdldE5vbkFic3RyYWN0Q2hpbGRyZW4odGFyZ2V0UGFyZW50KS5sZW5ndGg7XG5cbiAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtOiBQbGFpdEVsZW1lbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgbmV3RWxlbWVudCA9IGNvcHlOZXdOb2RlKGl0ZW0gYXMgTWluZEVsZW1lbnQpO1xuICAgICAgICBpZiAoaGFzVGFyZ2V0UGFyZW50KSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5pc1Jvb3QpIHtcbiAgICAgICAgICAgICAgICBuZXdFbGVtZW50ID0gYWRqdXN0Um9vdFRvTm9kZShib2FyZCwgbmV3RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3R5bGVzID0gUGxhaXRNaW5kLmlzTWluZCh0YXJnZXRQYXJlbnQpID8geyBmb250RmFtaWx5OiBCUkFOQ0hfRk9OVF9GQU1JTFkgfSA6IHsgZm9udEZhbWlseTogREVGQVVMVF9GT05UX0ZBTUlMWSB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZ2V0VGV4dFNpemUoYm9hcmQsIG5ld0VsZW1lbnQuZGF0YS50b3BpYywgVE9QSUNfREVGQVVMVF9NQVhfV09SRF9DT1VOVCwge1xuICAgICAgICAgICAgICAgICAgICAuLi5zdHlsZXMsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBuZXdFbGVtZW50Lm1hbnVhbFdpZHRoID8gbmV3RWxlbWVudC5tYW51YWxXaWR0aCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG5ld0VsZW1lbnQud2lkdGggPSBNYXRoLm1heCh3aWR0aCwgUk9PVF9UT1BJQ19GT05UX1NJWkUpO1xuICAgICAgICAgICAgICAgIG5ld0VsZW1lbnQuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaGFuZGxlIGFic3RyYWN0IHN0YXJ0IGFuZCBlbmRcbiAgICAgICAgICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChuZXdFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIG5ld0VsZW1lbnQuc3RhcnQgPSBuZXdFbGVtZW50LnN0YXJ0ICsgbm9uQWJzdHJhY3RDaGlsZHJlbkxlbmd0aDtcbiAgICAgICAgICAgICAgICBuZXdFbGVtZW50LmVuZCA9IG5ld0VsZW1lbnQuZW5kICsgbm9uQWJzdHJhY3RDaGlsZHJlbkxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhdGggPSBbLi4udGFyZ2V0UGFyZW50UGF0aCwgbm9uQWJzdHJhY3RDaGlsZHJlbkxlbmd0aCArIGluZGV4XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50OiBQb2ludCA9IFt0YXJnZXRQb2ludFswXSArIGl0ZW0ucG9pbnRzIVswXVswXSwgdGFyZ2V0UG9pbnRbMV0gKyBpdGVtLnBvaW50cyFbMF1bMV1dO1xuICAgICAgICAgICAgbmV3RWxlbWVudC5wb2ludHMgPSBbcG9pbnRdO1xuXG4gICAgICAgICAgICBpZiAoQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICBuZXdFbGVtZW50ID0gYWRqdXN0QWJzdHJhY3RUb05vZGUobmV3RWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXRlbS5pc1Jvb3QpIHtcbiAgICAgICAgICAgICAgICBuZXdFbGVtZW50ID0gYWRqdXN0Tm9kZVRvUm9vdChib2FyZCwgbmV3RWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGggPSBbYm9hcmQuY2hpbGRyZW4ubGVuZ3RoXTtcbiAgICAgICAgfVxuICAgICAgICBuZXdFTGVtZW50cy5wdXNoKG5ld0VsZW1lbnQpO1xuICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xuICAgICAgICByZXR1cm47XG4gICAgfSk7XG4gICAgVHJhbnNmb3Jtcy5hZGRTZWxlY3Rpb25XaXRoVGVtcG9yYXJ5RWxlbWVudHMoYm9hcmQsIG5ld0VMZW1lbnRzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRDbGlwYm9hcmRUZXh0ID0gKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgdGFyZ2V0UGFyZW50OiBQbGFpdEVsZW1lbnQsIHRleHQ6IHN0cmluZyB8IEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzdHlsZXMgPSBQbGFpdE1pbmQuaXNNaW5kKHRhcmdldFBhcmVudCkgPyB7IGZvbnRGYW1pbHk6IEJSQU5DSF9GT05UX0ZBTUlMWSB9IDogeyBmb250RmFtaWx5OiBERUZBVUxUX0ZPTlRfRkFNSUxZIH07XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRUZXh0U2l6ZShib2FyZCwgdGV4dCwgVE9QSUNfREVGQVVMVF9NQVhfV09SRF9DT1VOVCwgc3R5bGVzKTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gY3JlYXRlTWluZEVsZW1lbnQodGV4dCwgTWF0aC5tYXgod2lkdGgsIGdldEZvbnRTaXplQnlTbGF0ZUVsZW1lbnQodGV4dCkpLCBoZWlnaHQsIHt9KTtcbiAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIGZpbmROZXdDaGlsZE5vZGVQYXRoKGJvYXJkLCB0YXJnZXRQYXJlbnQpKTtcbiAgICBUcmFuc2Zvcm1zLmFkZFNlbGVjdGlvbldpdGhUZW1wb3JhcnlFbGVtZW50cyhib2FyZCwgW25ld0VsZW1lbnRdKTtcbn07XG4iXX0=
|
package/esm2022/utils/mind.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { addSelectedElement, clearSelectedElement, idCreator, Transforms } from '@plait/core';
|
|
2
|
-
import { Node } from 'slate';
|
|
3
2
|
import { MindElement, PlaitMind } from '../interfaces/element';
|
|
4
3
|
import { TEXT_DEFAULT_HEIGHT } from '@plait/text';
|
|
5
4
|
import { editTopic } from './node/common';
|
|
@@ -48,16 +47,6 @@ export const copyNewNode = (node) => {
|
|
|
48
47
|
}
|
|
49
48
|
return newNode;
|
|
50
49
|
};
|
|
51
|
-
export const extractNodesText = (node) => {
|
|
52
|
-
let str = '';
|
|
53
|
-
if (node) {
|
|
54
|
-
str += Node.string(node.data.topic) + ' ';
|
|
55
|
-
for (const childNode of node.children) {
|
|
56
|
-
str += extractNodesText(childNode);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return str;
|
|
60
|
-
};
|
|
61
50
|
export const insertMindElement = (board, inheritNode, path) => {
|
|
62
51
|
const newNode = {};
|
|
63
52
|
if (!inheritNode.isRoot) {
|
|
@@ -106,4 +95,4 @@ export const getDefaultMindElementFontSize = (board, element) => {
|
|
|
106
95
|
}
|
|
107
96
|
throw new Error('can not find default font-size');
|
|
108
97
|
};
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL21pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBa0MsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQW9CLE1BQU0sb0JBQW9CLENBQUM7QUFHakcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXRGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBb0IsRUFBRSxFQUFFO0lBQ3JELE1BQU0sS0FBSyxHQUFXLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBUyxFQUFFLENBQWMsRUFBRSxFQUFFO1FBQ3hFLE9BQU8sQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNOLE9BQU8sS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0FBQzNDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQW1CLEVBQUUsS0FBa0IsRUFBRSxFQUFFO0lBQ3RFLElBQUksTUFBTSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsT0FB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QztZQUM1QixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlDO2FBQU07WUFDSCxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekQ7S0FDSjtJQUNELE9BQU8sRUFBRSxjQUFjLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQ3JGLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixPQUFPLG9CQUFvQixDQUFDO0tBQy9CO0lBQ0QsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRTtRQUMzQyxPQUFPLGVBQWUsQ0FBQztLQUMxQjtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRTZWxlY3RlZEVsZW1lbnQsIGNsZWFyU2VsZWN0ZWRFbGVtZW50LCBpZENyZWF0b3IsIFBhdGgsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgVHJhbnNmb3JtcyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCwgUGxhaXRNaW5kIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFRFWFRfREVGQVVMVF9IRUlHSFQgfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBlZGl0VG9waWMgfSBmcm9tICcuL25vZGUvY29tbW9uJztcbmltcG9ydCB7IGNyZWF0ZU1pbmRFbGVtZW50LCBJTkhFUklUX0FUVFJJQlVURV9LRVlTLCBJbmhlcml0QXR0cmlidXRlIH0gZnJvbSAnLi9ub2RlL2NyZWF0ZS1ub2RlJztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuaW1wb3J0IHsgUk9PVF9UT1BJQ19GT05UX1NJWkUsIFRPUElDX0ZPTlRfU0laRSB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXRvcGljLXN0eWxlJztcblxuZXhwb3J0IGNvbnN0IGdldENoaWxkcmVuQ291bnQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBjb3VudDogbnVtYmVyID0gZWxlbWVudC5jaGlsZHJlbi5yZWR1Y2UoKHA6IG51bWJlciwgYzogTWluZEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIHAgKyBnZXRDaGlsZHJlbkNvdW50KGMpO1xuICAgIH0sIDApO1xuICAgIHJldHVybiBjb3VudCArIGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2hpbGRFbGVtZW50ID0gKG9yaWdpbjogTWluZEVsZW1lbnQsIGNoaWxkOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGxldCBwYXJlbnQgPSBNaW5kRWxlbWVudC5maW5kUGFyZW50KGNoaWxkKTtcbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgIGlmIChwYXJlbnQgPT09IG9yaWdpbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gTWluZEVsZW1lbnQuZmluZFBhcmVudChwYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RMZXZlbEVsZW1lbnQgPSAoZWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBsZXQgcmVzdWx0OiBNaW5kRWxlbWVudFtdID0gW107XG4gICAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgaXNDaGlsZCA9IGVsZW1lbnRzLnNvbWUobm9kZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXNDaGlsZEVsZW1lbnQobm9kZSwgZWxlbWVudCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghaXNDaGlsZCkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2hpbGRSaWdodCA9IChub2RlOiBNaW5kTm9kZSwgY2hpbGQ6IE1pbmROb2RlKSA9PiB7XG4gICAgcmV0dXJuIG5vZGUueCA8IGNoaWxkLng7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDaGlsZFVwID0gKG5vZGU6IE1pbmROb2RlLCBjaGlsZDogTWluZE5vZGUpID0+IHtcbiAgICByZXR1cm4gbm9kZS55ID4gY2hpbGQueTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5TmV3Tm9kZSA9IChub2RlOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IG5ld05vZGU6IE1pbmRFbGVtZW50ID0geyAuLi5ub2RlIH07XG4gICAgbmV3Tm9kZS5pZCA9IGlkQ3JlYXRvcigpO1xuICAgIG5ld05vZGUuY2hpbGRyZW4gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgbmV3Tm9kZS5jaGlsZHJlbi5wdXNoKGNvcHlOZXdOb2RlKGNoaWxkTm9kZSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3Tm9kZTtcbn07XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0Tm9kZXNUZXh0ID0gKG5vZGU6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgbGV0IHN0ciA9ICcnO1xuICAgIGlmIChub2RlKSB7XG4gICAgICAgIHN0ciArPSBOb2RlLnN0cmluZyhub2RlLmRhdGEudG9waWMpICsgJyAnO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBzdHIgKz0gZXh0cmFjdE5vZGVzVGV4dChjaGlsZE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBpbmhlcml0Tm9kZTogTWluZEVsZW1lbnQsIHBhdGg6IFBhdGgpID0+IHtcbiAgICBjb25zdCBuZXdOb2RlOiBJbmhlcml0QXR0cmlidXRlID0ge307XG4gICAgaWYgKCFpbmhlcml0Tm9kZS5pc1Jvb3QpIHtcbiAgICAgICAgSU5IRVJJVF9BVFRSSUJVVEVfS0VZUy5mb3JFYWNoKGF0dHIgPT4ge1xuICAgICAgICAgICAgKG5ld05vZGUgYXMgYW55KVthdHRyXSA9IGluaGVyaXROb2RlW2F0dHJdO1xuICAgICAgICB9KTtcbiAgICAgICAgZGVsZXRlIG5ld05vZGUubGF5b3V0O1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBjcmVhdGVNaW5kRWxlbWVudCgnJywgVE9QSUNfRk9OVF9TSVpFLCBURVhUX0RFRkFVTFRfSEVJR0hULCBuZXdOb2RlKTtcblxuICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgbmV3RWxlbWVudCwgcGF0aCk7XG4gICAgY2xlYXJTZWxlY3RlZEVsZW1lbnQoYm9hcmQpO1xuICAgIGFkZFNlbGVjdGVkRWxlbWVudChib2FyZCwgbmV3RWxlbWVudCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRUb3BpYyhuZXdFbGVtZW50KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kTGFzdENoaWxkID0gKGNoaWxkOiBNaW5kTm9kZSkgPT4ge1xuICAgIGxldCByZXN1bHQgPSBjaGlsZDtcbiAgICB3aGlsZSAocmVzdWx0LmNoaWxkcmVuLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQuY2hpbGRyZW5bcmVzdWx0LmNoaWxkcmVuLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGRpdmlkZUVsZW1lbnRCeVBhcmVudCA9IChlbGVtZW50czogTWluZEVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IGFic3RyYWN0SW5jbHVkZWRHcm91cHMgPSBbXTtcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50czogTWluZEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBNaW5kRWxlbWVudC5nZXRQYXJlbnQoZWxlbWVudHNbaV0pO1xuICAgICAgICBjb25zdCBwYXJlbnRJbmRleCA9IHBhcmVudEVsZW1lbnRzLmluZGV4T2YocGFyZW50KTtcbiAgICAgICAgaWYgKHBhcmVudEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgcGFyZW50RWxlbWVudHMucHVzaChwYXJlbnQpO1xuICAgICAgICAgICAgYWJzdHJhY3RJbmNsdWRlZEdyb3Vwcy5wdXNoKFtlbGVtZW50c1tpXV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWJzdHJhY3RJbmNsdWRlZEdyb3Vwc1twYXJlbnRJbmRleF0ucHVzaChlbGVtZW50c1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgcGFyZW50RWxlbWVudHMsIGFic3RyYWN0SW5jbHVkZWRHcm91cHMgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0TWluZEVsZW1lbnRGb250U2l6ZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gUk9PVF9UT1BJQ19GT05UX1NJWkU7XG4gICAgfVxuICAgIGlmIChNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gVE9QSUNfRk9OVF9TSVpFO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBub3QgZmluZCBkZWZhdWx0IGZvbnQtc2l6ZScpO1xufTtcbiJdfQ==
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL21pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBb0IsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFvQixNQUFNLG9CQUFvQixDQUFDO0FBR2pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtJQUNyRCxNQUFNLEtBQUssR0FBVyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQVMsRUFBRSxDQUFjLEVBQUUsRUFBRTtRQUN4RSxPQUFPLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDTixPQUFPLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFtQixFQUFFLEtBQWtCLEVBQUUsRUFBRTtJQUN0RSxJQUFJLE1BQU0sR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE9BQU8sTUFBTSxFQUFFO1FBQ1gsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFF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O0lBQ0QsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRTtRQUMzQyxPQUFPLGVBQWUsQ0FBQztLQUMxQjtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRTZWxlY3RlZEVsZW1lbnQsIGNsZWFyU2VsZWN0ZWRFbGVtZW50LCBpZENyZWF0b3IsIFBhdGgsIFBsYWl0Qm9hcmQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIFBsYWl0TWluZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBURVhUX0RFRkFVTFRfSEVJR0hUIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgZWRpdFRvcGljIH0gZnJvbSAnLi9ub2RlL2NvbW1vbic7XG5pbXBvcnQgeyBjcmVhdGVNaW5kRWxlbWVudCwgSU5IRVJJVF9BVFRSSUJVVEVfS0VZUywgSW5oZXJpdEF0dHJpYnV0ZSB9IGZyb20gJy4vbm9kZS9jcmVhdGUtbm9kZSc7XG5pbXBvcnQgeyBNaW5kTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IFJPT1RfVE9QSUNfRk9OVF9TSVpFLCBUT1BJQ19GT05UX1NJWkUgfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZS10b3BpYy1zdHlsZSc7XG5cbmV4cG9ydCBjb25zdCBnZXRDaGlsZHJlbkNvdW50ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgY291bnQ6IG51bWJlciA9IGVsZW1lbnQuY2hpbGRyZW4ucmVkdWNlKChwOiBudW1iZXIsIGM6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBwICsgZ2V0Q2hpbGRyZW5Db3VudChjKTtcbiAgICB9LCAwKTtcbiAgICByZXR1cm4gY291bnQgKyBlbGVtZW50LmNoaWxkcmVuLmxlbmd0aDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NoaWxkRWxlbWVudCA9IChvcmlnaW46IE1pbmRFbGVtZW50LCBjaGlsZDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBsZXQgcGFyZW50ID0gTWluZEVsZW1lbnQuZmluZFBhcmVudChjaGlsZCk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgICBpZiAocGFyZW50ID09PSBvcmlnaW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHBhcmVudCA9IE1pbmRFbGVtZW50LmZpbmRQYXJlbnQocGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpcnN0TGV2ZWxFbGVtZW50ID0gKGVsZW1lbnRzOiBNaW5kRWxlbWVudFtdKSA9PiB7XG4gICAgbGV0IHJlc3VsdDogTWluZEVsZW1lbnRbXSA9IFtdO1xuICAgIGVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGNvbnN0IGlzQ2hpbGQgPSBlbGVtZW50cy5zb21lKG5vZGUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGlzQ2hpbGRFbGVtZW50KG5vZGUsIGVsZW1lbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWlzQ2hpbGQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NoaWxkUmlnaHQgPSAobm9kZTogTWluZE5vZGUsIGNoaWxkOiBNaW5kTm9kZSkgPT4ge1xuICAgIHJldHVybiBub2RlLnggPCBjaGlsZC54O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2hpbGRVcCA9IChub2RlOiBNaW5kTm9kZSwgY2hpbGQ6IE1pbmROb2RlKSA9PiB7XG4gICAgcmV0dXJuIG5vZGUueSA+IGNoaWxkLnk7XG59O1xuXG5leHBvcnQgY29uc3QgY29weU5ld05vZGUgPSAobm9kZTogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBuZXdOb2RlOiBNaW5kRWxlbWVudCA9IHsgLi4ubm9kZSB9O1xuICAgIG5ld05vZGUuaWQgPSBpZENyZWF0b3IoKTtcbiAgICBuZXdOb2RlLmNoaWxkcmVuID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIG5ld05vZGUuY2hpbGRyZW4ucHVzaChjb3B5TmV3Tm9kZShjaGlsZE5vZGUpKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld05vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBpbmhlcml0Tm9kZTogTWluZEVsZW1lbnQsIHBhdGg6IFBhdGgpID0+IHtcbiAgICBjb25zdCBuZXdOb2RlOiBJbmhlcml0QXR0cmlidXRlID0ge307XG4gICAgaWYgKCFpbmhlcml0Tm9kZS5pc1Jvb3QpIHtcbiAgICAgICAgSU5IRVJJVF9BVFRSSUJVVEVfS0VZUy5mb3JFYWNoKGF0dHIgPT4ge1xuICAgICAgICAgICAgKG5ld05vZGUgYXMgYW55KVthdHRyXSA9IGluaGVyaXROb2RlW2F0dHJdO1xuICAgICAgICB9KTtcbiAgICAgICAgZGVsZXRlIG5ld05vZGUubGF5b3V0O1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBjcmVhdGVNaW5kRWxlbWVudCgnJywgVE9QSUNfRk9OVF9TSVpFLCBURVhUX0RFRkFVTFRfSEVJR0hULCBuZXdOb2RlKTtcblxuICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgbmV3RWxlbWVudCwgcGF0aCk7XG4gICAgY2xlYXJTZWxlY3RlZEVsZW1lbnQoYm9hcmQpO1xuICAgIGFkZFNlbGVjdGVkRWxlbWVudChib2FyZCwgbmV3RWxlbWVudCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRUb3BpYyhuZXdFbGVtZW50KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kTGFzdENoaWxkID0gKGNoaWxkOiBNaW5kTm9kZSkgPT4ge1xuICAgIGxldCByZXN1bHQgPSBjaGlsZDtcbiAgICB3aGlsZSAocmVzdWx0LmNoaWxkcmVuLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQuY2hpbGRyZW5bcmVzdWx0LmNoaWxkcmVuLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGRpdmlkZUVsZW1lbnRCeVBhcmVudCA9IChlbGVtZW50czogTWluZEVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IGFic3RyYWN0SW5jbHVkZWRHcm91cHMgPSBbXTtcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50czogTWluZEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBNaW5kRWxlbWVudC5nZXRQYXJlbnQoZWxlbWVudHNbaV0pO1xuICAgICAgICBjb25zdCBwYXJlbnRJbmRleCA9IHBhcmVudEVsZW1lbnRzLmluZGV4T2YocGFyZW50KTtcbiAgICAgICAgaWYgKHBhcmVudEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgcGFyZW50RWxlbWVudHMucHVzaChwYXJlbnQpO1xuICAgICAgICAgICAgYWJzdHJhY3RJbmNsdWRlZEdyb3Vwcy5wdXNoKFtlbGVtZW50c1tpXV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWJzdHJhY3RJbmNsdWRlZEdyb3Vwc1twYXJlbnRJbmRleF0ucHVzaChlbGVtZW50c1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgcGFyZW50RWxlbWVudHMsIGFic3RyYWN0SW5jbHVkZWRHcm91cHMgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0TWluZEVsZW1lbnRGb250U2l6ZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gUk9PVF9UT1BJQ19GT05UX1NJWkU7XG4gICAgfVxuICAgIGlmIChNaW5kRWxlbWVudC5pc01pbmRFbGVtZW50KGJvYXJkLCBlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gVE9QSUNfRk9OVF9TSVpFO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBub3QgZmluZCBkZWZhdWx0IGZvbnQtc2l6ZScpO1xufTtcbiJdfQ==
|