@plait/mind 0.2.0-next.3 → 0.2.0-next.5
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/draw/indented-link.d.ts +2 -2
- package/draw/link/logic-link.d.ts +2 -2
- package/draw/link.d.ts +2 -2
- package/esm2020/draw/indented-link.mjs +7 -6
- package/esm2020/draw/link/logic-link.mjs +7 -6
- package/esm2020/draw/link.mjs +8 -7
- package/esm2020/draw/shape.mjs +3 -3
- package/esm2020/drawer/quick-insert.drawer.mjs +9 -8
- package/esm2020/interfaces/element.mjs +13 -2
- package/esm2020/node.component.mjs +6 -6
- package/esm2020/plugins/emoji/emoji-base.component.mjs +4 -2
- package/esm2020/plugins/emoji/emoji.drawer.mjs +2 -1
- package/esm2020/plugins/with-abstract.mjs +2 -2
- package/esm2020/plugins/with-dnd.mjs +2 -2
- package/esm2020/plugins/with-mind.mjs +3 -2
- package/esm2020/transforms/layout.mjs +8 -2
- package/esm2020/utils/abstract/common.mjs +49 -15
- package/esm2020/utils/abstract/resize.mjs +2 -2
- package/esm2020/utils/clipboard.mjs +10 -3
- package/esm2020/utils/draw-placeholder.mjs +20 -20
- package/esm2020/utils/index.mjs +2 -2
- package/esm2020/utils/mind.mjs +30 -21
- package/esm2020/utils/node-style/branch.mjs +28 -0
- package/esm2020/utils/node-style/index.mjs +3 -0
- package/esm2020/utils/node-style/node.mjs +22 -0
- package/esm2020/utils/path.mjs +3 -3
- package/fesm2015/plait-mind.mjs +1449 -1377
- package/fesm2015/plait-mind.mjs.map +1 -1
- package/fesm2020/plait-mind.mjs +1451 -1379
- package/fesm2020/plait-mind.mjs.map +1 -1
- package/interfaces/element.d.ts +3 -2
- package/package.json +1 -1
- package/plugins/emoji/emoji-base.component.d.ts +3 -1
- package/utils/abstract/common.d.ts +6 -1
- package/utils/abstract/resize.d.ts +1 -1
- package/utils/draw-placeholder.d.ts +8 -8
- package/utils/index.d.ts +1 -1
- package/utils/mind.d.ts +2 -1
- package/utils/node-style/branch.d.ts +7 -0
- package/utils/node-style/index.d.ts +2 -0
- package/utils/node-style/node.d.ts +3 -0
- package/esm2020/utils/colors.mjs +0 -41
- package/utils/colors.d.ts +0 -4
package/draw/indented-link.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { RoughSVG } from 'roughjs/bin/svg';
|
|
2
1
|
import { MindNode } from '../interfaces/node';
|
|
3
|
-
|
|
2
|
+
import { PlaitBoard } from '@plait/core';
|
|
3
|
+
export declare function drawIndentedLink(board: PlaitBoard, node: MindNode, child: MindNode, defaultStroke?: string | null, needDrawUnderline?: boolean): SVGGElement;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { RoughSVG } from 'roughjs/bin/svg';
|
|
2
1
|
import { MindNode } from '../../interfaces/node';
|
|
3
|
-
|
|
2
|
+
import { PlaitBoard } from '@plait/core';
|
|
3
|
+
export declare function drawLogicLink(board: PlaitBoard, node: MindNode, parent: MindNode, isHorizontal: boolean): SVGGElement;
|
package/draw/link.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { RoughSVG } from 'roughjs/bin/svg';
|
|
2
1
|
import { MindNode } from '../interfaces/node';
|
|
3
|
-
|
|
2
|
+
import { PlaitBoard } from '@plait/core';
|
|
3
|
+
export declare function drawLink(board: PlaitBoard, node: MindNode, child: MindNode, defaultStroke?: string | null, isHorizontal?: boolean, needDrawUnderline?: boolean): SVGGElement;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
2
2
|
import { MindNodeShape, STROKE_WIDTH } from '../constants';
|
|
3
|
-
import {
|
|
3
|
+
import { PlaitBoard } from '@plait/core';
|
|
4
4
|
import { getNodeShapeByElement, getRectangleByNode, isChildUp } from '../utils';
|
|
5
5
|
import { MindLayoutType } from '@plait/layouts';
|
|
6
6
|
import { MindQueries } from '../queries';
|
|
7
|
-
|
|
7
|
+
import { getBranchColorByMindElement } from '../utils/node-style/branch';
|
|
8
|
+
export function drawIndentedLink(board, node, child, defaultStroke = null, needDrawUnderline = true) {
|
|
8
9
|
const isUnderlineShap = getNodeShapeByElement(child.origin) === MindNodeShape.underline;
|
|
9
10
|
let beginX, beginY, endX, endY, beginNode = node, endNode = child;
|
|
10
11
|
const beginRectangle = getRectangleByNode(beginNode);
|
|
@@ -16,7 +17,7 @@ export function drawIndentedLink(roughSVG, node, child, defaultStroke = null, ne
|
|
|
16
17
|
//根据位置,设置正负参数
|
|
17
18
|
let plusMinus = isChildUp(node, child) ? (node.left ? [-1, -1] : [1, -1]) : node.left ? [-1, 1] : [1, 1];
|
|
18
19
|
const layout = MindQueries.getCorrectLayoutByElement(node.origin);
|
|
19
|
-
const strokeWidth = child.origin.
|
|
20
|
+
const strokeWidth = child.origin.branchWidth ? child.origin.branchWidth : STROKE_WIDTH;
|
|
20
21
|
if (beginNode.origin.isRoot) {
|
|
21
22
|
if (layout === MindLayoutType.leftBottomIndented || layout === MindLayoutType.rightBottomIndented) {
|
|
22
23
|
beginY += strokeWidth;
|
|
@@ -37,8 +38,8 @@ export function drawIndentedLink(roughSVG, node, child, defaultStroke = null, ne
|
|
|
37
38
|
isUnderlineShap && needDrawUnderline ? [endX + (endNode.width - endNode.hGap * 2) * plusMinus[0], endY] : [endX, endY],
|
|
38
39
|
isUnderlineShap && needDrawUnderline ? [endX + (endNode.width - endNode.hGap * 2) * plusMinus[0], endY] : [endX, endY]
|
|
39
40
|
];
|
|
40
|
-
const stroke = defaultStroke ||
|
|
41
|
+
const stroke = defaultStroke || getBranchColorByMindElement(board, child.origin);
|
|
41
42
|
const points = pointsOnBezierCurves(curve);
|
|
42
|
-
return
|
|
43
|
+
return PlaitBoard.getRoughSVG(board).curve(points, { stroke, strokeWidth });
|
|
43
44
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZW50ZWQtbGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXcvaW5kZW50ZWQtbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekUsTUFBTSxVQUFVLGdCQUFnQixDQUM1QixLQUFpQixFQUNqQixJQUFjLEVBQ2QsS0FBZSxFQUNmLGdCQUErQixJQUFJLEVBQ25DLGlCQUFpQixHQUFHLElBQUk7SUFFeEIsTUFBTSxlQUFlLEdBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBbUIsS0FBSyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQzNHLElBQUksTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FBRyxJQUFJLEVBQ2hCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckQsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENB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QUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQ3RILGVBQWUsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7UUFDdEgsZUFBZSxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztLQUN6SCxDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQUcsYUFBYSxJQUFJLDJCQUEyQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFakYsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUN2RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcG9pbnRzT25CZXppZXJDdXJ2ZXMgfSBmcm9tICdwb2ludHMtb24tY3VydmUnO1xuaW1wb3J0IHsgTWluZE5vZGVTaGFwZSwgU1RST0tFX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0Tm9kZVNoYXBlQnlFbGVtZW50LCBnZXRSZWN0YW5nbGVCeU5vZGUsIGlzQ2hpbGRVcCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IE1pbmRMYXlvdXRUeXBlIH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgTWluZFF1ZXJpZXMgfSBmcm9tICcuLi9xdWVyaWVzJztcbmltcG9ydCB7IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL25vZGUtc3R5bGUvYnJhbmNoJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdJbmRlbnRlZExpbmsoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgbm9kZTogTWluZE5vZGUsXG4gICAgY2hpbGQ6IE1pbmROb2RlLFxuICAgIGRlZmF1bHRTdHJva2U6IHN0cmluZyB8IG51bGwgPSBudWxsLFxuICAgIG5lZWREcmF3VW5kZXJsaW5lID0gdHJ1ZVxuKSB7XG4gICAgY29uc3QgaXNVbmRlcmxpbmVTaGFwID0gKGdldE5vZGVTaGFwZUJ5RWxlbWVudChjaGlsZC5vcmlnaW4pIGFzIE1pbmROb2RlU2hhcGUpID09PSBNaW5kTm9kZVNoYXBlLnVuZGVybGluZTtcbiAgICBsZXQgYmVnaW5YLFxuICAgICAgICBiZWdpblksXG4gICAgICAgIGVuZFgsXG4gICAgICAgIGVuZFksXG4gICAgICAgIGJlZ2luTm9kZSA9IG5vZGUsXG4gICAgICAgIGVuZE5vZGUgPSBjaGlsZDtcbiAgICBjb25zdCBiZWdpblJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5Tm9kZShiZWdpbk5vZGUpO1xuICAgIGNvbnN0IGVuZFJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5Tm9kZShlbmROb2RlKTtcblxuICAgIGJlZ2luWCA9IGJlZ2luTm9kZS54ICsgYmVnaW5Ob2RlLndpZHRoIC8gMjtcbiAgICBiZWdpblkgPSBpc0NoaWxkVXAobm9kZSwgY2hpbGQpID8gYmVnaW5SZWN0YW5nbGUueSA6IGJlZ2luUmVjdGFuZ2xlLnkgKyBiZWdpblJlY3RhbmdsZS5oZWlnaHQ7XG4gICAgZW5kWCA9IG5vZGUubGVmdCA/IGVuZE5vZGUueCArIGVuZE5vZGUuaEdhcCArIGVuZFJlY3RhbmdsZS53aWR0aCA6IGVuZE5vZGUueCArIGVuZE5vZGUuaEdhcDtcbiAgICBlbmRZID0gaXNVbmRlcmxpbmVTaGFwID8gZW5kTm9kZS55ICsgZW5kTm9kZS5oZWlnaHQgLSBlbmROb2RlLnZHYXAgOiBlbmROb2RlLnkgKyBlbmROb2RlLmhlaWdodCAvIDI7XG4gICAgLy/moLnmja7kvY3nva7vvIzorr7nva7mraPotJ/lj4LmlbBcbiAgICBsZXQgcGx1c01pbnVzID0gaXNDaGlsZFVwKG5vZGUsIGNoaWxkKSA/IChub2RlLmxlZnQgPyBbLTEsIC0xXSA6IFsxLCAtMV0pIDogbm9kZS5sZWZ0ID8gWy0xLCAxXSA6IFsxLCAxXTtcbiAgICBjb25zdCBsYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50KG5vZGUub3JpZ2luKTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGNoaWxkLm9yaWdpbi5icmFuY2hXaWR0aCA/IGNoaWxkLm9yaWdpbi5icmFuY2hXaWR0aCA6IFNUUk9LRV9XSURUSDtcbiAgICBpZiAoYmVnaW5Ob2RlLm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgaWYgKGxheW91dCA9PT0gTWluZExheW91dFR5cGUubGVmdEJvdHRvbUluZGVudGVkIHx8IGxheW91dCA9PT0gTWluZExheW91dFR5cGUucmlnaHRCb3R0b21JbmRlbnRlZCkge1xuICAgICAgICAgICAgYmVnaW5ZICs9IHN0cm9rZVdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLmxlZnRUb3BJbmRlbnRlZCB8fCBsYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLnJpZ2h0VG9wSW5kZW50ZWQpIHtcbiAgICAgICAgICAgIGJlZ2luWSAtPSBzdHJva2VXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgY3VydmU6IFBvaW50W10gPSBbXG4gICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgIFtiZWdpblgsIGVuZFkgLSAoZW5kTm9kZS5oR2FwICogMyAqIHBsdXNNaW51c1sxXSkgLyA1XSxcbiAgICAgICAgW2JlZ2luWCwgZW5kWSAtIChlbmROb2RlLmhHYXAgKiBwbHVzTWludXNbMV0pIC8gNV0sXG4gICAgICAgIFtiZWdpblggKyAoZW5kTm9kZS5oR2FwICogcGx1c01pbnVzWzBdKSAvIDQsIGVuZFldLFxuICAgICAgICBbYmVnaW5YICsgKGVuZE5vZGUuaEdhcCAqIHBsdXNNaW51c1swXSAqIDMpIC8gNSwgZW5kWV0sXG4gICAgICAgIGlzVW5kZXJsaW5lU2hhcCAmJiBuZWVkRHJhd1VuZGVybGluZSA/IFtlbmRYICsgKGVuZE5vZGUud2lkdGggLSBlbmROb2RlLmhHYXAgKiAyKSAqIHBsdXNNaW51c1swXSwgZW5kWV0gOiBbZW5kWCwgZW5kWV0sXG4gICAgICAgIGlzVW5kZXJsaW5lU2hhcCAmJiBuZWVkRHJhd1VuZGVybGluZSA/IFtlbmRYICsgKGVuZE5vZGUud2lkdGggLSBlbmROb2RlLmhHYXAgKiAyKSAqIHBsdXNNaW51c1swXSwgZW5kWV0gOiBbZW5kWCwgZW5kWV0sXG4gICAgICAgIGlzVW5kZXJsaW5lU2hhcCAmJiBuZWVkRHJhd1VuZGVybGluZSA/IFtlbmRYICsgKGVuZE5vZGUud2lkdGggLSBlbmROb2RlLmhHYXAgKiAyKSAqIHBsdXNNaW51c1swXSwgZW5kWV0gOiBbZW5kWCwgZW5kWV1cbiAgICBdO1xuXG4gICAgY29uc3Qgc3Ryb2tlID0gZGVmYXVsdFN0cm9rZSB8fCBnZXRCcmFuY2hDb2xvckJ5TWluZEVsZW1lbnQoYm9hcmQsIGNoaWxkLm9yaWdpbik7XG5cbiAgICBjb25zdCBwb2ludHMgPSBwb2ludHNPbkJlemllckN1cnZlcyhjdXJ2ZSk7XG4gICAgcmV0dXJuIFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLmN1cnZlKHBvaW50cyBhcyBhbnksIHsgc3Ryb2tlLCBzdHJva2VXaWR0aCB9KTtcbn1cbiJdfQ==
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
2
2
|
import { MindNodeShape, STROKE_WIDTH } from '../../constants';
|
|
3
|
-
import {
|
|
3
|
+
import { PlaitBoard } from '@plait/core';
|
|
4
4
|
import { getRectangleByNode } from '../../utils';
|
|
5
5
|
import { getLayoutDirection, getPointByPlacement, movePoint, transformPlacement } from '../../utils/point-placement';
|
|
6
6
|
import { HorizontalPlacement, VerticalPlacement } from '../../interfaces/types';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
7
|
+
import { getBranchColorByMindElement } from '../../utils/node-style/branch';
|
|
8
|
+
export function drawLogicLink(board, node, parent, isHorizontal) {
|
|
9
|
+
const branchColor = getBranchColorByMindElement(board, node.origin);
|
|
10
|
+
const strokeWidth = node.origin.branchWidth ? node.origin.branchWidth : STROKE_WIDTH;
|
|
10
11
|
const hasStraightLine = !parent.origin.isRoot;
|
|
11
12
|
const hasUnderlineShape = node.origin.shape === MindNodeShape.underline;
|
|
12
13
|
const hasUnderlineShapeOfParent = parent.origin.shape === MindNodeShape.underline;
|
|
@@ -46,6 +47,6 @@ export function drawLogicLink(roughSVG, node, parent, isHorizontal) {
|
|
|
46
47
|
const underlineEnd = movePoint(endPoint, nodeClient.width, linkDirection);
|
|
47
48
|
const underline = hasUnderlineShape && isHorizontal ? [underlineEnd, underlineEnd, underlineEnd] : [];
|
|
48
49
|
const points = pointsOnBezierCurves([...straightLine, ...curve, ...underline]);
|
|
49
|
-
return
|
|
50
|
+
return PlaitBoard.getRoughSVG(board).curve(points, { stroke: branchColor, strokeWidth });
|
|
50
51
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naWMtbGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXcvbGluay9sb2dpYy1saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JILE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWlCLEVBQUUsSUFBYyxFQUFFLE1BQWdCLEVBQUUsWUFBcUI7SUFDcEcsTUFBTSxXQUFXLEdBQUcsMkJBQTJCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNyRixNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzlDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUN4RSxNQUFNLHlCQUF5QixH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V0FBVyxFQUFFLENBQUMsQ0FBQztBQUNwRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcG9pbnRzT25CZXppZXJDdXJ2ZXMgfSBmcm9tICdwb2ludHMtb24tY3VydmUnO1xuaW1wb3J0IHsgTWluZE5vZGVTaGFwZSwgU1RST0tFX1dJRFRIIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgZ2V0TGF5b3V0RGlyZWN0aW9uLCBnZXRQb2ludEJ5UGxhY2VtZW50LCBtb3ZlUG9pbnQsIHRyYW5zZm9ybVBsYWNlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvaW50LXBsYWNlbWVudCc7XG5pbXBvcnQgeyBIb3Jpem9udGFsUGxhY2VtZW50LCBQb2ludFBsYWNlbWVudCwgVmVydGljYWxQbGFjZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3R5cGVzJztcbmltcG9ydCB7IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL25vZGUtc3R5bGUvYnJhbmNoJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdMb2dpY0xpbmsoYm9hcmQ6IFBsYWl0Qm9hcmQsIG5vZGU6IE1pbmROb2RlLCBwYXJlbnQ6IE1pbmROb2RlLCBpc0hvcml6b250YWw6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBicmFuY2hDb2xvciA9IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudChib2FyZCwgbm9kZS5vcmlnaW4pO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gbm9kZS5vcmlnaW4uYnJhbmNoV2lkdGggPyBub2RlLm9yaWdpbi5icmFuY2hXaWR0aCA6IFNUUk9LRV9XSURUSDtcbiAgICBjb25zdCBoYXNTdHJhaWdodExpbmUgPSAhcGFyZW50Lm9yaWdpbi5pc1Jvb3Q7XG4gICAgY29uc3QgaGFzVW5kZXJsaW5lU2hhcGUgPSBub2RlLm9yaWdpbi5zaGFwZSA9PT0gTWluZE5vZGVTaGFwZS51bmRlcmxpbmU7XG4gICAgY29uc3QgaGFzVW5kZXJsaW5lU2hhcGVPZlBhcmVudCA9IHBhcmVudC5vcmlnaW4uc2hhcGUgPT09IE1pbmROb2RlU2hhcGUudW5kZXJsaW5lO1xuICAgIGNvbnN0IG5vZGVDbGllbnQgPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG4gICAgY29uc3QgcGFyZW50Q2xpZW50ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKHBhcmVudCk7XG4gICAgY29uc3QgbGlua0RpcmVjdGlvbiA9IGdldExheW91dERpcmVjdGlvbihub2RlLCBpc0hvcml6b250YWwpO1xuXG4gICAgLy8g4pGgIGVuc3VyZSBiZWdpbiBwbGFjZW1lbnQgYW5kIGVuZCBwbGFjZW1lbnRcbiAgICAvLyBiZWdpbiBwbGFjZW1lbnQgcmVwcmVzZW50IHBhcmVudCBjb25uZWN0b3IgcG9zaXRpb24gYW5kIGVuZCBwbGFjZW1lbnQgcmVwcmVzZW50IGNoaWxkIGNvbm5lY3RvclxuICAgIGNvbnN0IGJlZ2luUGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LnJpZ2h0LCBWZXJ0aWNhbFBsYWNlbWVudC5taWRkbGVdO1xuICAgIGNvbnN0IGVuZFBsYWNlbWVudDogUG9pbnRQbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5sZWZ0LCBWZXJ0aWNhbFBsYWNlbWVudC5taWRkbGVdO1xuXG4gICAgdHJhbnNmb3JtUGxhY2VtZW50KGJlZ2luUGxhY2VtZW50LCBsaW5rRGlyZWN0aW9uKTtcbiAgICB0cmFuc2Zvcm1QbGFjZW1lbnQoZW5kUGxhY2VtZW50LCBsaW5rRGlyZWN0aW9uKTtcblxuICAgIC8vIHVuZGVybGluZSBzaGFwZSBhbmQgaG9yaXpvbnRhbFxuICAgIGlmIChpc0hvcml6b250YWwgJiYgaGFzVW5kZXJsaW5lU2hhcGVPZlBhcmVudCAmJiAhcGFyZW50Lm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgYmVnaW5QbGFjZW1lbnRbMV0gPSBWZXJ0aWNhbFBsYWNlbWVudC5ib3R0b207XG4gICAgfVxuICAgIGlmIChpc0hvcml6b250YWwgJiYgaGFzVW5kZXJsaW5lU2hhcGUpIHtcbiAgICAgICAgZW5kUGxhY2VtZW50WzFdID0gVmVydGljYWxQbGFjZW1lbnQuYm90dG9tO1xuICAgIH1cblxuICAgIGxldCBiZWdpblBvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChwYXJlbnRDbGllbnQsIGJlZ2luUGxhY2VtZW50KTtcbiAgICBsZXQgZW5kUG9pbnQgPSBnZXRQb2ludEJ5UGxhY2VtZW50KG5vZGVDbGllbnQsIGVuZFBsYWNlbWVudCk7XG5cbiAgICAvLyDikaEg56Gu5a6a5Ye45Ye655u057q/77yM5LuO6LW35aeL54K55byA5aeL55S75LiA5p2h55u057q/77yM5LuO55u057q/55qE57uT5p2f5L2N572u57uY5Yi25puy57q/77yM5L+d6K+B5pS26LW35Zu+5qCH5Y+v5Lul5a6M576O6KaG55uW6LW35aeL6L+e57q/77yM5qC56IqC54K55LiN6ZyA6KaB6L+Z5p2h55u057q/XG4gICAgLy8g57uY5Yi26LSd5aGe5bCU5puy57q/6KaB5rGC77yM6ZyA6KaB5aKe5Yqg5LiJ5Liq54K577yM5q2j5bi45Lik5Liq54K55bCx5Y+v5Lul56Gu5a6a6L+Z5p2h55u057q/XG4gICAgY29uc3Qgc3RyYWlnaHRMaW5lRGlzdGFuY2UgPSA4O1xuICAgIGNvbnN0IGJlZ2luUG9pbnQyID0gaGFzU3RyYWlnaHRMaW5lID8gbW92ZVBvaW50KGJlZ2luUG9pbnQsIHN0cmFpZ2h0TGluZURpc3RhbmNlLCBsaW5rRGlyZWN0aW9uKSA6IGJlZ2luUG9pbnQ7XG4gICAgbGV0IHN0cmFpZ2h0TGluZTogUG9pbnRbXSA9IGhhc1N0cmFpZ2h0TGluZSA/IFtiZWdpblBvaW50LCBiZWdpblBvaW50MiwgYmVnaW5Qb2ludDJdIDogW107XG5cbiAgICAvLyDikaIg56Gu5a6a5puy57q/XG4gICAgY29uc3QgYmVnaW5CdWZmZXJEaXN0YW5jZSA9IChwYXJlbnQuaEdhcCArIG5vZGUuaEdhcCkgLyAzO1xuICAgIGNvbnN0IGVuZEJ1ZmZlckRpc3RhbmNlID0gLShwYXJlbnQuaEdhcCArIG5vZGUuaEdhcCkgLyAyLjQ7XG4gICAgbGV0IGN1cnZlOiBQb2ludFtdID0gW1xuICAgICAgICBiZWdpblBvaW50MixcbiAgICAgICAgbW92ZVBvaW50KGJlZ2luUG9pbnQyLCBiZWdpbkJ1ZmZlckRpc3RhbmNlLCBsaW5rRGlyZWN0aW9uKSxcbiAgICAgICAgbW92ZVBvaW50KGVuZFBvaW50LCBlbmRCdWZmZXJEaXN0YW5jZSwgbGlua0RpcmVjdGlvbiksXG4gICAgICAgIGVuZFBvaW50XG4gICAgXTtcblxuICAgIC8vIOKRoyDkuIvliJLnur/nu5jliLbvvIx1bmRlcmxpbmUgc2hhcGUgYW5kIGhvcml6b250YWxcbiAgICBjb25zdCB1bmRlcmxpbmVFbmQgPSBtb3ZlUG9pbnQoZW5kUG9pbnQsIG5vZGVDbGllbnQud2lkdGgsIGxpbmtEaXJlY3Rpb24pO1xuICAgIGNvbnN0IHVuZGVybGluZTogUG9pbnRbXSA9IGhhc1VuZGVybGluZVNoYXBlICYmIGlzSG9yaXpvbnRhbCA/IFt1bmRlcmxpbmVFbmQsIHVuZGVybGluZUVuZCwgdW5kZXJsaW5lRW5kXSA6IFtdO1xuXG4gICAgY29uc3QgcG9pbnRzID0gcG9pbnRzT25CZXppZXJDdXJ2ZXMoWy4uLnN0cmFpZ2h0TGluZSwgLi4uY3VydmUsIC4uLnVuZGVybGluZV0pO1xuICAgIHJldHVybiBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKS5jdXJ2ZShwb2ludHMgYXMgYW55LCB7IHN0cm9rZTogYnJhbmNoQ29sb3IsIHN0cm9rZVdpZHRoIH0pO1xufVxuIl19
|
package/esm2020/draw/link.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
2
2
|
import { MindNodeShape, STROKE_WIDTH } from '../constants';
|
|
3
|
-
import {
|
|
3
|
+
import { PlaitBoard } from '@plait/core';
|
|
4
4
|
import { getNodeShapeByElement, isChildRight } from '../utils';
|
|
5
5
|
import { MindLayoutType, isTopLayout, isIndentedLayout, isStandardLayout } from '@plait/layouts';
|
|
6
6
|
import { MindQueries } from '../queries';
|
|
7
|
-
|
|
7
|
+
import { getBranchColorByMindElement } from '../utils/node-style/branch';
|
|
8
|
+
export function drawLink(board, node, child, defaultStroke = null, isHorizontal = true, needDrawUnderline = true) {
|
|
8
9
|
let beginX, beginY, endX, endY, beginNode = node, endNode = child;
|
|
9
10
|
const layout = MindQueries.getCorrectLayoutByElement(node.origin);
|
|
10
11
|
if (isHorizontal) {
|
|
@@ -37,8 +38,8 @@ export function drawLink(roughSVG, node, child, defaultStroke = null, isHorizont
|
|
|
37
38
|
endX = endNode.x + endNode.width / 2;
|
|
38
39
|
endY = endNode.y + endNode.vGap;
|
|
39
40
|
}
|
|
40
|
-
const stroke = defaultStroke ||
|
|
41
|
-
const strokeWidth = child.origin.
|
|
41
|
+
const stroke = defaultStroke || getBranchColorByMindElement(board, child.origin);
|
|
42
|
+
const strokeWidth = child.origin.branchWidth ? child.origin.branchWidth : STROKE_WIDTH;
|
|
42
43
|
if (endNode.origin.isRoot) {
|
|
43
44
|
if (layout === MindLayoutType.left || isStandardLayout(layout)) {
|
|
44
45
|
endX -= strokeWidth;
|
|
@@ -112,7 +113,7 @@ export function drawLink(roughSVG, node, child, defaultStroke = null, isHorizont
|
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
115
|
const points = pointsOnBezierCurves(curve);
|
|
115
|
-
return
|
|
116
|
+
return PlaitBoard.getRoughSVG(board).curve(points, { stroke, strokeWidth });
|
|
116
117
|
}
|
|
117
118
|
else {
|
|
118
119
|
let curve = [
|
|
@@ -152,7 +153,7 @@ export function drawLink(roughSVG, node, child, defaultStroke = null, isHorizont
|
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
155
|
const points = pointsOnBezierCurves(curve);
|
|
155
|
-
return
|
|
156
|
+
return PlaitBoard.getRoughSVG(board).curve(points, { stroke, strokeWidth });
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXcvbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxPQUFPLEVBQWMsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQXNCLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsTUFBTSxVQUFVLFFBQVEsQ0FDcEIsUUFBa0IsRUFDbEIsSUFBYyxFQUNkLEtBQWUsRUFDZixnQkFBK0IsSUFBSSxFQUNuQyxZQUFZLEdBQUcsSUFBSSxFQUNuQixpQkFBaUIsR0FBRyxJQUFJO0lBRXhCLElBQUksTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FBRyxJQUFJLEVBQ2hCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQW1CLENBQUM7SUFDcEYsSUFBSSxZQUFZLEVBQUU7UUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM1QixTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDbEI7UUFDRCxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLFNB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QUFDLENBQUM7UUFDM0MsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0tBQ2pFO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBvaW50c09uQmV6aWVyQ3VydmVzIH0gZnJvbSAncG9pbnRzLW9uLWN1cnZlJztcbmltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IEdSQVlfQ09MT1IsIE1pbmROb2RlU2hhcGUsIFNUUk9LRV9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBNaW5kTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBnZXRMaW5rTGluZUNvbG9yQnlNaW5kRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2NvbG9ycyc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgY3JlYXRlRywgZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IGdldE5vZGVTaGFwZUJ5RWxlbWVudCwgZ2V0UmVjdGFuZ2xlQnlOb2RlLCBpc0NoaWxkUmlnaHQgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBNaW5kTGF5b3V0VHlwZSwgaXNUb3BMYXlvdXQsIGlzSW5kZW50ZWRMYXlvdXQsIGlzU3RhbmRhcmRMYXlvdXQgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBNaW5kUXVlcmllcyB9IGZyb20gJy4uL3F1ZXJpZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd0xpbmsoXG4gICAgcm91Z2hTVkc6IFJvdWdoU1ZHLFxuICAgIG5vZGU6IE1pbmROb2RlLFxuICAgIGNoaWxkOiBNaW5kTm9kZSxcbiAgICBkZWZhdWx0U3Ryb2tlOiBzdHJpbmcgfCBudWxsID0gbnVsbCxcbiAgICBpc0hvcml6b250YWwgPSB0cnVlLFxuICAgIG5lZWREcmF3VW5kZXJsaW5lID0gdHJ1ZVxuKSB7XG4gICAgbGV0IGJlZ2luWCxcbiAgICAgICAgYmVnaW5ZLFxuICAgICAgICBlbmRYLFxuICAgICAgICBlbmRZLFxuICAgICAgICBiZWdpbk5vZGUgPSBub2RlLFxuICAgICAgICBlbmROb2RlID0gY2hpbGQ7XG4gICAgY29uc3QgbGF5b3V0ID0gTWluZFF1ZXJpZXMuZ2V0Q29ycmVjdExheW91dEJ5RWxlbWVudChub2RlLm9yaWdpbikgYXMgTWluZExheW91dFR5cGU7XG4gICAgaWYgKGlzSG9yaXpvbnRhbCkge1xuICAgICAgICBpZiAoIWlzQ2hpbGRSaWdodChub2RlLCBjaGlsZCkpIHtcbiAgICAgICAgICAgIGJlZ2luTm9kZSA9IGNoaWxkO1xuICAgICAgICAgICAgZW5kTm9kZSA9IG5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgYmVnaW5YID0gYmVnaW5Ob2RlLnggKyBiZWdpbk5vZGUud2lkdGggLSBiZWdpbk5vZGUuaEdhcDtcbiAgICAgICAgYmVnaW5ZID0gYmVnaW5Ob2RlLnkgKyBiZWdpbk5vZGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgZW5kWCA9IGVuZE5vZGUueCArIGVuZE5vZGUuaEdhcDtcbiAgICAgICAgZW5kWSA9IGVuZE5vZGUueSArIGVuZE5vZGUuaGVpZ2h0IC8gMjtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBub2RlLnBhcmVudCAmJlxuICAgICAgICAgICAgaXNJbmRlbnRlZExheW91dChNaW5kUXVlcmllcy5nZXRMYXlvdXRCeUVsZW1lbnQobm9kZS5wYXJlbnQ/Lm9yaWdpbikpICYmXG4gICAgICAgICAgICAoZ2V0Tm9kZVNoYXBlQnlFbGVtZW50KG5vZGUub3JpZ2luKSBhcyBNaW5kTm9kZVNoYXBlKSA9PT0gTWluZE5vZGVTaGFwZS51bmRlcmxpbmVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoaXNDaGlsZFJpZ2h0KG5vZGUsIGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGJlZ2luWSA9IG5vZGUueSArIG5vZGUuaGVpZ2h0IC0gbm9kZS52R2FwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbmRZID0gbm9kZS55ICsgbm9kZS5oZWlnaHQgLSBub2RlLnZHYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobm9kZS55ID4gY2hpbGQueSkge1xuICAgICAgICAgICAgYmVnaW5Ob2RlID0gY2hpbGQ7XG4gICAgICAgICAgICBlbmROb2RlID0gbm9kZTtcbiAgICAgICAgfVxuICAgICAgICBiZWdpblggPSBiZWdpbk5vZGUueCArIGJlZ2luTm9kZS53aWR0aCAvIDI7XG4gICAgICAgIGJlZ2luWSA9IGJlZ2luTm9kZS55ICsgYmVnaW5Ob2RlLmhlaWdodCAtIGJlZ2luTm9kZS52R2FwO1xuICAgICAgICBlbmRYID0gZW5kTm9kZS54ICsgZW5kTm9kZS53aWR0aCAvIDI7XG4gICAgICAgIGVuZFkgPSBlbmROb2RlLnkgKyBlbmROb2RlLnZHYXA7XG4gICAgfVxuXG4gICAgY29uc3Qgc3Ryb2tlID0gZGVmYXVsdFN0cm9rZSB8fCBnZXRMaW5rTGluZUNvbG9yQnlNaW5kRWxlbWVudChjaGlsZC5vcmlnaW4pO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gY2hpbGQub3JpZ2luLmxpbmtMaW5lV2lkdGggPyBjaGlsZC5vcmlnaW4ubGlua0xpbmVXaWR0aCA6IFNUUk9LRV9XSURUSDtcbiAgICBpZiAoZW5kTm9kZS5vcmlnaW4uaXNSb290KSB7XG4gICAgICAgIGlmIChsYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLmxlZnQgfHwgaXNTdGFuZGFyZExheW91dChsYXlvdXQpKSB7XG4gICAgICAgICAgICBlbmRYIC09IHN0cm9rZVdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLnVwd2FyZCkge1xuICAgICAgICAgICAgZW5kWSAtPSBzdHJva2VXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoYmVnaW5Ob2RlLm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgaWYgKGxheW91dCA9PT0gTWluZExheW91dFR5cGUucmlnaHQgfHwgaXNTdGFuZGFyZExheW91dChsYXlvdXQpKSB7XG4gICAgICAgICAgICBiZWdpblggKz0gc3Ryb2tlV2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxheW91dCA9PT0gTWluZExheW91dFR5cGUuZG93bndhcmQpIHtcbiAgICAgICAgICAgIGJlZ2luWSArPSBzdHJva2VXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgIGxldCBjdXJ2ZTogUG9pbnRbXSA9IFtcbiAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgICAgICBbYmVnaW5YICsgKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDMsIGJlZ2luWV0sXG4gICAgICAgICAgICBbZW5kWCAtIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAyLCBlbmRZXSxcbiAgICAgICAgICAgIFtlbmRYLCBlbmRZXVxuICAgICAgICBdO1xuICAgICAgICBjb25zdCBzaGFwZSA9IGdldE5vZGVTaGFwZUJ5RWxlbWVudChjaGlsZC5vcmlnaW4pIGFzIE1pbmROb2RlU2hhcGU7XG5cbiAgICAgICAgaWYgKCFub2RlLm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgICAgIGlmIChub2RlLnggPiBjaGlsZC54KSB7XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggKyAoYmVnaW5Ob2RlLmhHYXAgKyBlbmROb2RlLmhHYXApIC8gMywgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFggLSAoYmVnaW5Ob2RlLmhHYXAgKyBlbmROb2RlLmhHYXApIC8gMiwgZW5kWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYIC0gMTIsIGVuZFldXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbZW5kWCAtIDEyLCBlbmRZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFggLSAxMiwgZW5kWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZXVxuICAgICAgICAgICAgICAgIF0gYXMgUG9pbnRbXTtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFsuLi5jdXJ2ZSwgLi4ubGluZV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGN1cnZlID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YICsgMTIsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggKyAoYmVnaW5Ob2RlLmhHYXAgKyBlbmROb2RlLmhHYXApIC8gMiwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFggLSAoYmVnaW5Ob2RlLmhHYXAgKyBlbmROb2RlLmhHYXApIC8gMywgZW5kWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZXVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgY29uc3QgbGluZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCArIDEyLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YICsgMTIsIGJlZ2luWV1cbiAgICAgICAgICAgICAgICBdIGFzIFBvaW50W107XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbLi4ubGluZSwgLi4uY3VydmVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5lZWREcmF3VW5kZXJsaW5lICYmIHNoYXBlID09PSBNaW5kTm9kZVNoYXBlLnVuZGVybGluZSkge1xuICAgICAgICAgICAgaWYgKGNoaWxkLmxlZnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1bmRlcmxpbmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggLSAoYmVnaW5Ob2RlLndpZHRoIC0gYmVnaW5Ob2RlLmhHYXAgKiAyKSwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCAtIChiZWdpbk5vZGUud2lkdGggLSBiZWdpbk5vZGUuaEdhcCAqIDIpLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YIC0gKGJlZ2luTm9kZS53aWR0aCAtIGJlZ2luTm9kZS5oR2FwICogMiksIGJlZ2luWV1cbiAgICAgICAgICAgICAgICBdIGFzIFBvaW50W107XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbLi4udW5kZXJsaW5lLCAuLi5jdXJ2ZV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuZGVybGluZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2VuZFggKyAoZW5kTm9kZS53aWR0aCAtIGVuZE5vZGUuaEdhcCAqIDIpLCBlbmRZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFggKyAoZW5kTm9kZS53aWR0aCAtIGVuZE5vZGUuaEdhcCAqIDIpLCBlbmRZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFggKyAoZW5kTm9kZS53aWR0aCAtIGVuZE5vZGUuaEdhcCAqIDIpLCBlbmRZXVxuICAgICAgICAgICAgICAgIF0gYXMgUG9pbnRbXTtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFsuLi5jdXJ2ZSwgLi4udW5kZXJsaW5lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBvaW50cyA9IHBvaW50c09uQmV6aWVyQ3VydmVzKGN1cnZlKTtcbiAgICAgICAgcmV0dXJuIHJvdWdoU1ZHLmN1cnZlKHBvaW50cyBhcyBhbnksIHsgc3Ryb2tlLCBzdHJva2VXaWR0aCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgY3VydmU6IFBvaW50W10gPSBbXG4gICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZICsgKGJlZ2luTm9kZS52R2FwICsgZW5kTm9kZS52R2FwKSAvIDJdLFxuICAgICAgICAgICAgW2VuZFgsIGVuZFkgLSAoYmVnaW5Ob2RlLnZHYXAgKyBlbmROb2RlLnZHYXApIC8gMl0sXG4gICAgICAgICAgICBbZW5kWCwgZW5kWV1cbiAgICAgICAgXTtcblxuICAgICAgICBpZiAoIW5vZGUub3JpZ2luLmlzUm9vdCkge1xuICAgICAgICAgICAgaWYgKGlzVG9wTGF5b3V0KGxheW91dCkpIHtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZICsgKGJlZ2luTm9kZS52R2FwICsgZW5kTm9kZS52R2FwKSAvIDJdLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWSAtIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFkgLSAxMl1cbiAgICAgICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgbGluZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFkgLSAxMl0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZIC0gMTJdLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWV1cbiAgICAgICAgICAgICAgICBdIGFzIFBvaW50W107XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbLi4uY3VydmUsIC4uLmxpbmVdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZICsgMTJdLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAoYmVnaW5Ob2RlLnZHYXAgKyBlbmROb2RlLnZHYXApIC8gMl0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZIC0gKGJlZ2luTm9kZS52R2FwICsgZW5kTm9kZS52R2FwKSAvIDJdLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWV1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIDEyXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZICsgMTJdXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuXG4gICAgICAgICAgICAgICAgY3VydmUgPSBbLi4ubGluZSwgLi4uY3VydmVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50cyA9IHBvaW50c09uQmV6aWVyQ3VydmVzKGN1cnZlKTtcbiAgICAgICAgcmV0dXJuIHJvdWdoU1ZHLmN1cnZlKHBvaW50cyBhcyBhbnksIHsgc3Ryb2tlLCBzdHJva2VXaWR0aCB9KTtcbiAgICB9XG59XG4iXX0=
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXcvbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpFLE1BQU0sVUFBVSxRQUFRLENBQ3BCLEtBQWlCLEVBQ2pCLElBQWMsRUFDZCxLQUFlLEVBQ2YsZ0JBQStCLElBQUksRUFDbkMsWUFBWSxHQUFHLElBQUksRUFDbkIsaUJBQWlCLEdBQUcsSUFBSTtJQUV4QixJQUFJLE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxFQUNKLElBQUksRUFDSixTQUFTLEdBQUcsSUFBSSxFQUNoQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFtQixDQUFDO0lBQ3BGLElBQUksWUFBWSxFQUFFO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDNUIsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNsQixPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxHQUFHLFNB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LEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQzthQUMvQjtTQUNKO1FBQ0QsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztLQUN0RjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb2ludHNPbkJlemllckN1cnZlcyB9IGZyb20gJ3BvaW50cy1vbi1jdXJ2ZSc7XG5pbXBvcnQgeyBNaW5kTm9kZVNoYXBlLCBTVFJPS0VfV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXROb2RlU2hhcGVCeUVsZW1lbnQsIGlzQ2hpbGRSaWdodCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IE1pbmRMYXlvdXRUeXBlLCBpc1RvcExheW91dCwgaXNJbmRlbnRlZExheW91dCwgaXNTdGFuZGFyZExheW91dCB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBnZXRCcmFuY2hDb2xvckJ5TWluZEVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9ub2RlLXN0eWxlL2JyYW5jaCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmF3TGluayhcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBub2RlOiBNaW5kTm9kZSxcbiAgICBjaGlsZDogTWluZE5vZGUsXG4gICAgZGVmYXVsdFN0cm9rZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsXG4gICAgaXNIb3Jpem9udGFsID0gdHJ1ZSxcbiAgICBuZWVkRHJhd1VuZGVybGluZSA9IHRydWVcbikge1xuICAgIGxldCBiZWdpblgsXG4gICAgICAgIGJlZ2luWSxcbiAgICAgICAgZW5kWCxcbiAgICAgICAgZW5kWSxcbiAgICAgICAgYmVnaW5Ob2RlID0gbm9kZSxcbiAgICAgICAgZW5kTm9kZSA9IGNoaWxkO1xuICAgIGNvbnN0IGxheW91dCA9IE1pbmRRdWVyaWVzLmdldENvcnJlY3RMYXlvdXRCeUVsZW1lbnQobm9kZS5vcmlnaW4pIGFzIE1pbmRMYXlvdXRUeXBlO1xuICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgaWYgKCFpc0NoaWxkUmlnaHQobm9kZSwgY2hpbGQpKSB7XG4gICAgICAgICAgICBiZWdpbk5vZGUgPSBjaGlsZDtcbiAgICAgICAgICAgIGVuZE5vZGUgPSBub2RlO1xuICAgICAgICB9XG4gICAgICAgIGJlZ2luWCA9IGJlZ2luTm9kZS54ICsgYmVnaW5Ob2RlLndpZHRoIC0gYmVnaW5Ob2RlLmhHYXA7XG4gICAgICAgIGJlZ2luWSA9IGJlZ2luTm9kZS55ICsgYmVnaW5Ob2RlLmhlaWdodCAvIDI7XG4gICAgICAgIGVuZFggPSBlbmROb2RlLnggKyBlbmROb2RlLmhHYXA7XG4gICAgICAgIGVuZFkgPSBlbmROb2RlLnkgKyBlbmROb2RlLmhlaWdodCAvIDI7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgbm9kZS5wYXJlbnQgJiZcbiAgICAgICAgICAgIGlzSW5kZW50ZWRMYXlvdXQoTWluZFF1ZXJpZXMuZ2V0TGF5b3V0QnlFbGVtZW50KG5vZGUucGFyZW50Py5vcmlnaW4pKSAmJlxuICAgICAgICAgICAgKGdldE5vZGVTaGFwZUJ5RWxlbWVudChub2RlLm9yaWdpbikgYXMgTWluZE5vZGVTaGFwZSkgPT09IE1pbmROb2RlU2hhcGUudW5kZXJsaW5lXG4gICAgICAgICkge1xuICAgICAgICAgICAgaWYgKGlzQ2hpbGRSaWdodChub2RlLCBjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICBiZWdpblkgPSBub2RlLnkgKyBub2RlLmhlaWdodCAtIG5vZGUudkdhcDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZW5kWSA9IG5vZGUueSArIG5vZGUuaGVpZ2h0IC0gbm9kZS52R2FwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKG5vZGUueSA+IGNoaWxkLnkpIHtcbiAgICAgICAgICAgIGJlZ2luTm9kZSA9IGNoaWxkO1xuICAgICAgICAgICAgZW5kTm9kZSA9IG5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgYmVnaW5YID0gYmVnaW5Ob2RlLnggKyBiZWdpbk5vZGUud2lkdGggLyAyO1xuICAgICAgICBiZWdpblkgPSBiZWdpbk5vZGUueSArIGJlZ2luTm9kZS5oZWlnaHQgLSBiZWdpbk5vZGUudkdhcDtcbiAgICAgICAgZW5kWCA9IGVuZE5vZGUueCArIGVuZE5vZGUud2lkdGggLyAyO1xuICAgICAgICBlbmRZID0gZW5kTm9kZS55ICsgZW5kTm9kZS52R2FwO1xuICAgIH1cblxuICAgIGNvbnN0IHN0cm9rZSA9IGRlZmF1bHRTdHJva2UgfHwgZ2V0QnJhbmNoQ29sb3JCeU1pbmRFbGVtZW50KGJvYXJkLCBjaGlsZC5vcmlnaW4pO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gY2hpbGQub3JpZ2luLmJyYW5jaFdpZHRoID8gY2hpbGQub3JpZ2luLmJyYW5jaFdpZHRoIDogU1RST0tFX1dJRFRIO1xuICAgIGlmIChlbmROb2RlLm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgaWYgKGxheW91dCA9PT0gTWluZExheW91dFR5cGUubGVmdCB8fCBpc1N0YW5kYXJkTGF5b3V0KGxheW91dCkpIHtcbiAgICAgICAgICAgIGVuZFggLT0gc3Ryb2tlV2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxheW91dCA9PT0gTWluZExheW91dFR5cGUudXB3YXJkKSB7XG4gICAgICAgICAgICBlbmRZIC09IHN0cm9rZVdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChiZWdpbk5vZGUub3JpZ2luLmlzUm9vdCkge1xuICAgICAgICBpZiAobGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS5yaWdodCB8fCBpc1N0YW5kYXJkTGF5b3V0KGxheW91dCkpIHtcbiAgICAgICAgICAgIGJlZ2luWCArPSBzdHJva2VXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS5kb3dud2FyZCkge1xuICAgICAgICAgICAgYmVnaW5ZICs9IHN0cm9rZVdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgbGV0IGN1cnZlOiBQb2ludFtdID0gW1xuICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZXSxcbiAgICAgICAgICAgIFtiZWdpblggKyAoYmVnaW5Ob2RlLmhHYXAgKyBlbmROb2RlLmhHYXApIC8gMywgYmVnaW5ZXSxcbiAgICAgICAgICAgIFtlbmRYIC0gKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDIsIGVuZFldLFxuICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IHNoYXBlID0gZ2V0Tm9kZVNoYXBlQnlFbGVtZW50KGNoaWxkLm9yaWdpbikgYXMgTWluZE5vZGVTaGFwZTtcblxuICAgICAgICBpZiAoIW5vZGUub3JpZ2luLmlzUm9vdCkge1xuICAgICAgICAgICAgaWYgKG5vZGUueCA+IGNoaWxkLngpIHtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCArIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAzLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCAtIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAyLCBlbmRZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFggLSAxMiwgZW5kWV1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYIC0gMTIsIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCAtIDEyLCBlbmRZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLmN1cnZlLCAuLi5saW5lXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggKyAxMiwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCArIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAyLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCAtIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAzLCBlbmRZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YICsgMTIsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggKyAxMiwgYmVnaW5ZXVxuICAgICAgICAgICAgICAgIF0gYXMgUG9pbnRbXTtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFsuLi5saW5lLCAuLi5jdXJ2ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmVlZERyYXdVbmRlcmxpbmUgJiYgc2hhcGUgPT09IE1pbmROb2RlU2hhcGUudW5kZXJsaW5lKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGQubGVmdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuZGVybGluZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCAtIChiZWdpbk5vZGUud2lkdGggLSBiZWdpbk5vZGUuaEdhcCAqIDIpLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YIC0gKGJlZ2luTm9kZS53aWR0aCAtIGJlZ2luTm9kZS5oR2FwICogMiksIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggLSAoYmVnaW5Ob2RlLndpZHRoIC0gYmVnaW5Ob2RlLmhHYXAgKiAyKSwgYmVnaW5ZXVxuICAgICAgICAgICAgICAgIF0gYXMgUG9pbnRbXTtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFsuLi51bmRlcmxpbmUsIC4uLmN1cnZlXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5kZXJsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbZW5kWCArIChlbmROb2RlLndpZHRoIC0gZW5kTm9kZS5oR2FwICogMiksIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCArIChlbmROb2RlLndpZHRoIC0gZW5kTm9kZS5oR2FwICogMiksIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCArIChlbmROb2RlLndpZHRoIC0gZW5kTm9kZS5oR2FwICogMiksIGVuZFldXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLmN1cnZlLCAuLi51bmRlcmxpbmVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcG9pbnRzID0gcG9pbnRzT25CZXppZXJDdXJ2ZXMoY3VydmUpO1xuICAgICAgICByZXR1cm4gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCkuY3VydmUocG9pbnRzIGFzIGFueSwgeyBzdHJva2UsIHN0cm9rZVdpZHRoIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBjdXJ2ZTogUG9pbnRbXSA9IFtcbiAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAoYmVnaW5Ob2RlLnZHYXAgKyBlbmROb2RlLnZHYXApIC8gMl0sXG4gICAgICAgICAgICBbZW5kWCwgZW5kWSAtIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgIFtlbmRYLCBlbmRZXVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICghbm9kZS5vcmlnaW4uaXNSb290KSB7XG4gICAgICAgICAgICBpZiAoaXNUb3BMYXlvdXQobGF5b3V0KSkge1xuICAgICAgICAgICAgICAgIGN1cnZlID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAoYmVnaW5Ob2RlLnZHYXAgKyBlbmROb2RlLnZHYXApIC8gMl0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZIC0gKGJlZ2luTm9kZS52R2FwICsgZW5kTm9kZS52R2FwKSAvIDJdLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWSAtIDEyXVxuICAgICAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWSAtIDEyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFkgLSAxMl0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZXVxuICAgICAgICAgICAgICAgIF0gYXMgUG9pbnRbXTtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFsuLi5jdXJ2ZSwgLi4ubGluZV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGN1cnZlID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAxMl0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFkgLSAoYmVnaW5Ob2RlLnZHYXAgKyBlbmROb2RlLnZHYXApIC8gMl0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZXVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgY29uc3QgbGluZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZICsgMTJdLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAxMl1cbiAgICAgICAgICAgICAgICBdIGFzIFBvaW50W107XG5cbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFsuLi5saW5lLCAuLi5jdXJ2ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9pbnRzID0gcG9pbnRzT25CZXppZXJDdXJ2ZXMoY3VydmUpO1xuICAgICAgICByZXR1cm4gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCkuY3VydmUocG9pbnRzIGFzIGFueSwgeyBzdHJva2UsIHN0cm9rZVdpZHRoIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
package/esm2020/draw/shape.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { NODE_FILL, ROOT_NODE_FILL, STROKE_WIDTH } from '../constants';
|
|
2
|
-
import { getStrokeByMindElement } from '../utils/colors';
|
|
3
2
|
import { getRectangleByNode } from '../utils/graph';
|
|
4
3
|
import { PlaitBoard, drawRoundRectangle } from '@plait/core';
|
|
4
|
+
import { getStrokeByMindElement } from '../utils/node-style/node';
|
|
5
5
|
export function drawRectangleNode(board, node) {
|
|
6
6
|
const { x, y, width, height } = getRectangleByNode(node);
|
|
7
7
|
const fill = node.origin.fill ? node.origin.fill : node.origin.isRoot ? ROOT_NODE_FILL : NODE_FILL;
|
|
8
|
-
const stroke = getStrokeByMindElement(node.origin);
|
|
8
|
+
const stroke = getStrokeByMindElement(board, node.origin);
|
|
9
9
|
const strokeWidth = node.origin.strokeWidth ? node.origin.strokeWidth : STROKE_WIDTH;
|
|
10
10
|
const nodeG = drawRoundRectangle(PlaitBoard.getRoughSVG(board), x, y, x + width, y + height, {
|
|
11
11
|
stroke,
|
|
@@ -15,4 +15,4 @@ export function drawRectangleNode(board, node) {
|
|
|
15
15
|
});
|
|
16
16
|
return nodeG;
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9kcmF3L3NoYXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWxFLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFpQixFQUFFLElBQWM7SUFDL0QsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ25HLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFFckYsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRTtRQUN6RixNQUFNO1FBQ04sV0FBVztRQUNYLElBQUk7UUFDSixTQUFTLEVBQUUsT0FBTztLQUNyQixDQUFDLENBQUM7SUFFSCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTk9ERV9GSUxMLCBST09UX05PREVfRklMTCwgU1RST0tFX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uL3V0aWxzL2dyYXBoJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIGRyYXdSb3VuZFJlY3RhbmdsZSB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IGdldFN0cm9rZUJ5TWluZEVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9ub2RlLXN0eWxlL25vZGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd1JlY3RhbmdsZU5vZGUoYm9hcmQ6IFBsYWl0Qm9hcmQsIG5vZGU6IE1pbmROb2RlKSB7XG4gICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG5cbiAgICBjb25zdCBmaWxsID0gbm9kZS5vcmlnaW4uZmlsbCA/IG5vZGUub3JpZ2luLmZpbGwgOiBub2RlLm9yaWdpbi5pc1Jvb3QgPyBST09UX05PREVfRklMTCA6IE5PREVfRklMTDtcbiAgICBjb25zdCBzdHJva2UgPSBnZXRTdHJva2VCeU1pbmRFbGVtZW50KGJvYXJkLCBub2RlLm9yaWdpbik7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBub2RlLm9yaWdpbi5zdHJva2VXaWR0aCA/IG5vZGUub3JpZ2luLnN0cm9rZVdpZHRoIDogU1RST0tFX1dJRFRIO1xuXG4gICAgY29uc3Qgbm9kZUcgPSBkcmF3Um91bmRSZWN0YW5nbGUoUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCksIHgsIHksIHggKyB3aWR0aCwgeSArIGhlaWdodCwge1xuICAgICAgICBzdHJva2UsXG4gICAgICAgIHN0cm9rZVdpZHRoLFxuICAgICAgICBmaWxsLFxuICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICB9KTtcblxuICAgIHJldHVybiBub2RlRztcbn1cbiJdfQ==
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { PlaitBoard, createG } from '@plait/core';
|
|
2
|
-
import { MindElement } from '../interfaces';
|
|
2
|
+
import { MindElement, PlaitMind } from '../interfaces';
|
|
3
3
|
import { BaseDrawer } from './base/base';
|
|
4
4
|
import { getRectangleByNode } from '../utils/graph';
|
|
5
5
|
import { getNodeShapeByElement } from '../utils/shape';
|
|
6
6
|
import { EXTEND_RADIUS, QUICK_INSERT_CIRCLE_COLOR, QUICK_INSERT_CIRCLE_OFFSET, QUICK_INSERT_INNER_CROSS_COLOR, STROKE_WIDTH } from '../constants/default';
|
|
7
7
|
import { MindNodeShape } from '../constants/node';
|
|
8
|
-
import {
|
|
9
|
-
import { getLinkLineColorByMindElement, getRootLinkLineColorByMindElement } from '../utils/colors';
|
|
8
|
+
import { MindLayoutType, isStandardLayout } from '@plait/layouts';
|
|
10
9
|
import { MindQueries } from '../queries';
|
|
11
10
|
import { fromEvent } from 'rxjs';
|
|
12
11
|
import { insertMindElement } from '../utils/mind';
|
|
13
12
|
import { take } from 'rxjs/operators';
|
|
13
|
+
import { findNewChildNodePath } from '../utils/path';
|
|
14
|
+
import { getBranchColorByMindElement, getNextBranchColor } from '../utils/node-style/branch';
|
|
14
15
|
export class QuickInsertDrawer extends BaseDrawer {
|
|
15
16
|
canDraw(element) {
|
|
16
17
|
if (PlaitBoard.isReadonly(this.board) || element?.isCollapsed) {
|
|
@@ -34,7 +35,7 @@ export class QuickInsertDrawer extends BaseDrawer {
|
|
|
34
35
|
*/
|
|
35
36
|
const shape = getNodeShapeByElement(element);
|
|
36
37
|
// 形状是矩形要偏移边框的线宽
|
|
37
|
-
const strokeWidth = element.
|
|
38
|
+
const strokeWidth = element.branchWidth ? element.branchWidth : STROKE_WIDTH;
|
|
38
39
|
let offsetBorderLineWidth = 0;
|
|
39
40
|
if (shape === MindNodeShape.roundRectangle && offset === 0) {
|
|
40
41
|
offsetBorderLineWidth = strokeWidth;
|
|
@@ -142,7 +143,7 @@ export class QuickInsertDrawer extends BaseDrawer {
|
|
|
142
143
|
underlineCoordinates[MindLayoutType.right].startY -= height * 0.5;
|
|
143
144
|
underlineCoordinates[MindLayoutType.right].endY -= height * 0.5;
|
|
144
145
|
}
|
|
145
|
-
const
|
|
146
|
+
const branchColor = PlaitMind.isMind(element) ? getNextBranchColor(element) : getBranchColorByMindElement(this.board, element);
|
|
146
147
|
let nodeLayout = MindQueries.getCorrectLayoutByElement(element);
|
|
147
148
|
if (element.isRoot && isStandardLayout(nodeLayout)) {
|
|
148
149
|
const root = element;
|
|
@@ -150,7 +151,7 @@ export class QuickInsertDrawer extends BaseDrawer {
|
|
|
150
151
|
}
|
|
151
152
|
const underlineCoordinate = underlineCoordinates[nodeLayout];
|
|
152
153
|
if (underlineCoordinate) {
|
|
153
|
-
const underline = PlaitBoard.getRoughSVG(this.board).line(underlineCoordinate.startX, underlineCoordinate.startY, underlineCoordinate.endX, underlineCoordinate.endY, { stroke, strokeWidth });
|
|
154
|
+
const underline = PlaitBoard.getRoughSVG(this.board).line(underlineCoordinate.startX, underlineCoordinate.startY, underlineCoordinate.endX, underlineCoordinate.endY, { stroke: branchColor, strokeWidth });
|
|
154
155
|
const circleCoordinates = {
|
|
155
156
|
startX: underlineCoordinate.endX,
|
|
156
157
|
startY: underlineCoordinate.endY
|
|
@@ -201,9 +202,9 @@ export class QuickInsertDrawer extends BaseDrawer {
|
|
|
201
202
|
fromEvent(this.g, 'mouseup')
|
|
202
203
|
.pipe(take(1))
|
|
203
204
|
.subscribe(() => {
|
|
204
|
-
const path =
|
|
205
|
+
const path = findNewChildNodePath(this.board, element);
|
|
205
206
|
insertMindElement(this.board, element, path);
|
|
206
207
|
});
|
|
207
208
|
}
|
|
208
209
|
}
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LmRyYXdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXdlci9xdWljay1pbnNlcnQuZHJhd2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQTZELE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUNILGFBQWEsRUFDYix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUM5QixZQUFZLEVBQ2YsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsVUFBVTtJQUM3QyxPQUFPLENBQUMsT0FBOEI7UUFDbEMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FB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Q0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDeEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQzNFLENBQUM7WUFDRixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIGNyZWF0ZUcgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCwgQmFzZURhdGEsIEV4dGVuZFVuZGVybGluZUNvb3JkaW5hdGVUeXBlLCBFeHRlbmRMYXlvdXRUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBZnRlckRyYXcsIEJhc2VEcmF3ZXIgfSBmcm9tICcuL2Jhc2UvYmFzZSc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi91dGlscy9ncmFwaCc7XG5pbXBvcnQgeyBnZXROb2RlU2hhcGVCeUVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9zaGFwZSc7XG5pbXBvcnQge1xuICAgIEVYVEVORF9SQURJVVMsXG4gICAgUVVJQ0tfSU5TRVJUX0NJUkNMRV9DT0xPUixcbiAgICBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCxcbiAgICBRVUlDS19JTlNFUlRfSU5ORVJfQ1JPU1NfQ09MT1IsXG4gICAgU1RST0tFX1dJRFRIXG59IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IE1pbmROb2RlU2hhcGUgfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZSc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUsIE1pbmRMYXlvdXRUeXBlLCBPcmlnaW5Ob2RlLCBpc1N0YW5kYXJkTGF5b3V0IH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgZ2V0TGlua0xpbmVDb2xvckJ5TWluZEVsZW1lbnQsIGdldFJvb3RMaW5rTGluZUNvbG9yQnlNaW5kRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2NvbG9ycyc7XG5pbXBvcnQgeyBNaW5kUXVlcmllcyB9IGZyb20gJy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbnNlcnRNaW5kRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL21pbmQnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIFF1aWNrSW5zZXJ0RHJhd2VyIGV4dGVuZHMgQmFzZURyYXdlciBpbXBsZW1lbnRzIEFmdGVyRHJhdyB7XG4gICAgY2FuRHJhdyhlbGVtZW50OiBNaW5kRWxlbWVudDxCYXNlRGF0YT4pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKFBsYWl0Qm9hcmQuaXNSZWFkb25seSh0aGlzLmJvYXJkKSB8fCBlbGVtZW50Py5pc0NvbGxhcHNlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBkcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50PEJhc2VEYXRhPik6IFNWR0dFbGVtZW50IHtcbiAgICAgICAgbGV0IG9mZnNldCA9IGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMCAmJiAhZWxlbWVudC5pc1Jvb3QgPyBFWFRFTkRfUkFESVVTIDogMDtcbiAgICAgICAgY29uc3QgcXVpY2tJbnNlcnRHID0gY3JlYXRlRygpO1xuICAgICAgICB0aGlzLmcgPSBxdWlja0luc2VydEc7XG4gICAgICAgIHF1aWNrSW5zZXJ0Ry5jbGFzc0xpc3QuYWRkKCdxdWljay1pbnNlcnQnKTtcbiAgICAgICAgY29uc3Qgbm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHsgeCwgeSwgd2lkdGgsIGhlaWdodCB9ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKG5vZGUpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDmlrnkvY3vvJpcbiAgICAgICAgICogICAgMS4g5bem44CB5bem5LiK44CB5bem5LiLXG4gICAgICAgICAqICAgIDIuIOWPs+OAgeWPs+S4iuOAgeWPs+S4i1xuICAgICAgICAgKiAgICAzLiDkuIrjgIHkuIrlt6bjgIHkuIrlj7NcbiAgICAgICAgICogICAgNC4g5LiL44CB5LiL5bem44CB5LiL5Y+zXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBzaGFwZSA9IGdldE5vZGVTaGFwZUJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgLy8g5b2i54q25piv55+p5b2i6KaB5YGP56e76L655qGG55qE57q/5a69XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZWxlbWVudC5saW5rTGluZVdpZHRoID8gZWxlbWVudC5saW5rTGluZVdpZHRoIDogU1RST0tFX1dJRFRIO1xuICAgICAgICBsZXQgb2Zmc2V0Qm9yZGVyTGluZVdpZHRoID0gMDtcbiAgICAgICAgaWYgKHNoYXBlID09PSBNaW5kTm9kZVNoYXBlLnJvdW5kUmVjdGFuZ2xlICYmIG9mZnNldCA9PT0gMCkge1xuICAgICAgICAgICAgb2Zmc2V0Qm9yZGVyTGluZVdpZHRoID0gc3Ryb2tlV2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGggPSAwO1xuICAgICAgICBpZiAoZWxlbWVudC5pc1Jvb3QpIHtcbiAgICAgICAgICAgIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGggPSBzdHJva2VXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICAvLyDlvZPmsqHmnInlrZDoioLngrnml7bvvIzpnIDopoHnvKnlsI/nmoTlgY/np7vph49cbiAgICAgICAgY29uc3QgZXh0cmFPZmZzZXQgPSAzO1xuICAgICAgICBjb25zdCB1bmRlcmxpbmVDb29yZGluYXRlczogRXh0ZW5kVW5kZXJsaW5lQ29vcmRpbmF0ZVR5cGUgPSB7XG4gICAgICAgICAgICAvLyDnlLvnur/mlrnlkJHvvJrlj7PlkJHlt6YgPC0tXG4gICAgICAgICAgICBbTWluZExheW91dFR5cGUubGVmdF06IHtcbiAgICAgICAgICAgICAgICAvLyBFWFRFTkRfUkFESVVTICogMC41IOaYryDlt6bmlrnlkJHvvIzmipjlj6Av5pS26LW355qE5YGP56e76YePXG4gICAgICAgICAgICAgICAgc3RhcnRYOiB4IC0gKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBFWFRFTkRfUkFESVVTICogMC41IDogMCkgLSBvZmZzZXRSb290Qm9yZGVyTGluZVdpZHRoLFxuICAgICAgICAgICAgICAgIHN0YXJ0WTogeSArIGhlaWdodCxcbiAgICAgICAgICAgICAgICBlbmRYOlxuICAgICAgICAgICAgICAgICAgICB4IC1cbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Qm9yZGVyTGluZVdpZHRoIC1cbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aCAtXG4gICAgICAgICAgICAgICAgICAgIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgLSBleHRyYU9mZnNldCA6IDApIC1cbiAgICAgICAgICAgICAgICAgICAgRVhURU5EX1JBRElVUyxcbiAgICAgICAgICAgICAgICBlbmRZOiB5ICsgaGVpZ2h0XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8g55S757q/5pa55ZCR77ya5bem5ZCR5Y+zIC0tPlxuICAgICAgICAgICAgW01pbmRMYXlvdXRUeXBlLnJpZ2h0XToge1xuICAgICAgICAgICAgICAgIHN0YXJ0WDogeCArIHdpZHRoICsgKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCA6IDApICsgb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aCxcbiAgICAgICAgICAgICAgICBzdGFydFk6IHkgKyBoZWlnaHQsXG4gICAgICAgICAgICAgICAgZW5kWDpcbiAgICAgICAgICAgICAgICAgICAgeCArXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Qm9yZGVyTGluZVdpZHRoICtcbiAgICAgICAgICAgICAgICAgICAgKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCAtIGV4dHJhT2Zmc2V0IDogMCkgK1xuICAgICAgICAgICAgICAgICAgICBFWFRFTkRfUkFESVVTICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aCxcbiAgICAgICAgICAgICAgICBlbmRZOiB5ICsgaGVpZ2h0XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8g55S757q/5pa55ZCR77ya5LiL5ZCR5LiKIC0tPlxuICAgICAgICAgICAgW01pbmRMYXlvdXRUeXBlLnVwd2FyZF06IHtcbiAgICAgICAgICAgICAgICBzdGFydFg6IHggKyB3aWR0aCAqIDAuNSxcbiAgICAgICAgICAgICAgICBzdGFydFk6IHkgLSBvZmZzZXRCb3JkZXJMaW5lV2lkdGggLSAob2Zmc2V0ID4gMCA/IG9mZnNldCArIFFVSUNLX0lOU0VSVF9DSVJDTEVfT0ZGU0VUIDogMCkgLSBvZmZzZXRSb290Qm9yZGVyTGluZVdpZHRoLFxuICAgICAgICAgICAgICAgIGVuZFg6IHggKyB3aWR0aCAqIDAuNSxcbiAgICAgICAgICAgICAgICBlbmRZOlxuICAgICAgICAgICAgICAgICAgICB5IC1cbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Qm9yZGVyTGluZVdpZHRoIC1cbiAgICAgICAgICAgICAgICAgICAgKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCAtIGV4dHJhT2Zmc2V0IDogMCkgLVxuICAgICAgICAgICAgICAgICAgICBFWFRFTkRfUkFESVVTIC1cbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIOeUu+e6v+aWueWQke+8muS4iuWQkeS4iyAtLT5cbiAgICAgICAgICAgIFtNaW5kTGF5b3V0VHlwZS5kb3dud2FyZF06IHtcbiAgICAgICAgICAgICAgICBzdGFydFg6IHggKyB3aWR0aCAqIDAuNSxcbiAgICAgICAgICAgICAgICBzdGFydFk6XG4gICAgICAgICAgICAgICAgICAgIHkgKyBoZWlnaHQgKyBvZmZzZXRCb3JkZXJMaW5lV2lkdGggKyAob2Zmc2V0ID4gMCA/IG9mZnNldCArIFFVSUNLX0lOU0VSVF9DSVJDTEVfT0ZGU0VUIDogMCkgKyBvZmZzZXRSb290Qm9yZGVyTGluZVdpZHRoLFxuICAgICAgICAgICAgICAgIGVuZFg6IHggKyB3aWR0aCAqIDAuNSxcbiAgICAgICAgICAgICAgICBlbmRZOlxuICAgICAgICAgICAgICAgICAgICB5ICtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Qm9yZGVyTGluZVdpZHRoICtcbiAgICAgICAgICAgICAgICAgICAgKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCAtIGV4dHJhT2Zmc2V0IDogMCkgK1xuICAgICAgICAgICAgICAgICAgICBFWFRFTkRfUkFESVVTICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtNaW5kTGF5b3V0VHlwZS5sZWZ0Qm90dG9tSW5kZW50ZWRdOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRYOiB4ICsgd2lkdGggKiAwLjUsXG4gICAgICAgICAgICAgICAgc3RhcnRZOlxuICAgICAgICAgICAgICAgICAgICB5ICsgaGVpZ2h0ICsgb2Zmc2V0Qm9yZGVyTGluZVdpZHRoICsgKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCA6IDApICsgb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aCxcbiAgICAgICAgICAgICAgICBlbmRYOiB4ICsgd2lkdGggKiAwLjUsXG4gICAgICAgICAgICAgICAgZW5kWTpcbiAgICAgICAgICAgICAgICAgICAgeSArXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCArXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldEJvcmRlckxpbmVXaWR0aCArXG4gICAgICAgICAgICAgICAgICAgIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgLSBleHRyYU9mZnNldCA6IDApICtcbiAgICAgICAgICAgICAgICAgICAgRVhURU5EX1JBRElVUyArXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbTWluZExheW91dFR5cGUubGVmdFRvcEluZGVudGVkXToge1xuICAgICAgICAgICAgICAgIHN0YXJ0WDogeCArIHdpZHRoICogMC41LFxuICAgICAgICAgICAgICAgIHN0YXJ0WTogeSAtIG9mZnNldEJvcmRlckxpbmVXaWR0aCAtIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgOiAwKSAtIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGgsXG4gICAgICAgICAgICAgICAgZW5kWDogeCArIHdpZHRoICogMC41LFxuICAgICAgICAgICAgICAgIGVuZFk6XG4gICAgICAgICAgICAgICAgICAgIHkgLVxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRCb3JkZXJMaW5lV2lkdGggLVxuICAgICAgICAgICAgICAgICAgICAob2Zmc2V0ID4gMCA/IG9mZnNldCArIFFVSUNLX0lOU0VSVF9DSVJDTEVfT0ZGU0VUIDogMCkgLVxuICAgICAgICAgICAgICAgICAgICBFWFRFTkRfUkFESVVTIC1cbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtNaW5kTGF5b3V0VHlwZS5yaWdodEJvdHRvbUluZGVudGVkXToge1xuICAgICAgICAgICAgICAgIHN0YXJ0WDogeCArIHdpZHRoICogMC41LFxuICAgICAgICAgICAgICAgIHN0YXJ0WTpcbiAgICAgICAgICAgICAgICAgICAgeSArIGhlaWdodCArIG9mZnNldEJvcmRlckxpbmVXaWR0aCArIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgOiAwKSArIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGgsXG4gICAgICAgICAgICAgICAgZW5kWDogeCArIHdpZHRoICogMC41LFxuICAgICAgICAgICAgICAgIGVuZFk6XG4gICAgICAgICAgICAgICAgICAgIHkgK1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgK1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXRCb3JkZXJMaW5lV2lkdGggK1xuICAgICAgICAgICAgICAgICAgICAob2Zmc2V0ID4gMCA/IG9mZnNldCArIFFVSUNLX0lOU0VSVF9DSVJDTEVfT0ZGU0VUIC0gZXh0cmFPZmZzZXQgOiAwKSArXG4gICAgICAgICAgICAgICAgICAgIEVYVEVORF9SQURJVVMgK1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXRSb290Qm9yZGVyTGluZVdpZHRoXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW01pbmRMYXlvdXRUeXBlLnJpZ2h0VG9wSW5kZW50ZWRdOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRYOiB4ICsgd2lkdGggKiAwLjUsXG4gICAgICAgICAgICAgICAgc3RhcnRZOiB5IC0gb2Zmc2V0Qm9yZGVyTGluZVdpZHRoIC0gKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCA6IDApIC0gb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aCxcbiAgICAgICAgICAgICAgICBlbmRYOiB4ICsgd2lkdGggKiAwLjUsXG4gICAgICAgICAgICAgICAgZW5kWTpcbiAgICAgICAgICAgICAgICAgICAgeSAtXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldEJvcmRlckxpbmVXaWR0aCAtXG4gICAgICAgICAgICAgICAgICAgIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgOiAwKSAtXG4gICAgICAgICAgICAgICAgICAgIEVYVEVORF9SQURJVVMgLVxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRSb290Qm9yZGVyTGluZVdpZHRoXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGlmIChzaGFwZSA9PT0gTWluZE5vZGVTaGFwZS5yb3VuZFJlY3RhbmdsZSB8fCBlbGVtZW50LmlzUm9vdCkge1xuICAgICAgICAgICAgdW5kZXJsaW5lQ29vcmRpbmF0ZXNbTWluZExheW91dFR5cGUubGVmdF0uc3RhcnRZIC09IGhlaWdodCAqIDAuNTtcbiAgICAgICAgICAgIHVuZGVybGluZUNvb3JkaW5hdGVzW01pbmRMYXlvdXRUeXBlLmxlZnRdLmVuZFkgLT0gaGVpZ2h0ICogMC41O1xuICAgICAgICAgICAgdW5kZXJsaW5lQ29vcmRpbmF0ZXNbTWluZExheW91dFR5cGUucmlnaHRdLnN0YXJ0WSAtPSBoZWlnaHQgKiAwLjU7XG4gICAgICAgICAgICB1bmRlcmxpbmVDb29yZGluYXRlc1tNaW5kTGF5b3V0VHlwZS5yaWdodF0uZW5kWSAtPSBoZWlnaHQgKiAwLjU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3Ryb2tlID0gZWxlbWVudC5pc1Jvb3QgPyBnZXRSb290TGlua0xpbmVDb2xvckJ5TWluZEVsZW1lbnQoZWxlbWVudCkgOiBnZXRMaW5rTGluZUNvbG9yQnlNaW5kRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgbGV0IG5vZGVMYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50KGVsZW1lbnQpIGFzIEV4dGVuZExheW91dFR5cGU7XG4gICAgICAgIGlmIChlbGVtZW50LmlzUm9vdCAmJiBpc1N0YW5kYXJkTGF5b3V0KG5vZGVMYXlvdXQpKSB7XG4gICAgICAgICAgICBjb25zdCByb290ID0gZWxlbWVudCBhcyBPcmlnaW5Ob2RlO1xuICAgICAgICAgICAgbm9kZUxheW91dCA9IHJvb3QuY2hpbGRyZW4ubGVuZ3RoID49IHJvb3QucmlnaHROb2RlQ291bnQgPyBNaW5kTGF5b3V0VHlwZS5sZWZ0IDogTWluZExheW91dFR5cGUucmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdW5kZXJsaW5lQ29vcmRpbmF0ZSA9IHVuZGVybGluZUNvb3JkaW5hdGVzW25vZGVMYXlvdXRdO1xuICAgICAgICBpZiAodW5kZXJsaW5lQ29vcmRpbmF0ZSkge1xuICAgICAgICAgICAgY29uc3QgdW5kZXJsaW5lID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyh0aGlzLmJvYXJkKS5saW5lKFxuICAgICAgICAgICAgICAgIHVuZGVybGluZUNvb3JkaW5hdGUuc3RhcnRYLFxuICAgICAgICAgICAgICAgIHVuZGVybGluZUNvb3JkaW5hdGUuc3RhcnRZLFxuICAgICAgICAgICAgICAgIHVuZGVybGluZUNvb3JkaW5hdGUuZW5kWCxcbiAgICAgICAgICAgICAgICB1bmRlcmxpbmVDb29yZGluYXRlLmVuZFksXG4gICAgICAgICAgICAgICAgeyBzdHJva2UsIHN0cm9rZVdpZHRoIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBjaXJjbGVDb29yZGluYXRlcyA9IHtcbiAgICAgICAgICAgICAgICBzdGFydFg6IHVuZGVybGluZUNvb3JkaW5hdGUuZW5kWCxcbiAgICAgICAgICAgICAgICBzdGFydFk6IHVuZGVybGluZUNvb3JkaW5hdGUuZW5kWVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGNpcmNsZSA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcodGhpcy5ib2FyZCkuY2lyY2xlKGNpcmNsZUNvb3JkaW5hdGVzLnN0YXJ0WCwgY2lyY2xlQ29vcmRpbmF0ZXMuc3RhcnRZLCBFWFRFTkRfUkFESVVTLCB7XG4gICAgICAgICAgICAgICAgZmlsbDogUVVJQ0tfSU5TRVJUX0NJUkNMRV9DT0xPUixcbiAgICAgICAgICAgICAgICBzdHJva2U6IFFVSUNLX0lOU0VSVF9DSVJDTEVfQ09MT1IsXG4gICAgICAgICAgICAgICAgZmlsbFN0eWxlOiAnc29saWQnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyQ3Jvc3NDb29yZGluYXRlcyA9IHtcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsOiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0WDogY2lyY2xlQ29vcmRpbmF0ZXMuc3RhcnRYIC0gRVhURU5EX1JBRElVUyAqIDAuNSArIDMsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0WTogY2lyY2xlQ29vcmRpbmF0ZXMuc3RhcnRZLFxuICAgICAgICAgICAgICAgICAgICBlbmRYOiBjaXJjbGVDb29yZGluYXRlcy5zdGFydFggKyBFWFRFTkRfUkFESVVTICogMC41IC0gMyxcbiAgICAgICAgICAgICAgICAgICAgZW5kWTogY2lyY2xlQ29vcmRpbmF0ZXMuc3RhcnRZXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbDoge1xuICAgICAgICAgICAgICAgICAgICBzdGFydFg6IGNpcmNsZUNvb3JkaW5hdGVzLnN0YXJ0WCxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRZOiBjaXJjbGVDb29yZGluYXRlcy5zdGFydFkgLSBFWFRFTkRfUkFESVVTICogMC41ICsgMyxcbiAgICAgICAgICAgICAgICAgICAgZW5kWDogY2lyY2xlQ29vcmRpbmF0ZXMuc3RhcnRYLFxuICAgICAgICAgICAgICAgICAgICBlbmRZOiBjaXJjbGVDb29yZGluYXRlcy5zdGFydFkgKyBFWFRFTkRfUkFESVVTICogMC41IC0gM1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBpbm5lckNyb3NzSExpbmUgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLmxpbmUoXG4gICAgICAgICAgICAgICAgaW5uZXJDcm9zc0Nvb3JkaW5hdGVzLmhvcml6b250YWwuc3RhcnRYLFxuICAgICAgICAgICAgICAgIGlubmVyQ3Jvc3NDb29yZGluYXRlcy5ob3Jpem9udGFsLnN0YXJ0WSxcbiAgICAgICAgICAgICAgICBpbm5lckNyb3NzQ29vcmRpbmF0ZXMuaG9yaXpvbnRhbC5lbmRYLFxuICAgICAgICAgICAgICAgIGlubmVyQ3Jvc3NDb29yZGluYXRlcy5ob3Jpem9udGFsLmVuZFksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzdHJva2U6IFFVSUNLX0lOU0VSVF9JTk5FUl9DUk9TU19DT0xPUixcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaW5uZXJSaW5nVkxpbmUgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLmxpbmUoXG4gICAgICAgICAgICAgICAgaW5uZXJDcm9zc0Nvb3JkaW5hdGVzLnZlcnRpY2FsLnN0YXJ0WCxcbiAgICAgICAgICAgICAgICBpbm5lckNyb3NzQ29vcmRpbmF0ZXMudmVydGljYWwuc3RhcnRZLFxuICAgICAgICAgICAgICAgIGlubmVyQ3Jvc3NDb29yZGluYXRlcy52ZXJ0aWNhbC5lbmRYLFxuICAgICAgICAgICAgICAgIGlubmVyQ3Jvc3NDb29yZGluYXRlcy52ZXJ0aWNhbC5lbmRZLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBRVUlDS19JTlNFUlRfSU5ORVJfQ1JPU1NfQ09MT1IsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHF1aWNrSW5zZXJ0Ry5hcHBlbmRDaGlsZCh1bmRlcmxpbmUpO1xuICAgICAgICAgICAgcXVpY2tJbnNlcnRHLmFwcGVuZENoaWxkKGNpcmNsZSk7XG4gICAgICAgICAgICBxdWlja0luc2VydEcuYXBwZW5kQ2hpbGQoaW5uZXJDcm9zc0hMaW5lKTtcbiAgICAgICAgICAgIHF1aWNrSW5zZXJ0Ry5hcHBlbmRDaGlsZChpbm5lclJpbmdWTGluZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHF1aWNrSW5zZXJ0RztcbiAgICB9XG4gICAgYWZ0ZXJEcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbiBub3QgZmluZCBxdWljayBpbnNlcnQgZ2ApO1xuICAgICAgICB9XG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmcsICdtb3VzZWRvd24nKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBmcm9tRXZlbnQodGhpcy5nLCAnbW91c2V1cCcpXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgodGhpcy5ib2FyZCwgZWxlbWVudCkuY29uY2F0KFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiAhQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoY2hpbGQpKS5sZW5ndGhcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGluc2VydE1pbmRFbGVtZW50KHRoaXMuYm9hcmQsIGVsZW1lbnQsIHBhdGgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LmRyYXdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXdlci9xdWljay1pbnNlcnQuZHJhd2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQTZELFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQWEsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFDSCxhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiw4QkFBOEIsRUFDOUIsWUFBWSxFQUNmLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0YsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFVBQVU7SUFDN0MsT0FBTyxDQUFDLE9BQThCO1FBQ2xDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxFQUFFLFdBQVcsRUFBRTtZQUMzRCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxJQUFJLENBQUMsT0FBOEI7UUFDL0IsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsTUFBTSxZQUFZLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUM7UUFDdEIsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0MsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekQ7Ozs7OztXQU1HO1FBQ0gsTUFBTSxLQUFLLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsZ0JBQWdCO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUM3RSxJQUFJLHFCQUFxQixHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLEtBQUssS0FBSyxhQUFhLENBQUMsY0FBYyxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDeEQscUJBQXFCLEdBQUcsV0FBVyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2hCLHlCQUF5QixHQUFHLFdBQVcsQ0FBQztTQUMzQztRQUNELG1CQUFtQjtRQUNuQixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDdEIsTUFBTSxvQkFBb0IsR0FBa0M7WUFDeEQsZUFBZTtZQUNmLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQixzQ0FBc0M7Z0JBQ3RDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsYUFBYSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcseUJBQXlCO2dCQUN2RixNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU07Z0JBQ2xCLElBQUksRUFDQSxDQUFDO29CQUNELHFCQUFxQjtvQkFDckIseUJBQXlCO29CQUN6QixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRywwQkFBMEIsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEUsYUFBYTtnQkFDakIsSUFBSSxFQUFFLENBQUMsR0FBRyxNQUFNO2FBQ25CO1lBQ0QsZUFBZTtZQUNmLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcseUJBQXlCO2dCQUN0RyxNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU07Z0JBQ2xCLElBQUksRUFDQSxDQUFDO29CQUNELEtBQUs7b0JBQ0wscUJBQXFCO29CQUNyQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRywwQkFBMEIsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEUsYUFBYTtvQkFDYix5QkFBeUI7Z0JBQzdCLElBQUksRUFBRSxDQUFDLEdBQUcsTUFBTTthQUNuQjtZQUNELGVBQWU7WUFDZixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDckIsTUFBTSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRztnQkFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxxQkFBcUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcseUJBQXlCO2dCQUN0SCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFHO2dCQUNyQixJQUFJLEVBQ0EsQ0FBQztvQkFDRCxxQkFBcUI7b0JBQ3JCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLDBCQUEwQixHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNwRSxhQUFhO29CQUNiLHlCQUF5QjthQUNoQztZQUNELGVBQWU7WUFDZixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRztnQkFDdkIsTUFBTSxFQUNGLENBQUMsR0FBRyxNQUFNLEdBQUcscUJBQXFCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLHlCQUF5QjtnQkFDM0gsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRztnQkFDckIsSUFBSSxFQUNBLENBQUM7b0JBQ0QsTUFBTTtvQkFDTixxQkFBcUI7b0JBQ3JCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLDBCQUEwQixHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNwRSxhQUFhO29CQUNiLHlCQUF5QjthQUNoQztZQUNELENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ2pDLE1BQU0sRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUc7Z0JBQ3ZCLE1BQU0sRUFDRixDQUFDLEdBQUcsTUFBTSxHQUFHLHFCQUFxQixHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyx5QkFBeUI7Z0JBQzNILElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUc7Z0JBQ3JCLElBQUksRUFDQSxDQUFDO29CQUNELE1BQU07b0JBQ04scUJBQXFCO29CQUNyQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRywwQkFBMEIsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEUsYUFBYTtvQkFDYix5QkFBeUI7YUFDaEM7WUFDRCxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsRUFBRTtnQkFDOUIsTUFBTSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRztnQkFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxxQkFBcUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcseUJBQXlCO2dCQUN0SCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFHO2dCQUNyQixJQUFJLEVBQ0EsQ0FBQztvQkFDRCxxQkFBcUI7b0JBQ3JCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RELGFBQWE7b0JBQ2IseUJBQXlCO2FBQ2hDO1lBQ0QsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRztnQkFDdkIsTUFBTSxFQUNGLENBQUMsR0FBRyxNQUFNLEdBQUcscUJBQXFCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLHlCQUF5QjtnQkFDM0gsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRztnQkFDckIsSUFBSSxFQUNBLENBQUM7b0JBQ0QsTUFBTTtvQkFDTixxQkFBcUI7b0JBQ3JCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLDBCQUEwQixHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNwRSxhQUFhO29CQUNiLHlCQUF5QjthQUNoQztZQUNELENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7Z0JBQy9CLE1BQU0sRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUc7Z0JBQ3ZCLE1BQU0sRUFBRSxDQUFDLEdBQUcscUJBQXFCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLHlCQUF5QjtnQkFDdEgsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRztnQkFDckIsSUFBSSxFQUNBLENBQUM7b0JBQ0QscUJBQXFCO29CQUNyQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0RCxhQUFhO29CQUNiLHlCQUF5QjthQUNoQztTQUNKLENBQUM7UUFDRixJQUFJLEtBQUssS0FBSyxhQUFhLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDMUQsb0JBQW9CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ2pFLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQztZQUMvRCxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDbEUsb0JBQW9CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDO1NBQ25FO1FBQ0QsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0gsSUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBcUIsQ0FBQztRQUNwRixJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEdBQUcsT0FBcUIsQ0FBQztZQUNuQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztTQUN6RztRQUNELE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0QsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3JELG1CQUFtQixDQUFDLE1BQU0sRUFDMUIsbUJBQW1CLENBQUMsTUFBTSxFQUMxQixtQkFBbUIsQ0FBQyxJQUFJLEVBQ3hCLG1CQUFtQixDQUFDLElBQUksRUFDeEIsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUN2QyxDQUFDO1lBQ0YsTUFBTSxpQkFBaUIsR0FBRztnQkFDdEIsTUFBTSxFQUFFLG1CQUFtQixDQUFDLElBQUk7Z0JBQ2hDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO2FBQ25DLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUU7Z0JBQ3hILElBQUksRUFBRSx5QkFBeUI7Z0JBQy9CLE1BQU0sRUFBRSx5QkFBeUI7Z0JBQ2pDLFNBQVMsRUFBRSxPQUFPO2FBQ3JCLENBQUMsQ0FBQztZQUNILE1BQU0scUJBQXFCLEdBQUc7Z0JBQzFCLFVBQVUsRUFBRTtvQkFDUixNQUFNLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxHQUFHLGFBQWEsR0FBRyxHQUFHLEdBQUcsQ0FBQztvQkFDMUQsTUFBTSxFQUFFLGlCQUFpQixDQUFDLE1BQU07b0JBQ2hDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsYUFBYSxHQUFHLEdBQUcsR0FBRyxDQUFDO29CQUN4RCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTtpQkFDakM7Z0JBQ0QsUUFBUSxFQUFFO29CQUNOLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO29CQUNoQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxHQUFHLGFBQWEsR0FBRyxHQUFHLEdBQUcsQ0FBQztvQkFDMUQsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07b0JBQzlCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsYUFBYSxHQUFHLEdBQUcsR0FBRyxDQUFDO2lCQUMzRDthQUNKLENBQUM7WUFDRixNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQzNELHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQ3ZDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQ3ZDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQ3JDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQ3JDO2dCQUNJLE1BQU0sRUFBRSw4QkFBOEI7Z0JBQ3RDLFdBQVcsRUFBRSxDQUFDO2FBQ2pCLENBQ0osQ0FBQztZQUNGLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDMUQscUJBQXFCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDckMscUJBQXFCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDckMscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksRUFDbkMscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksRUFDbkM7Z0JBQ0ksTUFBTSxFQUFFLDhCQUE4QjtnQkFDdEMsV0FBVyxFQUFFLENBQUM7YUFDakIsQ0FDSixDQUFDO1lBQ0YsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pDLFlBQVksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDMUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxTQUFTLENBQUMsT0FBb0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDbEQ7UUFDRCxTQUFTLENBQWEsSUFBSSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUM7YUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQzthQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sSUFBSSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdkQsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBjcmVhdGVHIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIEJhc2VEYXRhLCBFeHRlbmRVbmRlcmxpbmVDb29yZGluYXRlVHlwZSwgRXh0ZW5kTGF5b3V0VHlwZSwgUGxhaXRNaW5kIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBZnRlckRyYXcsIEJhc2VEcmF3ZXIgfSBmcm9tICcuL2Jhc2UvYmFzZSc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi91dGlscy9ncmFwaCc7XG5pbXBvcnQgeyBnZXROb2RlU2hhcGVCeUVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9zaGFwZSc7XG5pbXBvcnQge1xuICAgIEVYVEVORF9SQURJVVMsXG4gICAgUVVJQ0tfSU5TRVJUX0NJUkNMRV9DT0xPUixcbiAgICBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCxcbiAgICBRVUlDS19JTlNFUlRfSU5ORVJfQ1JPU1NfQ09MT1IsXG4gICAgU1RST0tFX1dJRFRIXG59IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IE1pbmROb2RlU2hhcGUgfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZSc7XG5pbXBvcnQgeyBNaW5kTGF5b3V0VHlwZSwgT3JpZ2luTm9kZSwgaXNTdGFuZGFyZExheW91dCB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluc2VydE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbWluZCc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZmluZE5ld0NoaWxkTm9kZVBhdGggfSBmcm9tICcuLi91dGlscy9wYXRoJztcbmltcG9ydCB7IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudCwgZ2V0TmV4dEJyYW5jaENvbG9yIH0gZnJvbSAnLi4vdXRpbHMvbm9kZS1zdHlsZS9icmFuY2gnO1xuXG5leHBvcnQgY2xhc3MgUXVpY2tJbnNlcnREcmF3ZXIgZXh0ZW5kcyBCYXNlRHJhd2VyIGltcGxlbWVudHMgQWZ0ZXJEcmF3IHtcbiAgICBjYW5EcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50PEJhc2VEYXRhPik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoUGxhaXRCb2FyZC5pc1JlYWRvbmx5KHRoaXMuYm9hcmQpIHx8IGVsZW1lbnQ/LmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGRyYXcoZWxlbWVudDogTWluZEVsZW1lbnQ8QmFzZURhdGE+KTogU1ZHR0VsZW1lbnQge1xuICAgICAgICBsZXQgb2Zmc2V0ID0gZWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPiAwICYmICFlbGVtZW50LmlzUm9vdCA/IEVYVEVORF9SQURJVVMgOiAwO1xuICAgICAgICBjb25zdCBxdWlja0luc2VydEcgPSBjcmVhdGVHKCk7XG4gICAgICAgIHRoaXMuZyA9IHF1aWNrSW5zZXJ0RztcbiAgICAgICAgcXVpY2tJbnNlcnRHLmNsYXNzTGlzdC5hZGQoJ3F1aWNrLWluc2VydCcpO1xuICAgICAgICBjb25zdCBub2RlID0gTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIOaWueS9je+8mlxuICAgICAgICAgKiAgICAxLiDlt6bjgIHlt6bkuIrjgIHlt6bkuItcbiAgICAgICAgICogICAgMi4g5Y+z44CB5Y+z5LiK44CB5Y+z5LiLXG4gICAgICAgICAqICAgIDMuIOS4iuOAgeS4iuW3puOAgeS4iuWPs1xuICAgICAgICAgKiAgICA0LiDkuIvjgIHkuIvlt6bjgIHkuIvlj7NcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHNoYXBlID0gZ2V0Tm9kZVNoYXBlQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICAvLyDlvaLnirbmmK/nn6nlvaLopoHlgY/np7vovrnmoYbnmoTnur/lrr1cbiAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBlbGVtZW50LmJyYW5jaFdpZHRoID8gZWxlbWVudC5icmFuY2hXaWR0aCA6IFNUUk9LRV9XSURUSDtcbiAgICAgICAgbGV0IG9mZnNldEJvcmRlckxpbmVXaWR0aCA9IDA7XG4gICAgICAgIGlmIChzaGFwZSA9PT0gTWluZE5vZGVTaGFwZS5yb3VuZFJlY3RhbmdsZSAmJiBvZmZzZXQgPT09IDApIHtcbiAgICAgICAgICAgIG9mZnNldEJvcmRlckxpbmVXaWR0aCA9IHN0cm9rZVdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGxldCBvZmZzZXRSb290Qm9yZGVyTGluZVdpZHRoID0gMDtcbiAgICAgICAgaWYgKGVsZW1lbnQuaXNSb290KSB7XG4gICAgICAgICAgICBvZmZzZXRSb290Qm9yZGVyTGluZVdpZHRoID0gc3Ryb2tlV2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgLy8g5b2T5rKh5pyJ5a2Q6IqC54K55pe277yM6ZyA6KaB57yp5bCP55qE5YGP56e76YePXG4gICAgICAgIGNvbnN0IGV4dHJhT2Zmc2V0ID0gMztcbiAgICAgICAgY29uc3QgdW5kZXJsaW5lQ29vcmRpbmF0ZXM6IEV4dGVuZFVuZGVybGluZUNvb3JkaW5hdGVUeXBlID0ge1xuICAgICAgICAgICAgLy8g55S757q/5pa55ZCR77ya5Y+z5ZCR5bemIDwtLVxuICAgICAgICAgICAgW01pbmRMYXlvdXRUeXBlLmxlZnRdOiB7XG4gICAgICAgICAgICAgICAgLy8gRVhURU5EX1JBRElVUyAqIDAuNSDmmK8g5bem5pa55ZCR77yM5oqY5Y+gL+aUtui1t+eahOWBj+enu+mHj1xuICAgICAgICAgICAgICAgIHN0YXJ0WDogeCAtIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgRVhURU5EX1JBRElVUyAqIDAuNSA6IDApIC0gb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aCxcbiAgICAgICAgICAgICAgICBzdGFydFk6IHkgKyBoZWlnaHQsXG4gICAgICAgICAgICAgICAgZW5kWDpcbiAgICAgICAgICAgICAgICAgICAgeCAtXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldEJvcmRlckxpbmVXaWR0aCAtXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGggLVxuICAgICAgICAgICAgICAgICAgICAob2Zmc2V0ID4gMCA/IG9mZnNldCArIFFVSUNLX0lOU0VSVF9DSVJDTEVfT0ZGU0VUIC0gZXh0cmFPZmZzZXQgOiAwKSAtXG4gICAgICAgICAgICAgICAgICAgIEVYVEVORF9SQURJVVMsXG4gICAgICAgICAgICAgICAgZW5kWTogeSArIGhlaWdodFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIOeUu+e6v+aWueWQke+8muW3puWQkeWPsyAtLT5cbiAgICAgICAgICAgIFtNaW5kTGF5b3V0VHlwZS5yaWdodF06IHtcbiAgICAgICAgICAgICAgICBzdGFydFg6IHggKyB3aWR0aCArIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgOiAwKSArIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGgsXG4gICAgICAgICAgICAgICAgc3RhcnRZOiB5ICsgaGVpZ2h0LFxuICAgICAgICAgICAgICAgIGVuZFg6XG4gICAgICAgICAgICAgICAgICAgIHggK1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCArXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldEJvcmRlckxpbmVXaWR0aCArXG4gICAgICAgICAgICAgICAgICAgIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgLSBleHRyYU9mZnNldCA6IDApICtcbiAgICAgICAgICAgICAgICAgICAgRVhURU5EX1JBRElVUyArXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGgsXG4gICAgICAgICAgICAgICAgZW5kWTogeSArIGhlaWdodFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIOeUu+e6v+aWueWQke+8muS4i+WQkeS4iiAtLT5cbiAgICAgICAgICAgIFtNaW5kTGF5b3V0VHlwZS51cHdhcmRdOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRYOiB4ICsgd2lkdGggKiAwLjUsXG4gICAgICAgICAgICAgICAgc3RhcnRZOiB5IC0gb2Zmc2V0Qm9yZGVyTGluZVdpZHRoIC0gKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCA6IDApIC0gb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aCxcbiAgICAgICAgICAgICAgICBlbmRYOiB4ICsgd2lkdGggKiAwLjUsXG4gICAgICAgICAgICAgICAgZW5kWTpcbiAgICAgICAgICAgICAgICAgICAgeSAtXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldEJvcmRlckxpbmVXaWR0aCAtXG4gICAgICAgICAgICAgICAgICAgIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgLSBleHRyYU9mZnNldCA6IDApIC1cbiAgICAgICAgICAgICAgICAgICAgRVhURU5EX1JBRElVUyAtXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyDnlLvnur/mlrnlkJHvvJrkuIrlkJHkuIsgLS0+XG4gICAgICAgICAgICBbTWluZExheW91dFR5cGUuZG93bndhcmRdOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRYOiB4ICsgd2lkdGggKiAwLjUsXG4gICAgICAgICAgICAgICAgc3RhcnRZOlxuICAgICAgICAgICAgICAgICAgICB5ICsgaGVpZ2h0ICsgb2Zmc2V0Qm9yZGVyTGluZVdpZHRoICsgKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCA6IDApICsgb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aCxcbiAgICAgICAgICAgICAgICBlbmRYOiB4ICsgd2lkdGggKiAwLjUsXG4gICAgICAgICAgICAgICAgZW5kWTpcbiAgICAgICAgICAgICAgICAgICAgeSArXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCArXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldEJvcmRlckxpbmVXaWR0aCArXG4gICAgICAgICAgICAgICAgICAgIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgLSBleHRyYU9mZnNldCA6IDApICtcbiAgICAgICAgICAgICAgICAgICAgRVhURU5EX1JBRElVUyArXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbTWluZExheW91dFR5cGUubGVmdEJvdHRvbUluZGVudGVkXToge1xuICAgICAgICAgICAgICAgIHN0YXJ0WDogeCArIHdpZHRoICogMC41LFxuICAgICAgICAgICAgICAgIHN0YXJ0WTpcbiAgICAgICAgICAgICAgICAgICAgeSArIGhlaWdodCArIG9mZnNldEJvcmRlckxpbmVXaWR0aCArIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgOiAwKSArIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGgsXG4gICAgICAgICAgICAgICAgZW5kWDogeCArIHdpZHRoICogMC41LFxuICAgICAgICAgICAgICAgIGVuZFk6XG4gICAgICAgICAgICAgICAgICAgIHkgK1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgK1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXRCb3JkZXJMaW5lV2lkdGggK1xuICAgICAgICAgICAgICAgICAgICAob2Zmc2V0ID4gMCA/IG9mZnNldCArIFFVSUNLX0lOU0VSVF9DSVJDTEVfT0ZGU0VUIC0gZXh0cmFPZmZzZXQgOiAwKSArXG4gICAgICAgICAgICAgICAgICAgIEVYVEVORF9SQURJVVMgK1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXRSb290Qm9yZGVyTGluZVdpZHRoXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW01pbmRMYXlvdXRUeXBlLmxlZnRUb3BJbmRlbnRlZF06IHtcbiAgICAgICAgICAgICAgICBzdGFydFg6IHggKyB3aWR0aCAqIDAuNSxcbiAgICAgICAgICAgICAgICBzdGFydFk6IHkgLSBvZmZzZXRCb3JkZXJMaW5lV2lkdGggLSAob2Zmc2V0ID4gMCA/IG9mZnNldCArIFFVSUNLX0lOU0VSVF9DSVJDTEVfT0ZGU0VUIDogMCkgLSBvZmZzZXRSb290Qm9yZGVyTGluZVdpZHRoLFxuICAgICAgICAgICAgICAgIGVuZFg6IHggKyB3aWR0aCAqIDAuNSxcbiAgICAgICAgICAgICAgICBlbmRZOlxuICAgICAgICAgICAgICAgICAgICB5IC1cbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Qm9yZGVyTGluZVdpZHRoIC1cbiAgICAgICAgICAgICAgICAgICAgKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCA6IDApIC1cbiAgICAgICAgICAgICAgICAgICAgRVhURU5EX1JBRElVUyAtXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbTWluZExheW91dFR5cGUucmlnaHRCb3R0b21JbmRlbnRlZF06IHtcbiAgICAgICAgICAgICAgICBzdGFydFg6IHggKyB3aWR0aCAqIDAuNSxcbiAgICAgICAgICAgICAgICBzdGFydFk6XG4gICAgICAgICAgICAgICAgICAgIHkgKyBoZWlnaHQgKyBvZmZzZXRCb3JkZXJMaW5lV2lkdGggKyAob2Zmc2V0ID4gMCA/IG9mZnNldCArIFFVSUNLX0lOU0VSVF9DSVJDTEVfT0ZGU0VUIDogMCkgKyBvZmZzZXRSb290Qm9yZGVyTGluZVdpZHRoLFxuICAgICAgICAgICAgICAgIGVuZFg6IHggKyB3aWR0aCAqIDAuNSxcbiAgICAgICAgICAgICAgICBlbmRZOlxuICAgICAgICAgICAgICAgICAgICB5ICtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Qm9yZGVyTGluZVdpZHRoICtcbiAgICAgICAgICAgICAgICAgICAgKG9mZnNldCA+IDAgPyBvZmZzZXQgKyBRVUlDS19JTlNFUlRfQ0lSQ0xFX09GRlNFVCAtIGV4dHJhT2Zmc2V0IDogMCkgK1xuICAgICAgICAgICAgICAgICAgICBFWFRFTkRfUkFESVVTICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtNaW5kTGF5b3V0VHlwZS5yaWdodFRvcEluZGVudGVkXToge1xuICAgICAgICAgICAgICAgIHN0YXJ0WDogeCArIHdpZHRoICogMC41LFxuICAgICAgICAgICAgICAgIHN0YXJ0WTogeSAtIG9mZnNldEJvcmRlckxpbmVXaWR0aCAtIChvZmZzZXQgPiAwID8gb2Zmc2V0ICsgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgOiAwKSAtIG9mZnNldFJvb3RCb3JkZXJMaW5lV2lkdGgsXG4gICAgICAgICAgICAgICAgZW5kWDogeCArIHdpZHRoICogMC41LFxuICAgICAgICAgICAgICAgIGVuZFk6XG4gICAgICAgICAgICAgICAgICAgIHkgLVxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRCb3JkZXJMaW5lV2lkdGggLVxuICAgICAgICAgICAgICAgICAgICAob2Zmc2V0ID4gMCA/IG9mZnNldCArIFFVSUNLX0lOU0VSVF9DSVJDTEVfT0ZGU0VUIDogMCkgLVxuICAgICAgICAgICAgICAgICAgICBFWFRFTkRfUkFESVVTIC1cbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0Um9vdEJvcmRlckxpbmVXaWR0aFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoc2hhcGUgPT09IE1pbmROb2RlU2hhcGUucm91bmRSZWN0YW5nbGUgfHwgZWxlbWVudC5pc1Jvb3QpIHtcbiAgICAgICAgICAgIHVuZGVybGluZUNvb3JkaW5hdGVzW01pbmRMYXlvdXRUeXBlLmxlZnRdLnN0YXJ0WSAtPSBoZWlnaHQgKiAwLjU7XG4gICAgICAgICAgICB1bmRlcmxpbmVDb29yZGluYXRlc1tNaW5kTGF5b3V0VHlwZS5sZWZ0XS5lbmRZIC09IGhlaWdodCAqIDAuNTtcbiAgICAgICAgICAgIHVuZGVybGluZUNvb3JkaW5hdGVzW01pbmRMYXlvdXRUeXBlLnJpZ2h0XS5zdGFydFkgLT0gaGVpZ2h0ICogMC41O1xuICAgICAgICAgICAgdW5kZXJsaW5lQ29vcmRpbmF0ZXNbTWluZExheW91dFR5cGUucmlnaHRdLmVuZFkgLT0gaGVpZ2h0ICogMC41O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJyYW5jaENvbG9yID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KSA/IGdldE5leHRCcmFuY2hDb2xvcihlbGVtZW50KSA6IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudCh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgbGV0IG5vZGVMYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50KGVsZW1lbnQpIGFzIEV4dGVuZExheW91dFR5cGU7XG4gICAgICAgIGlmIChlbGVtZW50LmlzUm9vdCAmJiBpc1N0YW5kYXJkTGF5b3V0KG5vZGVMYXlvdXQpKSB7XG4gICAgICAgICAgICBjb25zdCByb290ID0gZWxlbWVudCBhcyBPcmlnaW5Ob2RlO1xuICAgICAgICAgICAgbm9kZUxheW91dCA9IHJvb3QuY2hpbGRyZW4ubGVuZ3RoID49IHJvb3QucmlnaHROb2RlQ291bnQgPyBNaW5kTGF5b3V0VHlwZS5sZWZ0IDogTWluZExheW91dFR5cGUucmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdW5kZXJsaW5lQ29vcmRpbmF0ZSA9IHVuZGVybGluZUNvb3JkaW5hdGVzW25vZGVMYXlvdXRdO1xuICAgICAgICBpZiAodW5kZXJsaW5lQ29vcmRpbmF0ZSkge1xuICAgICAgICAgICAgY29uc3QgdW5kZXJsaW5lID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyh0aGlzLmJvYXJkKS5saW5lKFxuICAgICAgICAgICAgICAgIHVuZGVybGluZUNvb3JkaW5hdGUuc3RhcnRYLFxuICAgICAgICAgICAgICAgIHVuZGVybGluZUNvb3JkaW5hdGUuc3RhcnRZLFxuICAgICAgICAgICAgICAgIHVuZGVybGluZUNvb3JkaW5hdGUuZW5kWCxcbiAgICAgICAgICAgICAgICB1bmRlcmxpbmVDb29yZGluYXRlLmVuZFksXG4gICAgICAgICAgICAgICAgeyBzdHJva2U6IGJyYW5jaENvbG9yLCBzdHJva2VXaWR0aCB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY2lyY2xlQ29vcmRpbmF0ZXMgPSB7XG4gICAgICAgICAgICAgICAgc3RhcnRYOiB1bmRlcmxpbmVDb29yZGluYXRlLmVuZFgsXG4gICAgICAgICAgICAgICAgc3RhcnRZOiB1bmRlcmxpbmVDb29yZGluYXRlLmVuZFlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBjaXJjbGUgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLmNpcmNsZShjaXJjbGVDb29yZGluYXRlcy5zdGFydFgsIGNpcmNsZUNvb3JkaW5hdGVzLnN0YXJ0WSwgRVhURU5EX1JBRElVUywge1xuICAgICAgICAgICAgICAgIGZpbGw6IFFVSUNLX0lOU0VSVF9DSVJDTEVfQ09MT1IsXG4gICAgICAgICAgICAgICAgc3Ryb2tlOiBRVUlDS19JTlNFUlRfQ0lSQ0xFX0NPTE9SLFxuICAgICAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpbm5lckNyb3NzQ29vcmRpbmF0ZXMgPSB7XG4gICAgICAgICAgICAgICAgaG9yaXpvbnRhbDoge1xuICAgICAgICAgICAgICAgICAgICBzdGFydFg6IGNpcmNsZUNvb3JkaW5hdGVzLnN0YXJ0WCAtIEVYVEVORF9SQURJVVMgKiAwLjUgKyAzLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFk6IGNpcmNsZUNvb3JkaW5hdGVzLnN0YXJ0WSxcbiAgICAgICAgICAgICAgICAgICAgZW5kWDogY2lyY2xlQ29vcmRpbmF0ZXMuc3RhcnRYICsgRVhURU5EX1JBRElVUyAqIDAuNSAtIDMsXG4gICAgICAgICAgICAgICAgICAgIGVuZFk6IGNpcmNsZUNvb3JkaW5hdGVzLnN0YXJ0WVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmVydGljYWw6IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRYOiBjaXJjbGVDb29yZGluYXRlcy5zdGFydFgsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0WTogY2lyY2xlQ29vcmRpbmF0ZXMuc3RhcnRZIC0gRVhURU5EX1JBRElVUyAqIDAuNSArIDMsXG4gICAgICAgICAgICAgICAgICAgIGVuZFg6IGNpcmNsZUNvb3JkaW5hdGVzLnN0YXJ0WCxcbiAgICAgICAgICAgICAgICAgICAgZW5kWTogY2lyY2xlQ29vcmRpbmF0ZXMuc3RhcnRZICsgRVhURU5EX1JBRElVUyAqIDAuNSAtIDNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgaW5uZXJDcm9zc0hMaW5lID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyh0aGlzLmJvYXJkKS5saW5lKFxuICAgICAgICAgICAgICAgIGlubmVyQ3Jvc3NDb29yZGluYXRlcy5ob3Jpem9udGFsLnN0YXJ0WCxcbiAgICAgICAgICAgICAgICBpbm5lckNyb3NzQ29vcmRpbmF0ZXMuaG9yaXpvbnRhbC5zdGFydFksXG4gICAgICAgICAgICAgICAgaW5uZXJDcm9zc0Nvb3JkaW5hdGVzLmhvcml6b250YWwuZW5kWCxcbiAgICAgICAgICAgICAgICBpbm5lckNyb3NzQ29vcmRpbmF0ZXMuaG9yaXpvbnRhbC5lbmRZLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBRVUlDS19JTlNFUlRfSU5ORVJfQ1JPU1NfQ09MT1IsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyUmluZ1ZMaW5lID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyh0aGlzLmJvYXJkKS5saW5lKFxuICAgICAgICAgICAgICAgIGlubmVyQ3Jvc3NDb29yZGluYXRlcy52ZXJ0aWNhbC5zdGFydFgsXG4gICAgICAgICAgICAgICAgaW5uZXJDcm9zc0Nvb3JkaW5hdGVzLnZlcnRpY2FsLnN0YXJ0WSxcbiAgICAgICAgICAgICAgICBpbm5lckNyb3NzQ29vcmRpbmF0ZXMudmVydGljYWwuZW5kWCxcbiAgICAgICAgICAgICAgICBpbm5lckNyb3NzQ29vcmRpbmF0ZXMudmVydGljYWwuZW5kWSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogUVVJQ0tfSU5TRVJUX0lOTkVSX0NST1NTX0NPTE9SLFxuICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogMlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBxdWlja0luc2VydEcuYXBwZW5kQ2hpbGQodW5kZXJsaW5lKTtcbiAgICAgICAgICAgIHF1aWNrSW5zZXJ0Ry5hcHBlbmRDaGlsZChjaXJjbGUpO1xuICAgICAgICAgICAgcXVpY2tJbnNlcnRHLmFwcGVuZENoaWxkKGlubmVyQ3Jvc3NITGluZSk7XG4gICAgICAgICAgICBxdWlja0luc2VydEcuYXBwZW5kQ2hpbGQoaW5uZXJSaW5nVkxpbmUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBxdWlja0luc2VydEc7XG4gICAgfVxuICAgIGFmdGVyRHJhdyhlbGVtZW50OiBNaW5kRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW4gbm90IGZpbmQgcXVpY2sgaW5zZXJ0IGdgKTtcbiAgICAgICAgfVxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5nLCAnbW91c2Vkb3duJylcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMuZywgJ21vdXNldXAnKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBmaW5kTmV3Q2hpbGROb2RlUGF0aCh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpbnNlcnRNaW5kRWxlbWVudCh0aGlzLmJvYXJkLCBlbGVtZW50LCBwYXRoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isIndentedLayout } from '@plait/layouts';
|
|
2
|
-
import { NODE_TO_PARENT, PlaitBoard, PlaitNode } from '@plait/core';
|
|
2
|
+
import { NODE_TO_PARENT, Path, PlaitBoard, PlaitNode } from '@plait/core';
|
|
3
3
|
import { MindQueries } from '../queries';
|
|
4
4
|
import { ELEMENT_TO_NODE } from '../utils';
|
|
5
5
|
export const PlaitMind = {
|
|
@@ -37,6 +37,17 @@ export const MindElement = {
|
|
|
37
37
|
const path = PlaitBoard.findPath(board, element);
|
|
38
38
|
return PlaitNode.get(board, path.slice(0, 1));
|
|
39
39
|
},
|
|
40
|
+
getAncestors(board, element) {
|
|
41
|
+
const path = PlaitBoard.findPath(board, element);
|
|
42
|
+
const parents = [];
|
|
43
|
+
for (const p of Path.ancestors(path, { reverse: true })) {
|
|
44
|
+
const n = PlaitNode.get(board, p);
|
|
45
|
+
if (n && !PlaitBoard.isBoard(n)) {
|
|
46
|
+
parents.push(n);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return parents;
|
|
50
|
+
},
|
|
40
51
|
getNode(element) {
|
|
41
52
|
const node = ELEMENT_TO_NODE.get(element);
|
|
42
53
|
if (!node) {
|
|
@@ -56,4 +67,4 @@ export const MindElement = {
|
|
|
56
67
|
return element.data.emojis;
|
|
57
68
|
}
|
|
58
69
|
};
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2ludGVyZmFjZXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFnQixTQUFTLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBa0MzQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckIsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFzQixFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7SUFDcEMsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsU0FBUyxDQUFDLEtBQWtCLEVBQUUsTUFBc0I7UUFDaEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELE9BQU8sT0FBTyxLQUFLLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsS0FBa0I7UUFDL0IsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBbUIsQ0FBQztRQUN4RSxPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBaUIsRUFBRSxPQUFxQjtRQUNsRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQztTQUNmO2FBQU07WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBaUI7UUFDdkIsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUN4RDtRQUNELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFDO1FBQ3ZELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBaUIsRUFBRSxPQUFvQjtRQUMzQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFjLENBQUM7SUFDL0QsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUFpQixFQUFFLE9BQW9CO1FBQ2hELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sT0FBTyxHQUFtQixFQUFFLENBQUM7UUFDbkMsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3JELE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuQjtTQUNKO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFvQjtRQUN4QixNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN2RTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxTQUFTLENBQUMsT0FBb0I7UUFDMUIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQztTQUNmO2FBQU07WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsT0FBK0I7UUFDckMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUMvQixDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmROb2RlU2hhcGUgfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZSc7XG5pbXBvcnQgeyBpc0luZGVudGVkTGF5b3V0LCBNaW5kTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IE5PREVfVE9fUEFSRU5ULCBQYXRoLCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0Tm9kZSwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kUXVlcmllcyB9IGZyb20gJy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19OT0RFIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQmFzZURhdGEsIEVtb2ppRGF0YSB9IGZyb20gJy4vZWxlbWVudC1kYXRhJztcblxuZXhwb3J0IGludGVyZmFjZSBNaW5kRWxlbWVudDxUID0gQmFzZURhdGE+IGV4dGVuZHMgUGxhaXRFbGVtZW50IHtcbiAgICBkYXRhOiBUO1xuICAgIGNoaWxkcmVuOiBNaW5kRWxlbWVudFtdO1xuICAgIHJpZ2h0Tm9kZUNvdW50PzogbnVtYmVyO1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gICAgaXNSb290PzogYm9vbGVhbjtcblxuICAgIC8vIG5vZGUgc3R5bGUgYXR0cmlidXRlc1xuICAgIGZpbGw/OiBzdHJpbmc7XG4gICAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG4gICAgc2hhcGU/OiBNaW5kTm9kZVNoYXBlO1xuXG4gICAgLy8gbGluayBzdHlsZSBhdHRyaWJ1dGVzXG4gICAgYnJhbmNoQ29sb3I/OiBzdHJpbmc7XG4gICAgYnJhbmNoV2lkdGg/OiBudW1iZXI7XG5cbiAgICAvLyBsYXlvdXRcbiAgICBsYXlvdXQ/OiBNaW5kTGF5b3V0VHlwZTtcbiAgICBpc0NvbGxhcHNlZD86IGJvb2xlYW47XG5cbiAgICBzdGFydD86IG51bWJlcjtcbiAgICBlbmQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaXRNaW5kIGV4dGVuZHMgTWluZEVsZW1lbnQge1xuICAgIHR5cGU6ICdtaW5kbWFwJztcbiAgICBwb2ludHM6IFBvaW50W107XG59XG5cbmV4cG9ydCBjb25zdCBQbGFpdE1pbmQgPSB7XG4gICAgaXNNaW5kOiAodmFsdWU6IGFueSk6IHZhbHVlIGlzIFBsYWl0TWluZCA9PiB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50eXBlID09PSAnbWluZG1hcCc7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IE1pbmRFbGVtZW50ID0ge1xuICAgIGhhc0xheW91dCh2YWx1ZTogTWluZEVsZW1lbnQsIGxheW91dDogTWluZExheW91dFR5cGUpIHtcbiAgICAgICAgY29uc3QgX2xheW91dCA9IE1pbmRRdWVyaWVzLmdldExheW91dEJ5RWxlbWVudCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBfbGF5b3V0ID09PSBsYXlvdXQ7XG4gICAgfSxcbiAgICBpc0luZGVudGVkTGF5b3V0KHZhbHVlOiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBfbGF5b3V0ID0gTWluZFF1ZXJpZXMuZ2V0TGF5b3V0QnlFbGVtZW50KHZhbHVlKSBhcyBNaW5kTGF5b3V0VHlwZTtcbiAgICAgICAgcmV0dXJuIGlzSW5kZW50ZWRMYXlvdXQoX2xheW91dCk7XG4gICAgfSxcbiAgICBpc01pbmRFbGVtZW50KGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQpOiBlbGVtZW50IGlzIE1pbmRFbGVtZW50IHtcbiAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBjb25zdCByb290RWxlbWVudCA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGguc2xpY2UoMCwgMSkpO1xuICAgICAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChyb290RWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRQYXJlbnQobm9kZTogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQobm9kZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbWluZCByb290IG5vZGUgY2FuIG5vdCBnZXQgcGFyZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyZW50ID0gTk9ERV9UT19QQVJFTlQuZ2V0KG5vZGUpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgIH0sXG4gICAgZ2V0Um9vdChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gUGxhaXROb2RlLmdldChib2FyZCwgcGF0aC5zbGljZSgwLCAxKSkgYXMgUGxhaXRNaW5kO1xuICAgIH0sXG4gICAgZ2V0QW5jZXN0b3JzKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHBhcmVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBQYXRoLmFuY2VzdG9ycyhwYXRoLCB7IHJldmVyc2U6IHRydWUgfSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG4gPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwKTtcbiAgICAgICAgICAgIGlmIChuICYmICFQbGFpdEJvYXJkLmlzQm9hcmQobikpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRzLnB1c2gobik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcmVudHM7XG4gICAgfSxcbiAgICBnZXROb2RlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBFTEVNRU5UX1RPX05PREUuZ2V0KGVsZW1lbnQpO1xuICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBnZXQgbm9kZSBmcm9tICR7SlNPTi5zdHJpbmdpZnkoZWxlbWVudCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSxcbiAgICBoYXNFbW9qaXMoZWxlbWVudDogTWluZEVsZW1lbnQpOiBlbGVtZW50IGlzIE1pbmRFbGVtZW50PEVtb2ppRGF0YT4ge1xuICAgICAgICBpZiAoZWxlbWVudC5kYXRhLmVtb2ppcykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldEVtb2ppcyhlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmRhdGEuZW1vamlzO1xuICAgIH1cbn07XG4iXX0=
|