@plait/mind 0.2.0-next.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants/abstract-node.d.ts +4 -0
- package/constants/default.d.ts +1 -2
- package/constants/index.d.ts +4 -1
- package/constants/node-rule.d.ts +1 -0
- package/constants/node-style.d.ts +17 -0
- package/constants/node-topic-style.d.ts +4 -0
- package/draw/richtext.d.ts +1 -1
- package/esm2020/constants/abstract-node.mjs +5 -0
- package/esm2020/constants/default.mjs +2 -3
- package/esm2020/constants/index.mjs +5 -2
- package/esm2020/constants/node-rule.mjs +2 -0
- package/esm2020/constants/node-style.mjs +19 -0
- package/esm2020/constants/node-topic-style.mjs +5 -0
- package/esm2020/draw/abstract.mjs +4 -3
- package/esm2020/draw/indented-link.mjs +15 -15
- package/esm2020/draw/link/abstract-link.mjs +6 -4
- package/esm2020/draw/link/logic-link.mjs +10 -8
- package/esm2020/draw/link.mjs +8 -7
- package/esm2020/draw/richtext.mjs +10 -8
- package/esm2020/draw/shape.mjs +5 -5
- package/esm2020/drawer/quick-insert.drawer.mjs +13 -14
- package/esm2020/interfaces/abstract.mjs +1 -1
- package/esm2020/interfaces/element.mjs +20 -1
- package/esm2020/interfaces/node.mjs +1 -10
- package/esm2020/layout-option.mjs +3 -3
- package/esm2020/node.component.mjs +43 -34
- package/esm2020/plugins/emoji/emoji.drawer.mjs +4 -8
- package/esm2020/plugins/emoji/emoji.mjs +31 -3
- package/esm2020/plugins/with-abstract.mjs +2 -2
- package/esm2020/plugins/with-dnd.mjs +23 -123
- package/esm2020/plugins/with-mind.mjs +37 -29
- package/esm2020/queries/get-available-sublayouts-by-element.mjs +5 -10
- package/esm2020/queries/get-branch-layouts.mjs +7 -7
- package/esm2020/queries/get-correct-layout-by-element.mjs +28 -31
- package/esm2020/queries/get-layout-by-element.mjs +11 -9
- package/esm2020/queries/index.mjs +1 -3
- package/esm2020/transforms/abstract-node.mjs +68 -0
- package/esm2020/transforms/index.mjs +6 -2
- package/esm2020/transforms/layout.mjs +3 -3
- package/esm2020/transforms/node.mjs +2 -2
- package/esm2020/utils/abstract/common.mjs +90 -70
- package/esm2020/utils/abstract/resize.mjs +3 -3
- package/esm2020/utils/clipboard.mjs +54 -14
- package/esm2020/utils/direction-corrector.mjs +11 -11
- package/esm2020/utils/dnd.mjs +122 -0
- package/esm2020/utils/draw-placeholder.mjs +11 -9
- package/esm2020/utils/drop-target-corrector.mjs +11 -10
- package/esm2020/utils/index.mjs +1 -2
- package/esm2020/utils/layout.mjs +1 -1
- package/esm2020/utils/mind.mjs +30 -72
- package/esm2020/utils/node-space.mjs +23 -18
- package/esm2020/utils/node-style/branch.mjs +34 -20
- package/esm2020/utils/node-style/common.mjs +13 -0
- package/esm2020/utils/node-style/index.mjs +3 -2
- package/esm2020/utils/node-style/shape.mjs +21 -0
- package/esm2020/utils/path.mjs +4 -3
- package/fesm2015/plait-mind.mjs +862 -713
- package/fesm2015/plait-mind.mjs.map +1 -1
- package/fesm2020/plait-mind.mjs +865 -711
- package/fesm2020/plait-mind.mjs.map +1 -1
- package/interfaces/abstract.d.ts +3 -0
- package/interfaces/element.d.ts +7 -2
- package/interfaces/node.d.ts +0 -1
- package/node.component.d.ts +0 -1
- package/package.json +1 -1
- package/plugins/emoji/emoji.d.ts +5 -1
- package/plugins/with-dnd.d.ts +0 -9
- package/queries/get-available-sublayouts-by-element.d.ts +2 -6
- package/queries/get-branch-layouts.d.ts +2 -1
- package/queries/get-correct-layout-by-element.d.ts +2 -1
- package/queries/index.d.ts +3 -4
- package/styles/styles.scss +19 -19
- package/transforms/abstract-node.d.ts +6 -0
- package/transforms/index.d.ts +3 -0
- package/utils/abstract/common.d.ts +6 -8
- package/utils/direction-corrector.d.ts +2 -1
- package/utils/dnd.d.ts +16 -0
- package/utils/drop-target-corrector.d.ts +2 -1
- package/utils/index.d.ts +0 -1
- package/utils/mind.d.ts +4 -5
- package/utils/node-space.d.ts +5 -4
- package/utils/node-style/branch.d.ts +6 -1
- package/utils/node-style/common.d.ts +3 -0
- package/utils/node-style/index.d.ts +2 -1
- package/utils/node-style/shape.d.ts +4 -0
- package/constants/node.d.ts +0 -17
- package/esm2020/constants/node.mjs +0 -19
- package/esm2020/queries/get-layout-parent-by-element.mjs +0 -17
- package/esm2020/utils/node-style/node.mjs +0 -22
- package/esm2020/utils/shape.mjs +0 -17
- package/queries/get-layout-parent-by-element.d.ts +0 -8
- package/utils/node-style/node.d.ts +0 -3
- package/utils/shape.d.ts +0 -3
package/constants/default.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
export declare const BASE = 4;
|
|
2
2
|
export declare const PRIMARY_COLOR = "#6698FF";
|
|
3
|
-
export declare const MINDMAP_KEY = "plait-mindmap";
|
|
4
|
-
export declare const MAX_RADIUS: number;
|
|
5
3
|
export declare const TRANSPARENT = "transparent";
|
|
6
4
|
export declare const GRAY_COLOR = "#AAAAAA";
|
|
7
5
|
export declare const STROKE_WIDTH = 3;
|
|
6
|
+
export declare const BRANCH_WIDTH = 3;
|
|
8
7
|
export declare const EXTEND_OFFSET = 8;
|
|
9
8
|
export declare const EXTEND_RADIUS = 16;
|
|
10
9
|
export declare const QUICK_INSERT_CIRCLE_OFFSET = 9;
|
package/constants/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const NODE_MIN_WIDTH = 18;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const DefaultAbstractNodeStyle: {
|
|
2
|
+
strokeColor: string;
|
|
3
|
+
strokeWidth: number;
|
|
4
|
+
branchColor: string;
|
|
5
|
+
branchWidth: number;
|
|
6
|
+
fill: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const DefaultNodeStyle: {
|
|
9
|
+
strokeWidth: number;
|
|
10
|
+
branchWidth: number;
|
|
11
|
+
fill: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const DefaultRootStyle: {
|
|
14
|
+
fill: string;
|
|
15
|
+
strokeColor: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const BRANCH_COLORS: string[];
|
package/draw/richtext.d.ts
CHANGED
|
@@ -8,8 +8,8 @@ export declare function drawMindNodeRichtext(board: PlaitMindBoard, node: MindNo
|
|
|
8
8
|
};
|
|
9
9
|
export declare function updateMindNodeTopicSize(board: PlaitMindBoard, node: MindNode, g: SVGGElement, isEditable: boolean): void;
|
|
10
10
|
export declare function getRichtextRectangleByNode(board: PlaitMindBoard, node: MindNode): {
|
|
11
|
-
width: number;
|
|
12
11
|
height: number;
|
|
12
|
+
width: number;
|
|
13
13
|
x: number;
|
|
14
14
|
y: number;
|
|
15
15
|
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const ABSTRACT_HANDLE_COLOR = '#6698FF80'; //primary color 50% opacity
|
|
2
|
+
export const ABSTRACT_INCLUDED_OUTLINE_OFFSET = 3.5;
|
|
3
|
+
export const ABSTRACT_HANDLE_LENGTH = 10;
|
|
4
|
+
export const ABSTRACT_HANDLE_MASK_WIDTH = 8;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2NvbnN0YW50cy9hYnN0cmFjdC1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFdBQVcsQ0FBQyxDQUFDLDJCQUEyQjtBQUM3RSxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFHLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBQlNUUkFDVF9IQU5ETEVfQ09MT1IgPSAnIzY2OThGRjgwJzsgLy9wcmltYXJ5IGNvbG9yIDUwJSBvcGFjaXR5XG5leHBvcnQgY29uc3QgQUJTVFJBQ1RfSU5DTFVERURfT1VUTElORV9PRkZTRVQgPSAzLjU7XG5leHBvcnQgY29uc3QgQUJTVFJBQ1RfSEFORExFX0xFTkdUSCA9IDEwO1xuXG5leHBvcnQgY29uc3QgQUJTVFJBQ1RfSEFORExFX01BU0tfV0lEVEggPSA4OyJdfQ==
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
export const BASE = 4;
|
|
2
2
|
export const PRIMARY_COLOR = '#6698FF';
|
|
3
|
-
export const MINDMAP_KEY = 'plait-mindmap';
|
|
4
|
-
export const MAX_RADIUS = BASE * 4;
|
|
5
3
|
export const TRANSPARENT = 'transparent';
|
|
6
4
|
export const GRAY_COLOR = '#AAAAAA';
|
|
7
5
|
export const STROKE_WIDTH = 3;
|
|
6
|
+
export const BRANCH_WIDTH = 3;
|
|
8
7
|
export const EXTEND_OFFSET = 8;
|
|
9
8
|
export const EXTEND_RADIUS = 16;
|
|
10
9
|
export const QUICK_INSERT_CIRCLE_OFFSET = 9;
|
|
11
10
|
export const QUICK_INSERT_CIRCLE_COLOR = '#6698FF';
|
|
12
11
|
export const QUICK_INSERT_INNER_CROSS_COLOR = 'white';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2NvbnN0YW50cy9kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFDcEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUM5QixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFDL0IsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLENBQUM7QUFDNUMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsU0FBUyxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCQVNFID0gNDtcbmV4cG9ydCBjb25zdCBQUklNQVJZX0NPTE9SID0gJyM2Njk4RkYnO1xuXG5leHBvcnQgY29uc3QgVFJBTlNQQVJFTlQgPSAndHJhbnNwYXJlbnQnO1xuZXhwb3J0IGNvbnN0IEdSQVlfQ09MT1IgPSAnI0FBQUFBQSc7XG5leHBvcnQgY29uc3QgU1RST0tFX1dJRFRIID0gMztcbmV4cG9ydCBjb25zdCBCUkFOQ0hfV0lEVEggPSAzO1xuXG5leHBvcnQgY29uc3QgRVhURU5EX09GRlNFVCA9IDg7XG5leHBvcnQgY29uc3QgRVhURU5EX1JBRElVUyA9IDE2O1xuXG5leHBvcnQgY29uc3QgUVVJQ0tfSU5TRVJUX0NJUkNMRV9PRkZTRVQgPSA5O1xuZXhwb3J0IGNvbnN0IFFVSUNLX0lOU0VSVF9DSVJDTEVfQ09MT1IgPSAnIzY2OThGRic7XG5leHBvcnQgY29uc3QgUVVJQ0tfSU5TRVJUX0lOTkVSX0NST1NTX0NPTE9SID0gJ3doaXRlJztcbiJdfQ==
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
export * from './default';
|
|
2
|
-
export * from './node';
|
|
3
|
-
|
|
2
|
+
export * from './node-style';
|
|
3
|
+
export * from './node-topic-style';
|
|
4
|
+
export * from './node-rule';
|
|
5
|
+
export * from './abstract-node';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0JztcbmV4cG9ydCAqIGZyb20gJy4vbm9kZS1zdHlsZSdcbmV4cG9ydCAqIGZyb20gJy4vbm9kZS10b3BpYy1zdHlsZSc7XG5leHBvcnQgKiBmcm9tICcuL25vZGUtcnVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0LW5vZGUnOyJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const NODE_MIN_WIDTH = 18;
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvY29uc3RhbnRzL25vZGUtcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE5PREVfTUlOX1dJRFRIID0gMTg7Il19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GRAY_COLOR } from "./default";
|
|
2
|
+
export const DefaultAbstractNodeStyle = {
|
|
3
|
+
strokeColor: GRAY_COLOR,
|
|
4
|
+
strokeWidth: 2,
|
|
5
|
+
branchColor: GRAY_COLOR,
|
|
6
|
+
branchWidth: 2,
|
|
7
|
+
fill: '#FFFFFF'
|
|
8
|
+
};
|
|
9
|
+
export const DefaultNodeStyle = {
|
|
10
|
+
strokeWidth: 3,
|
|
11
|
+
branchWidth: 3,
|
|
12
|
+
fill: '#FFFFFF'
|
|
13
|
+
};
|
|
14
|
+
export const DefaultRootStyle = {
|
|
15
|
+
fill: '#F5F5F5',
|
|
16
|
+
strokeColor: '#F5F5F5',
|
|
17
|
+
};
|
|
18
|
+
export const BRANCH_COLORS = ['#A287E1', '#6F81DB', '#6EC4C4', '#DFB85D', '#B1C774', '#77C386', '#C28976', '#E48484', '#E482D4', '#69B1E4'];
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2NvbnN0YW50cy9ub2RlLXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDcEMsV0FBVyxFQUFFLFVBQVU7SUFDdkIsV0FBVyxFQUFFLENBQUM7SUFDZCxXQUFXLEVBQUUsVUFBVTtJQUN2QixXQUFXLEVBQUUsQ0FBQztJQUNkLElBQUksRUFBRSxTQUFTO0NBQ2xCLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixXQUFXLEVBQUUsQ0FBQztJQUNkLFdBQVcsRUFBRSxDQUFDO0lBQ2QsSUFBSSxFQUFFLFNBQVM7Q0FDbEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLElBQUksRUFBRSxTQUFTO0lBQ2YsV0FBVyxFQUFFLFNBQVM7Q0FDekIsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR1JBWV9DT0xPUiB9IGZyb20gXCIuL2RlZmF1bHRcIjtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRBYnN0cmFjdE5vZGVTdHlsZSA9IHtcbiAgICBzdHJva2VDb2xvcjogR1JBWV9DT0xPUixcbiAgICBzdHJva2VXaWR0aDogMixcbiAgICBicmFuY2hDb2xvcjogR1JBWV9DT0xPUixcbiAgICBicmFuY2hXaWR0aDogMixcbiAgICBmaWxsOiAnI0ZGRkZGRidcbn07XG5cblxuZXhwb3J0IGNvbnN0IERlZmF1bHROb2RlU3R5bGUgPSB7XG4gICAgc3Ryb2tlV2lkdGg6IDMsXG4gICAgYnJhbmNoV2lkdGg6IDMsXG4gICAgZmlsbDogJyNGRkZGRkYnXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFJvb3RTdHlsZSA9IHtcbiAgICBmaWxsOiAnI0Y1RjVGNScsXG4gICAgc3Ryb2tlQ29sb3I6ICcjRjVGNUY1Jyxcbn1cblxuZXhwb3J0IGNvbnN0IEJSQU5DSF9DT0xPUlMgPSBbJyNBMjg3RTEnLCAnIzZGODFEQicsICcjNkVDNEM0JywgJyNERkI4NUQnLCAnI0IxQzc3NCcsICcjNzdDMzg2JywgJyNDMjg5NzYnLCAnI0U0ODQ4NCcsICcjRTQ4MkQ0JywgJyM2OUIxRTQnXTsiXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const TOPIC_COLOR = '#333';
|
|
2
|
+
export const TOPIC_FONT_SIZE = 14;
|
|
3
|
+
export const ROOT_TOPIC_FONT_SIZE = 18;
|
|
4
|
+
export const TOPIC_DEFAULT_MAX_WORD_COUNT = 34;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10b3BpYy1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2NvbnN0YW50cy9ub2RlLXRvcGljLXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRPUElDX0NPTE9SID0gJyMzMzMnO1xuZXhwb3J0IGNvbnN0IFRPUElDX0ZPTlRfU0laRSA9IDE0O1xuXG5leHBvcnQgY29uc3QgUk9PVF9UT1BJQ19GT05UX1NJWkUgPSAxODtcblxuZXhwb3J0IGNvbnN0IFRPUElDX0RFRkFVTFRfTUFYX1dPUkRfQ09VTlQgPSAzNDsiXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { drawAbstractRoundRectangle, createG, getRectangleByElements, PlaitBoard, RectangleClient } from '@plait/core';
|
|
2
|
-
import {
|
|
2
|
+
import { PRIMARY_COLOR } from '../constants';
|
|
3
|
+
import { ABSTRACT_HANDLE_COLOR, ABSTRACT_HANDLE_LENGTH, ABSTRACT_INCLUDED_OUTLINE_OFFSET } from '../constants/abstract-node';
|
|
3
4
|
import { AbstractHandlePosition, MindElement } from '../interfaces';
|
|
4
5
|
import { isHorizontalLayout } from '@plait/layouts';
|
|
5
6
|
import { MindQueries } from '../queries';
|
|
@@ -9,7 +10,7 @@ import { getRectangleByResizingLocation } from '../utils/abstract/resize';
|
|
|
9
10
|
export function drawAbstractIncludedOutline(board, roughSVG, element, activeHandlePosition, resizingLocation) {
|
|
10
11
|
const abstractIncludedG = createG();
|
|
11
12
|
const parentElement = MindElement.getParent(element);
|
|
12
|
-
const nodeLayout = MindQueries.getCorrectLayoutByElement(element);
|
|
13
|
+
const nodeLayout = MindQueries.getCorrectLayoutByElement(board, element);
|
|
13
14
|
const isHorizontal = isHorizontalLayout(nodeLayout);
|
|
14
15
|
const includedElements = parentElement.children.slice(element.start, element.end + 1);
|
|
15
16
|
let abstractRectangle = getRectangleByElements(board, includedElements, true);
|
|
@@ -70,4 +71,4 @@ export function changeBoardClass(board, activeHandlePosition, isHorizontal) {
|
|
|
70
71
|
PlaitBoard.getBoardNativeElement(board).classList.remove('abstract-resizing-vertical');
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9kcmF3L2Fic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsZ0NBQWdDLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFrQixrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRSxNQUFNLFVBQVUsMkJBQTJCLENBQ3ZDLEtBQWlCLEVBQ2pCLFFBQWtCLEVBQ2xCLE9BQW9CLEVBQ3BCLG9CQUE2QyxFQUM3QyxnQkFBeUI7SUFFekIsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUVwQyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQW1CLENBQUM7SUFDcEYsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENB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QUFDLENBQUM7UUFDekYsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQUMxRjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkcmF3QWJzdHJhY3RSb3VuZFJlY3RhbmdsZSwgY3JlYXRlRywgZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cywgUGxhaXRCb2FyZCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQUJTVFJBQ1RfSEFORExFX0NPTE9SLCBBQlNUUkFDVF9IQU5ETEVfTEVOR1RILCBBQlNUUkFDVF9JTkNMVURFRF9PVVRMSU5FX09GRlNFVCwgUFJJTUFSWV9DT0xPUiB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBSb3VnaFNWRyB9IGZyb20gJ3JvdWdoanMvYmluL3N2Zyc7XG5pbXBvcnQgeyBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLCBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWluZExheW91dFR5cGUsIGlzSG9yaXpvbnRhbExheW91dCB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBnZXRMYXlvdXREaXJlY3Rpb24sIGdldFBvaW50QnlQbGFjZW1lbnQsIG1vdmVQb2ludCwgdHJhbnNmb3JtUGxhY2VtZW50IH0gZnJvbSAnLi4vdXRpbHMvcG9pbnQtcGxhY2VtZW50JztcbmltcG9ydCB7IEhvcml6b250YWxQbGFjZW1lbnQsIFBvaW50UGxhY2VtZW50LCBWZXJ0aWNhbFBsYWNlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlSZXNpemluZ0xvY2F0aW9uIH0gZnJvbSAnLi4vdXRpbHMvYWJzdHJhY3QvcmVzaXplJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdBYnN0cmFjdEluY2x1ZGVkT3V0bGluZShcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICByb3VnaFNWRzogUm91Z2hTVkcsXG4gICAgZWxlbWVudDogTWluZEVsZW1lbnQsXG4gICAgYWN0aXZlSGFuZGxlUG9zaXRpb24/OiBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLFxuICAgIHJlc2l6aW5nTG9jYXRpb24/OiBudW1iZXJcbikge1xuICAgIGNvbnN0IGFic3RyYWN0SW5jbHVkZWRHID0gY3JlYXRlRygpO1xuXG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IE1pbmRFbGVtZW50LmdldFBhcmVudChlbGVtZW50KTtcbiAgICBjb25zdCBub2RlTGF5b3V0ID0gTWluZFF1ZXJpZXMuZ2V0Q29ycmVjdExheW91dEJ5RWxlbWVudChlbGVtZW50KSBhcyBNaW5kTGF5b3V0VHlwZTtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxMYXlvdXQobm9kZUxheW91dCk7XG5cbiAgICBjb25zdCBpbmNsdWRlZEVsZW1lbnRzID0gcGFyZW50RWxlbWVudC5jaGlsZHJlbi5zbGljZShlbGVtZW50LnN0YXJ0ISwgZWxlbWVudC5lbmQhICsgMSk7XG4gICAgbGV0IGFic3RyYWN0UmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgaW5jbHVkZWRFbGVtZW50cywgdHJ1ZSk7XG4gICAgYWJzdHJhY3RSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0T3V0bGluZVJlY3RhbmdsZShhYnN0cmFjdFJlY3RhbmdsZSwgLUFCU1RSQUNUX0lOQ0xVREVEX09VVExJTkVfT0ZGU0VUKTtcblxuICAgIGlmIChyZXNpemluZ0xvY2F0aW9uKSB7XG4gICAgICAgIGFic3RyYWN0UmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlSZXNpemluZ0xvY2F0aW9uKGFic3RyYWN0UmVjdGFuZ2xlLCByZXNpemluZ0xvY2F0aW9uLCBhY3RpdmVIYW5kbGVQb3NpdGlvbiEsIGlzSG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVjdGFuZ2xlID0gZHJhd0Fic3RyYWN0Um91bmRSZWN0YW5nbGUoXG4gICAgICAgIHJvdWdoU1ZHLFxuICAgICAgICBhYnN0cmFjdFJlY3RhbmdsZS54LFxuICAgICAgICBhYnN0cmFjdFJlY3RhbmdsZS55LFxuICAgICAgICBhYnN0cmFjdFJlY3RhbmdsZS54ICsgYWJzdHJhY3RSZWN0YW5nbGUud2lkdGgsXG4gICAgICAgIGFic3RyYWN0UmVjdGFuZ2xlLnkgKyBhYnN0cmFjdFJlY3RhbmdsZS5oZWlnaHQsXG4gICAgICAgIGlzSG9yaXpvbnRhbCxcbiAgICAgICAge1xuICAgICAgICAgICAgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsXG4gICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBzdGFydFBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LmNlbnRlciwgVmVydGljYWxQbGFjZW1lbnQudG9wXSBhcyBQb2ludFBsYWNlbWVudDtcbiAgICBjb25zdCBlbmRQbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5jZW50ZXIsIFZlcnRpY2FsUGxhY2VtZW50LmJvdHRvbV0gYXMgUG9pbnRQbGFjZW1lbnQ7XG5cbiAgICBjb25zdCBsaW5rRGlyZWN0aW9uID0gZ2V0TGF5b3V0RGlyZWN0aW9uKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCksIGlzSG9yaXpvbnRhbCk7XG5cbiAgICB0cmFuc2Zvcm1QbGFjZW1lbnQoc3RhcnRQbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuICAgIHRyYW5zZm9ybVBsYWNlbWVudChlbmRQbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgbGV0IHN0YXJ0Q2VudGVyUG9pbnQgPSBnZXRQb2ludEJ5UGxhY2VtZW50KGFic3RyYWN0UmVjdGFuZ2xlLCBzdGFydFBsYWNlbWVudCk7XG4gICAgbGV0IGVuZENlbnRlclBvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChhYnN0cmFjdFJlY3RhbmdsZSwgZW5kUGxhY2VtZW50KTtcblxuICAgIGNvbnN0IHN0YXJ0UG9pbnQxID0gbW92ZVBvaW50KHN0YXJ0Q2VudGVyUG9pbnQsIC1BQlNUUkFDVF9IQU5ETEVfTEVOR1RIIC8gMiwgbGlua0RpcmVjdGlvbik7XG4gICAgY29uc3Qgc3RhcnRQb2ludDIgPSBtb3ZlUG9pbnQoc3RhcnRDZW50ZXJQb2ludCwgQUJTVFJBQ1RfSEFORExFX0xFTkdUSCAvIDIsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgY29uc3QgZW5kUG9pbnQxID0gbW92ZVBvaW50KGVuZENlbnRlclBvaW50LCAtQUJTVFJBQ1RfSEFORExFX0xFTkdUSCAvIDIsIGxpbmtEaXJlY3Rpb24pO1xuICAgIGNvbnN0IGVuZFBvaW50MiA9IG1vdmVQb2ludChlbmRDZW50ZXJQb2ludCwgQUJTVFJBQ1RfSEFORExFX0xFTkdUSCAvIDIsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgY29uc3Qgc3RhcnRIYW5kbGUgPSByb3VnaFNWRy5saW5lKFxuICAgICAgICBzdGFydFBvaW50MVswXSxcbiAgICAgICAgc3RhcnRQb2ludDFbMV0sXG4gICAgICAgIHN0YXJ0UG9pbnQyWzBdLFxuICAgICAgICBzdGFydFBvaW50MlsxXSxcbiAgICAgICAgZ2V0SGFuZGxlT3B0aW9uKGFjdGl2ZUhhbmRsZVBvc2l0aW9uID09PSBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLnN0YXJ0KVxuICAgICk7XG5cbiAgICBjb25zdCBlbmRIYW5kbGUgPSByb3VnaFNWRy5saW5lKFxuICAgICAgICBlbmRQb2ludDFbMF0sXG4gICAgICAgIGVuZFBvaW50MVsxXSxcbiAgICAgICAgZW5kUG9pbnQyWzBdLFxuICAgICAgICBlbmRQb2ludDJbMV0sXG4gICAgICAgIGdldEhhbmRsZU9wdGlvbihhY3RpdmVIYW5kbGVQb3NpdGlvbiA9PT0gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5lbmQpXG4gICAgKTtcblxuICAgIGNoYW5nZUJvYXJkQ2xhc3MoYm9hcmQsIGFjdGl2ZUhhbmRsZVBvc2l0aW9uLCBpc0hvcml6b250YWwpO1xuXG4gICAgc3RhcnRIYW5kbGUuc2V0QXR0cmlidXRlKCdzdHJva2UtbGluZWNhcCcsICdyb3VuZCcpO1xuICAgIGVuZEhhbmRsZS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1saW5lY2FwJywgJ3JvdW5kJyk7XG5cbiAgICBhYnN0cmFjdEluY2x1ZGVkRy5hcHBlbmQoc3RhcnRIYW5kbGUpO1xuICAgIGFic3RyYWN0SW5jbHVkZWRHLmFwcGVuZChlbmRIYW5kbGUpO1xuICAgIGFic3RyYWN0SW5jbHVkZWRHLmFwcGVuZChyZWN0YW5nbGUpO1xuXG4gICAgcmV0dXJuIGFic3RyYWN0SW5jbHVkZWRHO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGFuZGxlT3B0aW9uKGlzSG92ZXI6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gaXNIb3ZlclxuICAgICAgICA/IHtcbiAgICAgICAgICAgICAgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLFxuICAgICAgICAgICAgICBzdHJva2VXaWR0aDogNCxcbiAgICAgICAgICAgICAgZmlsbFN0eWxlOiAnc29saWQnXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgICAgc3Ryb2tlOiBBQlNUUkFDVF9IQU5ETEVfQ09MT1IsXG4gICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAzLFxuICAgICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlQm9hcmRDbGFzcyhib2FyZDogUGxhaXRCb2FyZCwgYWN0aXZlSGFuZGxlUG9zaXRpb246IEFic3RyYWN0SGFuZGxlUG9zaXRpb24gfCB1bmRlZmluZWQsIGlzSG9yaXpvbnRhbDogYm9vbGVhbikge1xuICAgIGlmIChhY3RpdmVIYW5kbGVQb3NpdGlvbikge1xuICAgICAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkTmF0aXZlRWxlbWVudChib2FyZCkuY2xhc3NMaXN0LmFkZCgnYWJzdHJhY3QtcmVzaXppbmctaG9yaXpvbnRhbCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZE5hdGl2ZUVsZW1lbnQoYm9hcmQpLmNsYXNzTGlzdC5hZGQoJ2Fic3RyYWN0LXJlc2l6aW5nLXZlcnRpY2FsJyk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkTmF0aXZlRWxlbWVudChib2FyZCkuY2xhc3NMaXN0LnJlbW92ZSgnYWJzdHJhY3QtcmVzaXppbmctaG9yaXpvbnRhbCcpO1xuICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkTmF0aXZlRWxlbWVudChib2FyZCkuY2xhc3NMaXN0LnJlbW92ZSgnYWJzdHJhY3QtcmVzaXppbmctdmVydGljYWwnKTtcbiAgICB9XG59XG4iXX0=
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9kcmF3L2Fic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFrQixrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRSxNQUFNLFVBQVUsMkJBQTJCLENBQ3ZDLEtBQWlCLEVBQ2pCLFFBQWtCLEVBQ2xCLE9BQW9CLEVBQ3BCLG9CQUE2QyxFQUM3QyxnQkFBeUI7SUFFekIsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUVwQyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFtQixDQUFDO0lB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S0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3pGLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDMUY7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZHJhd0Fic3RyYWN0Um91bmRSZWN0YW5nbGUsIGNyZWF0ZUcsIGdldFJlY3RhbmdsZUJ5RWxlbWVudHMsIFBsYWl0Qm9hcmQsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBSSU1BUllfQ09MT1IgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQUJTVFJBQ1RfSEFORExFX0NPTE9SLCBBQlNUUkFDVF9IQU5ETEVfTEVOR1RILCBBQlNUUkFDVF9JTkNMVURFRF9PVVRMSU5FX09GRlNFVCB9IGZyb20gJy4uL2NvbnN0YW50cy9hYnN0cmFjdC1ub2RlJztcbmltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IEFic3RyYWN0SGFuZGxlUG9zaXRpb24sIE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNaW5kTGF5b3V0VHlwZSwgaXNIb3Jpem9udGFsTGF5b3V0IH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgTWluZFF1ZXJpZXMgfSBmcm9tICcuLi9xdWVyaWVzJztcbmltcG9ydCB7IGdldExheW91dERpcmVjdGlvbiwgZ2V0UG9pbnRCeVBsYWNlbWVudCwgbW92ZVBvaW50LCB0cmFuc2Zvcm1QbGFjZW1lbnQgfSBmcm9tICcuLi91dGlscy9wb2ludC1wbGFjZW1lbnQnO1xuaW1wb3J0IHsgSG9yaXpvbnRhbFBsYWNlbWVudCwgUG9pbnRQbGFjZW1lbnQsIFZlcnRpY2FsUGxhY2VtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeVJlc2l6aW5nTG9jYXRpb24gfSBmcm9tICcuLi91dGlscy9hYnN0cmFjdC9yZXNpemUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd0Fic3RyYWN0SW5jbHVkZWRPdXRsaW5lKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIHJvdWdoU1ZHOiBSb3VnaFNWRyxcbiAgICBlbGVtZW50OiBNaW5kRWxlbWVudCxcbiAgICBhY3RpdmVIYW5kbGVQb3NpdGlvbj86IEFic3RyYWN0SGFuZGxlUG9zaXRpb24sXG4gICAgcmVzaXppbmdMb2NhdGlvbj86IG51bWJlclxuKSB7XG4gICAgY29uc3QgYWJzdHJhY3RJbmNsdWRlZEcgPSBjcmVhdGVHKCk7XG5cbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IG5vZGVMYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50KGJvYXJkLCBlbGVtZW50KSBhcyBNaW5kTGF5b3V0VHlwZTtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxMYXlvdXQobm9kZUxheW91dCk7XG5cbiAgICBjb25zdCBpbmNsdWRlZEVsZW1lbnRzID0gcGFyZW50RWxlbWVudC5jaGlsZHJlbi5zbGljZShlbGVtZW50LnN0YXJ0ISwgZWxlbWVudC5lbmQhICsgMSk7XG4gICAgbGV0IGFic3RyYWN0UmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgaW5jbHVkZWRFbGVtZW50cywgdHJ1ZSk7XG4gICAgYWJzdHJhY3RSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0T3V0bGluZVJlY3RhbmdsZShhYnN0cmFjdFJlY3RhbmdsZSwgLUFCU1RSQUNUX0lOQ0xVREVEX09VVExJTkVfT0ZGU0VUKTtcblxuICAgIGlmIChyZXNpemluZ0xvY2F0aW9uKSB7XG4gICAgICAgIGFic3RyYWN0UmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlSZXNpemluZ0xvY2F0aW9uKGFic3RyYWN0UmVjdGFuZ2xlLCByZXNpemluZ0xvY2F0aW9uLCBhY3RpdmVIYW5kbGVQb3NpdGlvbiEsIGlzSG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVjdGFuZ2xlID0gZHJhd0Fic3RyYWN0Um91bmRSZWN0YW5nbGUoXG4gICAgICAgIHJvdWdoU1ZHLFxuICAgICAgICBhYnN0cmFjdFJlY3RhbmdsZS54LFxuICAgICAgICBhYnN0cmFjdFJlY3RhbmdsZS55LFxuICAgICAgICBhYnN0cmFjdFJlY3RhbmdsZS54ICsgYWJzdHJhY3RSZWN0YW5nbGUud2lkdGgsXG4gICAgICAgIGFic3RyYWN0UmVjdGFuZ2xlLnkgKyBhYnN0cmFjdFJlY3RhbmdsZS5oZWlnaHQsXG4gICAgICAgIGlzSG9yaXpvbnRhbCxcbiAgICAgICAge1xuICAgICAgICAgICAgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsXG4gICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBzdGFydFBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LmNlbnRlciwgVmVydGljYWxQbGFjZW1lbnQudG9wXSBhcyBQb2ludFBsYWNlbWVudDtcbiAgICBjb25zdCBlbmRQbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5jZW50ZXIsIFZlcnRpY2FsUGxhY2VtZW50LmJvdHRvbV0gYXMgUG9pbnRQbGFjZW1lbnQ7XG5cbiAgICBjb25zdCBsaW5rRGlyZWN0aW9uID0gZ2V0TGF5b3V0RGlyZWN0aW9uKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCksIGlzSG9yaXpvbnRhbCk7XG5cbiAgICB0cmFuc2Zvcm1QbGFjZW1lbnQoc3RhcnRQbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuICAgIHRyYW5zZm9ybVBsYWNlbWVudChlbmRQbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgbGV0IHN0YXJ0Q2VudGVyUG9pbnQgPSBnZXRQb2ludEJ5UGxhY2VtZW50KGFic3RyYWN0UmVjdGFuZ2xlLCBzdGFydFBsYWNlbWVudCk7XG4gICAgbGV0IGVuZENlbnRlclBvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChhYnN0cmFjdFJlY3RhbmdsZSwgZW5kUGxhY2VtZW50KTtcblxuICAgIGNvbnN0IHN0YXJ0UG9pbnQxID0gbW92ZVBvaW50KHN0YXJ0Q2VudGVyUG9pbnQsIC1BQlNUUkFDVF9IQU5ETEVfTEVOR1RIIC8gMiwgbGlua0RpcmVjdGlvbik7XG4gICAgY29uc3Qgc3RhcnRQb2ludDIgPSBtb3ZlUG9pbnQoc3RhcnRDZW50ZXJQb2ludCwgQUJTVFJBQ1RfSEFORExFX0xFTkdUSCAvIDIsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgY29uc3QgZW5kUG9pbnQxID0gbW92ZVBvaW50KGVuZENlbnRlclBvaW50LCAtQUJTVFJBQ1RfSEFORExFX0xFTkdUSCAvIDIsIGxpbmtEaXJlY3Rpb24pO1xuICAgIGNvbnN0IGVuZFBvaW50MiA9IG1vdmVQb2ludChlbmRDZW50ZXJQb2ludCwgQUJTVFJBQ1RfSEFORExFX0xFTkdUSCAvIDIsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgY29uc3Qgc3RhcnRIYW5kbGUgPSByb3VnaFNWRy5saW5lKFxuICAgICAgICBzdGFydFBvaW50MVswXSxcbiAgICAgICAgc3RhcnRQb2ludDFbMV0sXG4gICAgICAgIHN0YXJ0UG9pbnQyWzBdLFxuICAgICAgICBzdGFydFBvaW50MlsxXSxcbiAgICAgICAgZ2V0SGFuZGxlT3B0aW9uKGFjdGl2ZUhhbmRsZVBvc2l0aW9uID09PSBBYnN0cmFjdEhhbmRsZVBvc2l0aW9uLnN0YXJ0KVxuICAgICk7XG5cbiAgICBjb25zdCBlbmRIYW5kbGUgPSByb3VnaFNWRy5saW5lKFxuICAgICAgICBlbmRQb2ludDFbMF0sXG4gICAgICAgIGVuZFBvaW50MVsxXSxcbiAgICAgICAgZW5kUG9pbnQyWzBdLFxuICAgICAgICBlbmRQb2ludDJbMV0sXG4gICAgICAgIGdldEhhbmRsZU9wdGlvbihhY3RpdmVIYW5kbGVQb3NpdGlvbiA9PT0gQWJzdHJhY3RIYW5kbGVQb3NpdGlvbi5lbmQpXG4gICAgKTtcblxuICAgIGNoYW5nZUJvYXJkQ2xhc3MoYm9hcmQsIGFjdGl2ZUhhbmRsZVBvc2l0aW9uLCBpc0hvcml6b250YWwpO1xuXG4gICAgc3RhcnRIYW5kbGUuc2V0QXR0cmlidXRlKCdzdHJva2UtbGluZWNhcCcsICdyb3VuZCcpO1xuICAgIGVuZEhhbmRsZS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1saW5lY2FwJywgJ3JvdW5kJyk7XG5cbiAgICBhYnN0cmFjdEluY2x1ZGVkRy5hcHBlbmQoc3RhcnRIYW5kbGUpO1xuICAgIGFic3RyYWN0SW5jbHVkZWRHLmFwcGVuZChlbmRIYW5kbGUpO1xuICAgIGFic3RyYWN0SW5jbHVkZWRHLmFwcGVuZChyZWN0YW5nbGUpO1xuXG4gICAgcmV0dXJuIGFic3RyYWN0SW5jbHVkZWRHO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGFuZGxlT3B0aW9uKGlzSG92ZXI6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gaXNIb3ZlclxuICAgICAgICA/IHtcbiAgICAgICAgICAgICAgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLFxuICAgICAgICAgICAgICBzdHJva2VXaWR0aDogNCxcbiAgICAgICAgICAgICAgZmlsbFN0eWxlOiAnc29saWQnXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgICAgc3Ryb2tlOiBBQlNUUkFDVF9IQU5ETEVfQ09MT1IsXG4gICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAzLFxuICAgICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlQm9hcmRDbGFzcyhib2FyZDogUGxhaXRCb2FyZCwgYWN0aXZlSGFuZGxlUG9zaXRpb246IEFic3RyYWN0SGFuZGxlUG9zaXRpb24gfCB1bmRlZmluZWQsIGlzSG9yaXpvbnRhbDogYm9vbGVhbikge1xuICAgIGlmIChhY3RpdmVIYW5kbGVQb3NpdGlvbikge1xuICAgICAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkTmF0aXZlRWxlbWVudChib2FyZCkuY2xhc3NMaXN0LmFkZCgnYWJzdHJhY3QtcmVzaXppbmctaG9yaXpvbnRhbCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZE5hdGl2ZUVsZW1lbnQoYm9hcmQpLmNsYXNzTGlzdC5hZGQoJ2Fic3RyYWN0LXJlc2l6aW5nLXZlcnRpY2FsJyk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkTmF0aXZlRWxlbWVudChib2FyZCkuY2xhc3NMaXN0LnJlbW92ZSgnYWJzdHJhY3QtcmVzaXppbmctaG9yaXpvbnRhbCcpO1xuICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkTmF0aXZlRWxlbWVudChib2FyZCkuY2xhc3NMaXN0LnJlbW92ZSgnYWJzdHJhY3QtcmVzaXppbmctdmVydGljYWwnKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
2
|
-
import { MindNodeShape, STROKE_WIDTH } from '../constants';
|
|
3
2
|
import { PlaitBoard } from '@plait/core';
|
|
4
|
-
import {
|
|
3
|
+
import { getShapeByElement, getRectangleByNode, isChildUp } from '../utils';
|
|
5
4
|
import { MindLayoutType } from '@plait/layouts';
|
|
6
5
|
import { MindQueries } from '../queries';
|
|
7
|
-
import { getBranchColorByMindElement } from '../utils/node-style/branch';
|
|
6
|
+
import { getBranchColorByMindElement, getBranchWidthByMindElement } from '../utils/node-style/branch';
|
|
7
|
+
import { MindElementShape } from '../interfaces/element';
|
|
8
8
|
export function drawIndentedLink(board, node, child, defaultStroke = null, needDrawUnderline = true) {
|
|
9
|
-
const
|
|
9
|
+
const branchWidth = getBranchWidthByMindElement(board, child.origin);
|
|
10
|
+
const branchColor = defaultStroke || getBranchColorByMindElement(board, child.origin);
|
|
11
|
+
const isUnderlineShape = getShapeByElement(board, child.origin) === MindElementShape.underline;
|
|
10
12
|
let beginX, beginY, endX, endY, beginNode = node, endNode = child;
|
|
11
13
|
const beginRectangle = getRectangleByNode(beginNode);
|
|
12
14
|
const endRectangle = getRectangleByNode(endNode);
|
|
13
15
|
beginX = beginNode.x + beginNode.width / 2;
|
|
14
16
|
beginY = isChildUp(node, child) ? beginRectangle.y : beginRectangle.y + beginRectangle.height;
|
|
15
17
|
endX = node.left ? endNode.x + endNode.hGap + endRectangle.width : endNode.x + endNode.hGap;
|
|
16
|
-
endY =
|
|
18
|
+
endY = isUnderlineShape ? endNode.y + endNode.height - endNode.vGap : endNode.y + endNode.height / 2;
|
|
17
19
|
//根据位置,设置正负参数
|
|
18
20
|
let plusMinus = isChildUp(node, child) ? (node.left ? [-1, -1] : [1, -1]) : node.left ? [-1, 1] : [1, 1];
|
|
19
|
-
const layout = MindQueries.getCorrectLayoutByElement(node.origin);
|
|
20
|
-
const strokeWidth = child.origin.branchWidth ? child.origin.branchWidth : STROKE_WIDTH;
|
|
21
|
+
const layout = MindQueries.getCorrectLayoutByElement(board, node.origin);
|
|
21
22
|
if (beginNode.origin.isRoot) {
|
|
22
23
|
if (layout === MindLayoutType.leftBottomIndented || layout === MindLayoutType.rightBottomIndented) {
|
|
23
|
-
beginY +=
|
|
24
|
+
beginY += branchWidth;
|
|
24
25
|
}
|
|
25
26
|
if (layout === MindLayoutType.leftTopIndented || layout === MindLayoutType.rightTopIndented) {
|
|
26
|
-
beginY -=
|
|
27
|
+
beginY -= branchWidth;
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
let curve = [
|
|
@@ -34,12 +35,11 @@ export function drawIndentedLink(board, node, child, defaultStroke = null, needD
|
|
|
34
35
|
[beginX, endY - (endNode.hGap * plusMinus[1]) / 5],
|
|
35
36
|
[beginX + (endNode.hGap * plusMinus[0]) / 4, endY],
|
|
36
37
|
[beginX + (endNode.hGap * plusMinus[0] * 3) / 5, endY],
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
isUnderlineShape && needDrawUnderline ? [endX + (endNode.width - endNode.hGap * 2) * plusMinus[0], endY] : [endX, endY],
|
|
39
|
+
isUnderlineShape && needDrawUnderline ? [endX + (endNode.width - endNode.hGap * 2) * plusMinus[0], endY] : [endX, endY],
|
|
40
|
+
isUnderlineShape && needDrawUnderline ? [endX + (endNode.width - endNode.hGap * 2) * plusMinus[0], endY] : [endX, endY]
|
|
40
41
|
];
|
|
41
|
-
const stroke = defaultStroke || getBranchColorByMindElement(board, child.origin);
|
|
42
42
|
const points = pointsOnBezierCurves(curve);
|
|
43
|
-
return PlaitBoard.getRoughSVG(board).curve(points, { stroke, strokeWidth });
|
|
43
|
+
return PlaitBoard.getRoughSVG(board).curve(points, { stroke: branchColor, strokeWidth: branchWidth });
|
|
44
44
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZW50ZWQtbGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXcvaW5kZW50ZWQtbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsVUFBVSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsTUFBTSxVQUFVLGdCQUFnQixDQUM1QixLQUFpQixFQUNqQixJQUFjLEVBQ2QsS0FBZSxFQUNmLGdCQUErQixJQUFJLEVBQ25DLGlCQUFpQixHQUFHLElBQUk7SUFFeEIsTUFBTSxXQUFXLEdBQUcsMkJBQTJCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRSxNQUFNLFdBQVcsR0FBRyxhQUFhLElBQUksMkJBQTJCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV0RixNQUFNLGdCQUFnQixHQUFJLGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFzQixLQUFLLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztJQUNySCxJQUFJLE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxFQUNKLElBQUksRUFDSixTQUFTLEdBQUcsSUFBSSxFQUNoQixPQUFPLEdBQUcsS0FB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aUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQ3ZILGdCQUFnQixJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztRQUN2SCxnQkFBZ0IsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7S0FDMUgsQ0FBQztJQUVGLE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUNqSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcG9pbnRzT25CZXppZXJDdXJ2ZXMgfSBmcm9tICdwb2ludHMtb24tY3VydmUnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRTaGFwZUJ5RWxlbWVudCwgZ2V0UmVjdGFuZ2xlQnlOb2RlLCBpc0NoaWxkVXAgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBNaW5kTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBnZXRCcmFuY2hDb2xvckJ5TWluZEVsZW1lbnQsIGdldEJyYW5jaFdpZHRoQnlNaW5kRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL25vZGUtc3R5bGUvYnJhbmNoJztcbmltcG9ydCB7IE1pbmRFbGVtZW50U2hhcGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd0luZGVudGVkTGluayhcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBub2RlOiBNaW5kTm9kZSxcbiAgICBjaGlsZDogTWluZE5vZGUsXG4gICAgZGVmYXVsdFN0cm9rZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsXG4gICAgbmVlZERyYXdVbmRlcmxpbmUgPSB0cnVlXG4pIHtcbiAgICBjb25zdCBicmFuY2hXaWR0aCA9IGdldEJyYW5jaFdpZHRoQnlNaW5kRWxlbWVudChib2FyZCwgY2hpbGQub3JpZ2luKTtcbiAgICBjb25zdCBicmFuY2hDb2xvciA9IGRlZmF1bHRTdHJva2UgfHwgZ2V0QnJhbmNoQ29sb3JCeU1pbmRFbGVtZW50KGJvYXJkLCBjaGlsZC5vcmlnaW4pO1xuXG4gICAgY29uc3QgaXNVbmRlcmxpbmVTaGFwZSA9IChnZXRTaGFwZUJ5RWxlbWVudChib2FyZCwgY2hpbGQub3JpZ2luKSBhcyBNaW5kRWxlbWVudFNoYXBlKSA9PT0gTWluZEVsZW1lbnRTaGFwZS51bmRlcmxpbmU7XG4gICAgbGV0IGJlZ2luWCxcbiAgICAgICAgYmVnaW5ZLFxuICAgICAgICBlbmRYLFxuICAgICAgICBlbmRZLFxuICAgICAgICBiZWdpbk5vZGUgPSBub2RlLFxuICAgICAgICBlbmROb2RlID0gY2hpbGQ7XG4gICAgY29uc3QgYmVnaW5SZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeU5vZGUoYmVnaW5Ob2RlKTtcbiAgICBjb25zdCBlbmRSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeU5vZGUoZW5kTm9kZSk7XG5cbiAgICBiZWdpblggPSBiZWdpbk5vZGUueCArIGJlZ2luTm9kZS53aWR0aCAvIDI7XG4gICAgYmVnaW5ZID0gaXNDaGlsZFVwKG5vZGUsIGNoaWxkKSA/IGJlZ2luUmVjdGFuZ2xlLnkgOiBiZWdpblJlY3RhbmdsZS55ICsgYmVnaW5SZWN0YW5nbGUuaGVpZ2h0O1xuICAgIGVuZFggPSBub2RlLmxlZnQgPyBlbmROb2RlLnggKyBlbmROb2RlLmhHYXAgKyBlbmRSZWN0YW5nbGUud2lkdGggOiBlbmROb2RlLnggKyBlbmROb2RlLmhHYXA7XG4gICAgZW5kWSA9IGlzVW5kZXJsaW5lU2hhcGUgPyBlbmROb2RlLnkgKyBlbmROb2RlLmhlaWdodCAtIGVuZE5vZGUudkdhcCA6IGVuZE5vZGUueSArIGVuZE5vZGUuaGVpZ2h0IC8gMjtcbiAgICAvL+agueaNruS9jee9ru+8jOiuvue9ruato+i0n+WPguaVsFxuICAgIGxldCBwbHVzTWludXMgPSBpc0NoaWxkVXAobm9kZSwgY2hpbGQpID8gKG5vZGUubGVmdCA/IFstMSwgLTFdIDogWzEsIC0xXSkgOiBub2RlLmxlZnQgPyBbLTEsIDFdIDogWzEsIDFdO1xuICAgIGNvbnN0IGxheW91dCA9IE1pbmRRdWVyaWVzLmdldENvcnJlY3RMYXlvdXRCeUVsZW1lbnQoYm9hcmQsIG5vZGUub3JpZ2luKTtcbiAgICBpZiAoYmVnaW5Ob2RlLm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgaWYgKGxheW91dCA9PT0gTWluZExheW91dFR5cGUubGVmdEJvdHRvbUluZGVudGVkIHx8IGxheW91dCA9PT0gTWluZExheW91dFR5cGUucmlnaHRCb3R0b21JbmRlbnRlZCkge1xuICAgICAgICAgICAgYmVnaW5ZICs9IGJyYW5jaFdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLmxlZnRUb3BJbmRlbnRlZCB8fCBsYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLnJpZ2h0VG9wSW5kZW50ZWQpIHtcbiAgICAgICAgICAgIGJlZ2luWSAtPSBicmFuY2hXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgY3VydmU6IFBvaW50W10gPSBbXG4gICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgIFtiZWdpblgsIGVuZFkgLSAoZW5kTm9kZS5oR2FwICogMyAqIHBsdXNNaW51c1sxXSkgLyA1XSxcbiAgICAgICAgW2JlZ2luWCwgZW5kWSAtIChlbmROb2RlLmhHYXAgKiBwbHVzTWludXNbMV0pIC8gNV0sXG4gICAgICAgIFtiZWdpblggKyAoZW5kTm9kZS5oR2FwICogcGx1c01pbnVzWzBdKSAvIDQsIGVuZFldLFxuICAgICAgICBbYmVnaW5YICsgKGVuZE5vZGUuaEdhcCAqIHBsdXNNaW51c1swXSAqIDMpIC8gNSwgZW5kWV0sXG4gICAgICAgIGlzVW5kZXJsaW5lU2hhcGUgJiYgbmVlZERyYXdVbmRlcmxpbmUgPyBbZW5kWCArIChlbmROb2RlLndpZHRoIC0gZW5kTm9kZS5oR2FwICogMikgKiBwbHVzTWludXNbMF0sIGVuZFldIDogW2VuZFgsIGVuZFldLFxuICAgICAgICBpc1VuZGVybGluZVNoYXBlICYmIG5lZWREcmF3VW5kZXJsaW5lID8gW2VuZFggKyAoZW5kTm9kZS53aWR0aCAtIGVuZE5vZGUuaEdhcCAqIDIpICogcGx1c01pbnVzWzBdLCBlbmRZXSA6IFtlbmRYLCBlbmRZXSxcbiAgICAgICAgaXNVbmRlcmxpbmVTaGFwZSAmJiBuZWVkRHJhd1VuZGVybGluZSA/IFtlbmRYICsgKGVuZE5vZGUud2lkdGggLSBlbmROb2RlLmhHYXAgKiAyKSAqIHBsdXNNaW51c1swXSwgZW5kWV0gOiBbZW5kWCwgZW5kWV1cbiAgICBdO1xuXG4gICAgY29uc3QgcG9pbnRzID0gcG9pbnRzT25CZXppZXJDdXJ2ZXMoY3VydmUpO1xuICAgIHJldHVybiBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKS5jdXJ2ZShwb2ludHMgYXMgYW55LCB7IHN0cm9rZTogYnJhbmNoQ29sb3IsIHN0cm9rZVdpZHRoOiBicmFuY2hXaWR0aCB9KTtcbn1cbiJdfQ==
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { PlaitBoard, getRectangleByElements } from '@plait/core';
|
|
2
2
|
import { getRectangleByNode } from '../../utils/graph';
|
|
3
|
-
import { GRAY_COLOR } from '../../constants/default';
|
|
4
3
|
import { HorizontalPlacement, VerticalPlacement } from '../../interfaces/types';
|
|
5
4
|
import { getLayoutDirection, getPointByPlacement, movePoint, transformPlacement } from '../../utils/point-placement';
|
|
5
|
+
import { getAbstractBranchColor, getAbstractBranchWidth } from '../../utils/node-style/branch';
|
|
6
6
|
export function drawAbstractLink(board, node, isHorizontal) {
|
|
7
7
|
const linkPadding = 15;
|
|
8
|
+
const branchWidth = getAbstractBranchWidth(board, node.origin);
|
|
9
|
+
const branchColor = getAbstractBranchColor(board, node.origin);
|
|
8
10
|
const parent = node.parent;
|
|
9
11
|
const abstractRectangle = getRectangleByNode(node);
|
|
10
12
|
let includedElements = parent.children.slice(node.origin.start, node.origin.end + 1).map(node => {
|
|
@@ -34,9 +36,9 @@ export function drawAbstractLink(board, node, isHorizontal) {
|
|
|
34
36
|
let c2 = movePoint(bezierEndPoint, curveDistance, linkDirection);
|
|
35
37
|
let bezierConnectorPoint = movePoint(abstractConnectorPoint, -linkPadding, linkDirection);
|
|
36
38
|
const link = PlaitBoard.getRoughSVG(board).path(`M${bezierBeginPoint[0]},${bezierBeginPoint[1]} Q${c1[0]},${c1[1]} ${bezierConnectorPoint[0]},${bezierConnectorPoint[1]} Q${c2[0]},${c2[1]} ${bezierEndPoint[0]},${bezierEndPoint[1]} M${abstractConnectorPoint[0]},${abstractConnectorPoint[1]} L${bezierConnectorPoint[0]},${bezierConnectorPoint[1]}`, {
|
|
37
|
-
stroke:
|
|
38
|
-
strokeWidth:
|
|
39
|
+
stroke: branchColor,
|
|
40
|
+
strokeWidth: branchWidth
|
|
39
41
|
});
|
|
40
42
|
return link;
|
|
41
43
|
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXcvbGluay9hYnN0cmFjdC1saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFrQixpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNySCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUvRixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBaUIsRUFBRSxJQUFjLEVBQUUsWUFBcUI7SUFDckYsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0QsTUFBTSxXQUFXLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzNCLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxD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QUMsQ0FBQyxDQUFDLEVBQUUsRUFDeFM7UUFDSSxNQUFNLEVBQUUsV0FBVztRQUNuQixXQUFXLEVBQUUsV0FBVztLQUMzQixDQUNKLENBQUM7SUFDRixPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2dyYXBoJztcbmltcG9ydCB7IEhvcml6b250YWxQbGFjZW1lbnQsIFBvaW50UGxhY2VtZW50LCBWZXJ0aWNhbFBsYWNlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0TGF5b3V0RGlyZWN0aW9uLCBnZXRQb2ludEJ5UGxhY2VtZW50LCBtb3ZlUG9pbnQsIHRyYW5zZm9ybVBsYWNlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvaW50LXBsYWNlbWVudCc7XG5pbXBvcnQgeyBnZXRBYnN0cmFjdEJyYW5jaENvbG9yLCBnZXRBYnN0cmFjdEJyYW5jaFdpZHRoIH0gZnJvbSAnLi4vLi4vdXRpbHMvbm9kZS1zdHlsZS9icmFuY2gnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd0Fic3RyYWN0TGluayhib2FyZDogUGxhaXRCb2FyZCwgbm9kZTogTWluZE5vZGUsIGlzSG9yaXpvbnRhbDogYm9vbGVhbikge1xuICAgIGNvbnN0IGxpbmtQYWRkaW5nID0gMTU7XG4gICAgY29uc3QgYnJhbmNoV2lkdGggPSBnZXRBYnN0cmFjdEJyYW5jaFdpZHRoKGJvYXJkLCBub2RlLm9yaWdpbik7XG4gICAgY29uc3QgYnJhbmNoQ29sb3IgPSBnZXRBYnN0cmFjdEJyYW5jaENvbG9yKGJvYXJkLCBub2RlLm9yaWdpbik7XG4gICAgY29uc3QgcGFyZW50ID0gbm9kZS5wYXJlbnQ7XG4gICAgY29uc3QgYWJzdHJhY3RSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG4gICAgbGV0IGluY2x1ZGVkRWxlbWVudHMgPSBwYXJlbnQuY2hpbGRyZW4uc2xpY2Uobm9kZS5vcmlnaW4uc3RhcnQsIG5vZGUub3JpZ2luLmVuZCEgKyAxKS5tYXAobm9kZSA9PiB7XG4gICAgICAgIHJldHVybiBub2RlLm9yaWdpbjtcbiAgICB9KTtcbiAgICBjb25zdCBpbmNsdWRlZEVsZW1lbnRzUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgaW5jbHVkZWRFbGVtZW50cywgdHJ1ZSk7XG5cbiAgICBjb25zdCBsaW5rRGlyZWN0aW9uID0gZ2V0TGF5b3V0RGlyZWN0aW9uKG5vZGUsIGlzSG9yaXpvbnRhbCk7XG4gICAgY29uc3QgYmV6aWVyQmVnaW5QbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5yaWdodCwgVmVydGljYWxQbGFjZW1lbnQudG9wXSBhcyBQb2ludFBsYWNlbWVudDtcbiAgICBjb25zdCBiZXppZXJFbmRQbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5yaWdodCwgVmVydGljYWxQbGFjZW1lbnQuYm90dG9tXSBhcyBQb2ludFBsYWNlbWVudDtcbiAgICBjb25zdCBhYnN0cmFjdENvbm5lY3RvclBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LmxlZnQsIFZlcnRpY2FsUGxhY2VtZW50Lm1pZGRsZV0gYXMgUG9pbnRQbGFjZW1lbnQ7XG5cbiAgICB0cmFuc2Zvcm1QbGFjZW1lbnQoYmV6aWVyQmVnaW5QbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuICAgIHRyYW5zZm9ybVBsYWNlbWVudChiZXppZXJFbmRQbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuICAgIHRyYW5zZm9ybVBsYWNlbWVudChhYnN0cmFjdENvbm5lY3RvclBsYWNlbWVudCwgbGlua0RpcmVjdGlvbik7XG5cbiAgICBsZXQgYmV6aWVyQmVnaW5Qb2ludCA9IGdldFBvaW50QnlQbGFjZW1lbnQoaW5jbHVkZWRFbGVtZW50c1JlY3RhbmdsZSwgYmV6aWVyQmVnaW5QbGFjZW1lbnQpO1xuICAgIGxldCBiZXppZXJFbmRQb2ludCA9IGdldFBvaW50QnlQbGFjZW1lbnQoaW5jbHVkZWRFbGVtZW50c1JlY3RhbmdsZSwgYmV6aWVyRW5kUGxhY2VtZW50KTtcbiAgICBsZXQgYWJzdHJhY3RDb25uZWN0b3JQb2ludCA9IGdldFBvaW50QnlQbGFjZW1lbnQoYWJzdHJhY3RSZWN0YW5nbGUsIGFic3RyYWN0Q29ubmVjdG9yUGxhY2VtZW50KTtcblxuICAgIGxldCBjdXJ2ZURpc3RhbmNlID0gMDtcbiAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgIGN1cnZlRGlzdGFuY2UgPSBNYXRoLmFicyhhYnN0cmFjdENvbm5lY3RvclBvaW50WzBdIC0gYmV6aWVyQmVnaW5Qb2ludFswXSkgLSBsaW5rUGFkZGluZyAqIDI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY3VydmVEaXN0YW5jZSA9IE1hdGguYWJzKGFic3RyYWN0Q29ubmVjdG9yUG9pbnRbMV0gLSBiZXppZXJCZWdpblBvaW50WzFdKSAtIGxpbmtQYWRkaW5nICogMjtcbiAgICB9XG5cbiAgICBiZXppZXJCZWdpblBvaW50ID0gbW92ZVBvaW50KGJlemllckJlZ2luUG9pbnQsIGxpbmtQYWRkaW5nLCBsaW5rRGlyZWN0aW9uKTtcbiAgICBsZXQgYzEgPSBtb3ZlUG9pbnQoYmV6aWVyQmVnaW5Qb2ludCwgY3VydmVEaXN0YW5jZSwgbGlua0RpcmVjdGlvbik7XG4gICAgYmV6aWVyRW5kUG9pbnQgPSBtb3ZlUG9pbnQoYmV6aWVyRW5kUG9pbnQsIGxpbmtQYWRkaW5nLCBsaW5rRGlyZWN0aW9uKTtcbiAgICBsZXQgYzIgPSBtb3ZlUG9pbnQoYmV6aWVyRW5kUG9pbnQsIGN1cnZlRGlzdGFuY2UsIGxpbmtEaXJlY3Rpb24pO1xuICAgIGxldCBiZXppZXJDb25uZWN0b3JQb2ludCA9IG1vdmVQb2ludChhYnN0cmFjdENvbm5lY3RvclBvaW50LCAtbGlua1BhZGRpbmcsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgY29uc3QgbGluayA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLnBhdGgoXG4gICAgICAgIGBNJHtiZXppZXJCZWdpblBvaW50WzBdfSwke2JlemllckJlZ2luUG9pbnRbMV19IFEke2MxWzBdfSwke2MxWzFdfSAke2JlemllckNvbm5lY3RvclBvaW50WzBdfSwke2JlemllckNvbm5lY3RvclBvaW50WzFdfSBRJHtjMlswXX0sJHtjMlsxXX0gJHtiZXppZXJFbmRQb2ludFswXX0sJHtiZXppZXJFbmRQb2ludFsxXX0gTSR7YWJzdHJhY3RDb25uZWN0b3JQb2ludFswXX0sJHthYnN0cmFjdENvbm5lY3RvclBvaW50WzFdfSBMJHtiZXppZXJDb25uZWN0b3JQb2ludFswXX0sJHtiZXppZXJDb25uZWN0b3JQb2ludFsxXX1gLFxuICAgICAgICB7XG4gICAgICAgICAgICBzdHJva2U6IGJyYW5jaENvbG9yLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IGJyYW5jaFdpZHRoXG4gICAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiBsaW5rO1xufVxuIl19
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
2
|
-
import { MindNodeShape, STROKE_WIDTH } from '../../constants';
|
|
3
2
|
import { PlaitBoard } from '@plait/core';
|
|
4
|
-
import { getRectangleByNode } from '../../utils';
|
|
3
|
+
import { getRectangleByNode, getShapeByElement } from '../../utils';
|
|
5
4
|
import { getLayoutDirection, getPointByPlacement, movePoint, transformPlacement } from '../../utils/point-placement';
|
|
6
5
|
import { HorizontalPlacement, VerticalPlacement } from '../../interfaces/types';
|
|
7
|
-
import { getBranchColorByMindElement } from '../../utils/node-style/branch';
|
|
6
|
+
import { getBranchColorByMindElement, getBranchWidthByMindElement } from '../../utils/node-style/branch';
|
|
7
|
+
import { MindElementShape } from '../../interfaces/element';
|
|
8
8
|
export function drawLogicLink(board, node, parent, isHorizontal) {
|
|
9
9
|
const branchColor = getBranchColorByMindElement(board, node.origin);
|
|
10
|
-
const
|
|
10
|
+
const branchWidth = getBranchWidthByMindElement(board, node.origin);
|
|
11
11
|
const hasStraightLine = !parent.origin.isRoot;
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const parentShape = getShapeByElement(board, parent.origin);
|
|
13
|
+
const shape = node.origin.shape ? node.origin.shape : parentShape;
|
|
14
|
+
const hasUnderlineShape = shape === MindElementShape.underline;
|
|
15
|
+
const hasUnderlineShapeOfParent = parentShape === MindElementShape.underline;
|
|
14
16
|
const nodeClient = getRectangleByNode(node);
|
|
15
17
|
const parentClient = getRectangleByNode(parent);
|
|
16
18
|
const linkDirection = getLayoutDirection(node, isHorizontal);
|
|
@@ -47,6 +49,6 @@ export function drawLogicLink(board, node, parent, isHorizontal) {
|
|
|
47
49
|
const underlineEnd = movePoint(endPoint, nodeClient.width, linkDirection);
|
|
48
50
|
const underline = hasUnderlineShape && isHorizontal ? [underlineEnd, underlineEnd, underlineEnd] : [];
|
|
49
51
|
const points = pointsOnBezierCurves([...straightLine, ...curve, ...underline]);
|
|
50
|
-
return PlaitBoard.getRoughSVG(board).curve(points, { stroke: branchColor, strokeWidth });
|
|
52
|
+
return PlaitBoard.getRoughSVG(board).curve(points, { stroke: branchColor, strokeWidth: branchWidth });
|
|
51
53
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naWMtbGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXcvbGluay9sb2dpYy1saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNySCxPQUFPLEVBQUUsbUJBQW1CLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFpQixFQUFFLElBQWMsRUFBRSxNQUFnQixFQUFFLFlBQXFCO0lBQ3BHLE1BQU0sV0FBVyxHQUFHLDJCQUEyQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEUsTUFBTSxXQUFXLEdBQUcsMkJBQTJCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRSxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzlDLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMs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R0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQy9FLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUNqSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcG9pbnRzT25CZXppZXJDdXJ2ZXMgfSBmcm9tICdwb2ludHMtb24tY3VydmUnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUsIGdldFNoYXBlQnlFbGVtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgZ2V0TGF5b3V0RGlyZWN0aW9uLCBnZXRQb2ludEJ5UGxhY2VtZW50LCBtb3ZlUG9pbnQsIHRyYW5zZm9ybVBsYWNlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvaW50LXBsYWNlbWVudCc7XG5pbXBvcnQgeyBIb3Jpem9udGFsUGxhY2VtZW50LCBQb2ludFBsYWNlbWVudCwgVmVydGljYWxQbGFjZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3R5cGVzJztcbmltcG9ydCB7IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudCwgZ2V0QnJhbmNoV2lkdGhCeU1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvbm9kZS1zdHlsZS9icmFuY2gnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnRTaGFwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmF3TG9naWNMaW5rKGJvYXJkOiBQbGFpdEJvYXJkLCBub2RlOiBNaW5kTm9kZSwgcGFyZW50OiBNaW5kTm9kZSwgaXNIb3Jpem9udGFsOiBib29sZWFuKSB7XG4gICAgY29uc3QgYnJhbmNoQ29sb3IgPSBnZXRCcmFuY2hDb2xvckJ5TWluZEVsZW1lbnQoYm9hcmQsIG5vZGUub3JpZ2luKTtcbiAgICBjb25zdCBicmFuY2hXaWR0aCA9IGdldEJyYW5jaFdpZHRoQnlNaW5kRWxlbWVudChib2FyZCwgbm9kZS5vcmlnaW4pO1xuICAgIGNvbnN0IGhhc1N0cmFpZ2h0TGluZSA9ICFwYXJlbnQub3JpZ2luLmlzUm9vdDtcbiAgICBjb25zdCBwYXJlbnRTaGFwZSA9IGdldFNoYXBlQnlFbGVtZW50KGJvYXJkLCBwYXJlbnQub3JpZ2luKTtcbiAgICBjb25zdCBzaGFwZSA9IG5vZGUub3JpZ2luLnNoYXBlID8gbm9kZS5vcmlnaW4uc2hhcGUgOiBwYXJlbnRTaGFwZTtcbiAgICBjb25zdCBoYXNVbmRlcmxpbmVTaGFwZSA9IHNoYXBlID09PSBNaW5kRWxlbWVudFNoYXBlLnVuZGVybGluZTtcbiAgICBjb25zdCBoYXNVbmRlcmxpbmVTaGFwZU9mUGFyZW50ID0gcGFyZW50U2hhcGUgPT09IE1pbmRFbGVtZW50U2hhcGUudW5kZXJsaW5lO1xuICAgIGNvbnN0IG5vZGVDbGllbnQgPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG4gICAgY29uc3QgcGFyZW50Q2xpZW50ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKHBhcmVudCk7XG4gICAgY29uc3QgbGlua0RpcmVjdGlvbiA9IGdldExheW91dERpcmVjdGlvbihub2RlLCBpc0hvcml6b250YWwpO1xuXG4gICAgLy8g4pGgIGVuc3VyZSBiZWdpbiBwbGFjZW1lbnQgYW5kIGVuZCBwbGFjZW1lbnRcbiAgICAvLyBiZWdpbiBwbGFjZW1lbnQgcmVwcmVzZW50IHBhcmVudCBjb25uZWN0b3IgcG9zaXRpb24gYW5kIGVuZCBwbGFjZW1lbnQgcmVwcmVzZW50IGNoaWxkIGNvbm5lY3RvclxuICAgIGNvbnN0IGJlZ2luUGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LnJpZ2h0LCBWZXJ0aWNhbFBsYWNlbWVudC5taWRkbGVdO1xuICAgIGNvbnN0IGVuZFBsYWNlbWVudDogUG9pbnRQbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5sZWZ0LCBWZXJ0aWNhbFBsYWNlbWVudC5taWRkbGVdO1xuXG4gICAgdHJhbnNmb3JtUGxhY2VtZW50KGJlZ2luUGxhY2VtZW50LCBsaW5rRGlyZWN0aW9uKTtcbiAgICB0cmFuc2Zvcm1QbGFjZW1lbnQoZW5kUGxhY2VtZW50LCBsaW5rRGlyZWN0aW9uKTtcblxuICAgIC8vIHVuZGVybGluZSBzaGFwZSBhbmQgaG9yaXpvbnRhbFxuICAgIGlmIChpc0hvcml6b250YWwgJiYgaGFzVW5kZXJsaW5lU2hhcGVPZlBhcmVudCAmJiAhcGFyZW50Lm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgYmVnaW5QbGFjZW1lbnRbMV0gPSBWZXJ0aWNhbFBsYWNlbWVudC5ib3R0b207XG4gICAgfVxuICAgIGlmIChpc0hvcml6b250YWwgJiYgaGFzVW5kZXJsaW5lU2hhcGUpIHtcbiAgICAgICAgZW5kUGxhY2VtZW50WzFdID0gVmVydGljYWxQbGFjZW1lbnQuYm90dG9tO1xuICAgIH1cblxuICAgIGxldCBiZWdpblBvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChwYXJlbnRDbGllbnQsIGJlZ2luUGxhY2VtZW50KTtcbiAgICBsZXQgZW5kUG9pbnQgPSBnZXRQb2ludEJ5UGxhY2VtZW50KG5vZGVDbGllbnQsIGVuZFBsYWNlbWVudCk7XG5cbiAgICAvLyDikaEg56Gu5a6a5Ye45Ye655u057q/77yM5LuO6LW35aeL54K55byA5aeL55S75LiA5p2h55u057q/77yM5LuO55u057q/55qE57uT5p2f5L2N572u57uY5Yi25puy57q/77yM5L+d6K+B5pS26LW35Zu+5qCH5Y+v5Lul5a6M576O6KaG55uW6LW35aeL6L+e57q/77yM5qC56IqC54K55LiN6ZyA6KaB6L+Z5p2h55u057q/XG4gICAgLy8g57uY5Yi26LSd5aGe5bCU5puy57q/6KaB5rGC77yM6ZyA6KaB5aKe5Yqg5LiJ5Liq54K577yM5q2j5bi45Lik5Liq54K55bCx5Y+v5Lul56Gu5a6a6L+Z5p2h55u057q/XG4gICAgY29uc3Qgc3RyYWlnaHRMaW5lRGlzdGFuY2UgPSA4O1xuICAgIGNvbnN0IGJlZ2luUG9pbnQyID0gaGFzU3RyYWlnaHRMaW5lID8gbW92ZVBvaW50KGJlZ2luUG9pbnQsIHN0cmFpZ2h0TGluZURpc3RhbmNlLCBsaW5rRGlyZWN0aW9uKSA6IGJlZ2luUG9pbnQ7XG4gICAgbGV0IHN0cmFpZ2h0TGluZTogUG9pbnRbXSA9IGhhc1N0cmFpZ2h0TGluZSA/IFtiZWdpblBvaW50LCBiZWdpblBvaW50MiwgYmVnaW5Qb2ludDJdIDogW107XG5cbiAgICAvLyDikaIg56Gu5a6a5puy57q/XG4gICAgY29uc3QgYmVnaW5CdWZmZXJEaXN0YW5jZSA9IChwYXJlbnQuaEdhcCArIG5vZGUuaEdhcCkgLyAzO1xuICAgIGNvbnN0IGVuZEJ1ZmZlckRpc3RhbmNlID0gLShwYXJlbnQuaEdhcCArIG5vZGUuaEdhcCkgLyAyLjQ7XG4gICAgbGV0IGN1cnZlOiBQb2ludFtdID0gW1xuICAgICAgICBiZWdpblBvaW50MixcbiAgICAgICAgbW92ZVBvaW50KGJlZ2luUG9pbnQyLCBiZWdpbkJ1ZmZlckRpc3RhbmNlLCBsaW5rRGlyZWN0aW9uKSxcbiAgICAgICAgbW92ZVBvaW50KGVuZFBvaW50LCBlbmRCdWZmZXJEaXN0YW5jZSwgbGlua0RpcmVjdGlvbiksXG4gICAgICAgIGVuZFBvaW50XG4gICAgXTtcblxuICAgIC8vIOKRoyDkuIvliJLnur/nu5jliLbvvIx1bmRlcmxpbmUgc2hhcGUgYW5kIGhvcml6b250YWxcbiAgICBjb25zdCB1bmRlcmxpbmVFbmQgPSBtb3ZlUG9pbnQoZW5kUG9pbnQsIG5vZGVDbGllbnQud2lkdGgsIGxpbmtEaXJlY3Rpb24pO1xuICAgIGNvbnN0IHVuZGVybGluZTogUG9pbnRbXSA9IGhhc1VuZGVybGluZVNoYXBlICYmIGlzSG9yaXpvbnRhbCA/IFt1bmRlcmxpbmVFbmQsIHVuZGVybGluZUVuZCwgdW5kZXJsaW5lRW5kXSA6IFtdO1xuXG4gICAgY29uc3QgcG9pbnRzID0gcG9pbnRzT25CZXppZXJDdXJ2ZXMoWy4uLnN0cmFpZ2h0TGluZSwgLi4uY3VydmUsIC4uLnVuZGVybGluZV0pO1xuICAgIHJldHVybiBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKS5jdXJ2ZShwb2ludHMgYXMgYW55LCB7IHN0cm9rZTogYnJhbmNoQ29sb3IsIHN0cm9rZVdpZHRoOiBicmFuY2hXaWR0aCB9KTtcbn1cbiJdfQ==
|
package/esm2020/draw/link.mjs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
2
|
-
import {
|
|
2
|
+
import { STROKE_WIDTH } from '../constants';
|
|
3
3
|
import { PlaitBoard } from '@plait/core';
|
|
4
|
-
import {
|
|
4
|
+
import { getShapeByElement, 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
|
+
import { MindElementShape } from '../interfaces/element';
|
|
8
9
|
export function drawLink(board, node, child, defaultStroke = null, isHorizontal = true, needDrawUnderline = true) {
|
|
9
10
|
let beginX, beginY, endX, endY, beginNode = node, endNode = child;
|
|
10
|
-
const layout = MindQueries.getCorrectLayoutByElement(node.origin);
|
|
11
|
+
const layout = MindQueries.getCorrectLayoutByElement(board, node.origin);
|
|
11
12
|
if (isHorizontal) {
|
|
12
13
|
if (!isChildRight(node, child)) {
|
|
13
14
|
beginNode = child;
|
|
@@ -19,7 +20,7 @@ export function drawLink(board, node, child, defaultStroke = null, isHorizontal
|
|
|
19
20
|
endY = endNode.y + endNode.height / 2;
|
|
20
21
|
if (node.parent &&
|
|
21
22
|
isIndentedLayout(MindQueries.getLayoutByElement(node.parent?.origin)) &&
|
|
22
|
-
|
|
23
|
+
getShapeByElement(board, node.origin) === MindElementShape.underline) {
|
|
23
24
|
if (isChildRight(node, child)) {
|
|
24
25
|
beginY = node.y + node.height - node.vGap;
|
|
25
26
|
}
|
|
@@ -63,7 +64,7 @@ export function drawLink(board, node, child, defaultStroke = null, isHorizontal
|
|
|
63
64
|
[endX - (beginNode.hGap + endNode.hGap) / 2, endY],
|
|
64
65
|
[endX, endY]
|
|
65
66
|
];
|
|
66
|
-
const shape =
|
|
67
|
+
const shape = getShapeByElement(board, child.origin);
|
|
67
68
|
if (!node.origin.isRoot) {
|
|
68
69
|
if (node.x > child.x) {
|
|
69
70
|
curve = [
|
|
@@ -94,7 +95,7 @@ export function drawLink(board, node, child, defaultStroke = null, isHorizontal
|
|
|
94
95
|
curve = [...line, ...curve];
|
|
95
96
|
}
|
|
96
97
|
}
|
|
97
|
-
if (needDrawUnderline && shape ===
|
|
98
|
+
if (needDrawUnderline && shape === MindElementShape.underline) {
|
|
98
99
|
if (child.left) {
|
|
99
100
|
const underline = [
|
|
100
101
|
[beginX - (beginNode.width - beginNode.hGap * 2), beginY],
|
|
@@ -156,4 +157,4 @@ export function drawLink(board, node, child, defaultStroke = null, isHorizontal
|
|
|
156
157
|
return PlaitBoard.getRoughSVG(board).curve(points, { stroke, strokeWidth });
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXcvbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpFLE1BQU0sVUFBVSxRQUFRLENBQ3BCLEtBQWlCLEVBQ2pCLElBQWMsRUFDZCxLQUFlLEVBQ2YsZ0JBQStCLElBQUksRUFDbkMsWUFBWSxHQUFHLElBQUksRUFDbkIsaUJBQWlCLEdBQUcsSUFBSTtJQUV4QixJQUFJLE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxFQUNKLElBQUksRUFDSixTQUFTLEdBQUcsSUFBSSxFQUNoQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFtQixDQUFDO0lBQ3BGLElBQUksWUFBWSxFQUFFO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDNUIsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNsQixPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxHQUFHLFNB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LEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQzthQUMvQjtTQUNKO1FBQ0QsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztLQUN0RjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb2ludHNPbkJlemllckN1cnZlcyB9IGZyb20gJ3BvaW50cy1vbi1jdXJ2ZSc7XG5pbXBvcnQgeyBNaW5kTm9kZVNoYXBlLCBTVFJPS0VfV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXROb2RlU2hhcGVCeUVsZW1lbnQsIGlzQ2hpbGRSaWdodCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IE1pbmRMYXlvdXRUeXBlLCBpc1RvcExheW91dCwgaXNJbmRlbnRlZExheW91dCwgaXNTdGFuZGFyZExheW91dCB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBnZXRCcmFuY2hDb2xvckJ5TWluZEVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9ub2RlLXN0eWxlL2JyYW5jaCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmF3TGluayhcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBub2RlOiBNaW5kTm9kZSxcbiAgICBjaGlsZDogTWluZE5vZGUsXG4gICAgZGVmYXVsdFN0cm9rZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsXG4gICAgaXNIb3Jpem9udGFsID0gdHJ1ZSxcbiAgICBuZWVkRHJhd1VuZGVybGluZSA9IHRydWVcbikge1xuICAgIGxldCBiZWdpblgsXG4gICAgICAgIGJlZ2luWSxcbiAgICAgICAgZW5kWCxcbiAgICAgICAgZW5kWSxcbiAgICAgICAgYmVnaW5Ob2RlID0gbm9kZSxcbiAgICAgICAgZW5kTm9kZSA9IGNoaWxkO1xuICAgIGNvbnN0IGxheW91dCA9IE1pbmRRdWVyaWVzLmdldENvcnJlY3RMYXlvdXRCeUVsZW1lbnQobm9kZS5vcmlnaW4pIGFzIE1pbmRMYXlvdXRUeXBlO1xuICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgaWYgKCFpc0NoaWxkUmlnaHQobm9kZSwgY2hpbGQpKSB7XG4gICAgICAgICAgICBiZWdpbk5vZGUgPSBjaGlsZDtcbiAgICAgICAgICAgIGVuZE5vZGUgPSBub2RlO1xuICAgICAgICB9XG4gICAgICAgIGJlZ2luWCA9IGJlZ2luTm9kZS54ICsgYmVnaW5Ob2RlLndpZHRoIC0gYmVnaW5Ob2RlLmhHYXA7XG4gICAgICAgIGJlZ2luWSA9IGJlZ2luTm9kZS55ICsgYmVnaW5Ob2RlLmhlaWdodCAvIDI7XG4gICAgICAgIGVuZFggPSBlbmROb2RlLnggKyBlbmROb2RlLmhHYXA7XG4gICAgICAgIGVuZFkgPSBlbmROb2RlLnkgKyBlbmROb2RlLmhlaWdodCAvIDI7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgbm9kZS5wYXJlbnQgJiZcbiAgICAgICAgICAgIGlzSW5kZW50ZWRMYXlvdXQoTWluZFF1ZXJpZXMuZ2V0TGF5b3V0QnlFbGVtZW50KG5vZGUucGFyZW50Py5vcmlnaW4pKSAmJlxuICAgICAgICAgICAgKGdldE5vZGVTaGFwZUJ5RWxlbWVudChub2RlLm9yaWdpbikgYXMgTWluZE5vZGVTaGFwZSkgPT09IE1pbmROb2RlU2hhcGUudW5kZXJsaW5lXG4gICAgICAgICkge1xuICAgICAgICAgICAgaWYgKGlzQ2hpbGRSaWdodChub2RlLCBjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICBiZWdpblkgPSBub2RlLnkgKyBub2RlLmhlaWdodCAtIG5vZGUudkdhcDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZW5kWSA9IG5vZGUueSArIG5vZGUuaGVpZ2h0IC0gbm9kZS52R2FwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKG5vZGUueSA+IGNoaWxkLnkpIHtcbiAgICAgICAgICAgIGJlZ2luTm9kZSA9IGNoaWxkO1xuICAgICAgICAgICAgZW5kTm9kZSA9IG5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgYmVnaW5YID0gYmVnaW5Ob2RlLnggKyBiZWdpbk5vZGUud2lkdGggLyAyO1xuICAgICAgICBiZWdpblkgPSBiZWdpbk5vZGUueSArIGJlZ2luTm9kZS5oZWlnaHQgLSBiZWdpbk5vZGUudkdhcDtcbiAgICAgICAgZW5kWCA9IGVuZE5vZGUueCArIGVuZE5vZGUud2lkdGggLyAyO1xuICAgICAgICBlbmRZID0gZW5kTm9kZS55ICsgZW5kTm9kZS52R2FwO1xuICAgIH1cblxuICAgIGNvbnN0IHN0cm9rZSA9IGRlZmF1bHRTdHJva2UgfHwgZ2V0QnJhbmNoQ29sb3JCeU1pbmRFbGVtZW50KGJvYXJkLCBjaGlsZC5vcmlnaW4pO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gY2hpbGQub3JpZ2luLmJyYW5jaFdpZHRoID8gY2hpbGQub3JpZ2luLmJyYW5jaFdpZHRoIDogU1RST0tFX1dJRFRIO1xuICAgIGlmIChlbmROb2RlLm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgaWYgKGxheW91dCA9PT0gTWluZExheW91dFR5cGUubGVmdCB8fCBpc1N0YW5kYXJkTGF5b3V0KGxheW91dCkpIHtcbiAgICAgICAgICAgIGVuZFggLT0gc3Ryb2tlV2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxheW91dCA9PT0gTWluZExheW91dFR5cGUudXB3YXJkKSB7XG4gICAgICAgICAgICBlbmRZIC09IHN0cm9rZVdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChiZWdpbk5vZGUub3JpZ2luLmlzUm9vdCkge1xuICAgICAgICBpZiAobGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS5yaWdodCB8fCBpc1N0YW5kYXJkTGF5b3V0KGxheW91dCkpIHtcbiAgICAgICAgICAgIGJlZ2luWCArPSBzdHJva2VXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS5kb3dud2FyZCkge1xuICAgICAgICAgICAgYmVnaW5ZICs9IHN0cm9rZVdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgbGV0IGN1cnZlOiBQb2ludFtdID0gW1xuICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZXSxcbiAgICAgICAgICAgIFtiZWdpblggKyAoYmVnaW5Ob2RlLmhHYXAgKyBlbmROb2RlLmhHYXApIC8gMywgYmVnaW5ZXSxcbiAgICAgICAgICAgIFtlbmRYIC0gKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDIsIGVuZFldLFxuICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IHNoYXBlID0gZ2V0Tm9kZVNoYXBlQnlFbGVtZW50KGNoaWxkLm9yaWdpbikgYXMgTWluZE5vZGVTaGFwZTtcblxuICAgICAgICBpZiAoIW5vZGUub3JpZ2luLmlzUm9vdCkge1xuICAgICAgICAgICAgaWYgKG5vZGUueCA+IGNoaWxkLngpIHtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCArIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAzLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCAtIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAyLCBlbmRZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFggLSAxMiwgZW5kWV1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYIC0gMTIsIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCAtIDEyLCBlbmRZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLmN1cnZlLCAuLi5saW5lXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggKyAxMiwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCArIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAyLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCAtIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAzLCBlbmRZXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YICsgMTIsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggKyAxMiwgYmVnaW5ZXVxuICAgICAgICAgICAgICAgIF0gYXMgUG9pbnRbXTtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFsuLi5saW5lLCAuLi5jdXJ2ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmVlZERyYXdVbmRlcmxpbmUgJiYgc2hhcGUgPT09IE1pbmROb2RlU2hhcGUudW5kZXJsaW5lKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGQubGVmdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuZGVybGluZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCAtIChiZWdpbk5vZGUud2lkdGggLSBiZWdpbk5vZGUuaEdhcCAqIDIpLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YIC0gKGJlZ2luTm9kZS53aWR0aCAtIGJlZ2luTm9kZS5oR2FwICogMiksIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggLSAoYmVnaW5Ob2RlLndpZHRoIC0gYmVnaW5Ob2RlLmhHYXAgKiAyKSwgYmVnaW5ZXVxuICAgICAgICAgICAgICAgIF0gYXMgUG9pbnRbXTtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFsuLi51bmRlcmxpbmUsIC4uLmN1cnZlXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5kZXJsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbZW5kWCArIChlbmROb2RlLndpZHRoIC0gZW5kTm9kZS5oR2FwICogMiksIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCArIChlbmROb2RlLndpZHRoIC0gZW5kTm9kZS5oR2FwICogMiksIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCArIChlbmROb2RlLndpZHRoIC0gZW5kTm9kZS5oR2FwICogMiksIGVuZFldXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLmN1cnZlLCAuLi51bmRlcmxpbmVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcG9pbnRzID0gcG9pbnRzT25CZXppZXJDdXJ2ZXMoY3VydmUpO1xuICAgICAgICByZXR1cm4gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCkuY3VydmUocG9pbnRzIGFzIGFueSwgeyBzdHJva2UsIHN0cm9rZVdpZHRoIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBjdXJ2ZTogUG9pbnRbXSA9IFtcbiAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAoYmVnaW5Ob2RlLnZHYXAgKyBlbmROb2RlLnZHYXApIC8gMl0sXG4gICAgICAgICAgICBbZW5kWCwgZW5kWSAtIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgIFtlbmRYLCBlbmRZXVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICghbm9kZS5vcmlnaW4uaXNSb290KSB7XG4gICAgICAgICAgICBpZiAoaXNUb3BMYXlvdXQobGF5b3V0KSkge1xuICAgICAgICAgICAgICAgIGN1cnZlID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAoYmVnaW5Ob2RlLnZHYXAgKyBlbmROb2RlLnZHYXApIC8gMl0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZIC0gKGJlZ2luTm9kZS52R2FwICsgZW5kTm9kZS52R2FwKSAvIDJdLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWSAtIDEyXVxuICAgICAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWSAtIDEyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFkgLSAxMl0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZXVxuICAgICAgICAgICAgICAgIF0gYXMgUG9pbnRbXTtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFsuLi5jdXJ2ZSwgLi4ubGluZV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGN1cnZlID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAxMl0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFkgLSAoYmVnaW5Ob2RlLnZHYXAgKyBlbmROb2RlLnZHYXApIC8gMl0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZXVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgY29uc3QgbGluZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZICsgMTJdLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAxMl1cbiAgICAgICAgICAgICAgICBdIGFzIFBvaW50W107XG5cbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFsuLi5saW5lLCAuLi5jdXJ2ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9pbnRzID0gcG9pbnRzT25CZXppZXJDdXJ2ZXMoY3VydmUpO1xuICAgICAgICByZXR1cm4gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCkuY3VydmUocG9pbnRzIGFzIGFueSwgeyBzdHJva2UsIHN0cm9rZVdpZHRoIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2RyYXcvbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxVQUFVLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsTUFBTSxVQUFVLFFBQVEsQ0FDcEIsS0FBaUIsRUFDakIsSUFBYyxFQUNkLEtBQWUsRUFDZixnQkFBK0IsSUFBSSxFQUNuQyxZQUFZLEdBQUcsSUFBSSxFQUNuQixpQkFBaUIsR0FBRyxJQUFJO0lBRXhCLElBQUksTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FBRyxJQUFJLEVBQ2hCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFtQixDQUFDO0lBQzNGLElBQUksWUFBWSxFQUFFO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDNUIsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNs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QU0sRUFBRSxNQUFNLEdBQUcsRUFBRSxDQUFDO2lCQUNiLENBQUM7Z0JBRWIsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQzthQUMvQjtTQUNKO1FBQ0QsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztLQUN0RjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb2ludHNPbkJlemllckN1cnZlcyB9IGZyb20gJ3BvaW50cy1vbi1jdXJ2ZSc7XG5pbXBvcnQgeyBTVFJPS0VfV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRTaGFwZUJ5RWxlbWVudCwgaXNDaGlsZFJpZ2h0IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTWluZExheW91dFR5cGUsIGlzVG9wTGF5b3V0LCBpc0luZGVudGVkTGF5b3V0LCBpc1N0YW5kYXJkTGF5b3V0IH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgTWluZFF1ZXJpZXMgfSBmcm9tICcuLi9xdWVyaWVzJztcbmltcG9ydCB7IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL25vZGUtc3R5bGUvYnJhbmNoJztcbmltcG9ydCB7IE1pbmRFbGVtZW50U2hhcGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd0xpbmsoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgbm9kZTogTWluZE5vZGUsXG4gICAgY2hpbGQ6IE1pbmROb2RlLFxuICAgIGRlZmF1bHRTdHJva2U6IHN0cmluZyB8IG51bGwgPSBudWxsLFxuICAgIGlzSG9yaXpvbnRhbCA9IHRydWUsXG4gICAgbmVlZERyYXdVbmRlcmxpbmUgPSB0cnVlXG4pIHtcbiAgICBsZXQgYmVnaW5YLFxuICAgICAgICBiZWdpblksXG4gICAgICAgIGVuZFgsXG4gICAgICAgIGVuZFksXG4gICAgICAgIGJlZ2luTm9kZSA9IG5vZGUsXG4gICAgICAgIGVuZE5vZGUgPSBjaGlsZDtcbiAgICBjb25zdCBsYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRDb3JyZWN0TGF5b3V0QnlFbGVtZW50KGJvYXJkLCBub2RlLm9yaWdpbikgYXMgTWluZExheW91dFR5cGU7XG4gICAgaWYgKGlzSG9yaXpvbnRhbCkge1xuICAgICAgICBpZiAoIWlzQ2hpbGRSaWdodChub2RlLCBjaGlsZCkpIHtcbiAgICAgICAgICAgIGJlZ2luTm9kZSA9IGNoaWxkO1xuICAgICAgICAgICAgZW5kTm9kZSA9IG5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgYmVnaW5YID0gYmVnaW5Ob2RlLnggKyBiZWdpbk5vZGUud2lkdGggLSBiZWdpbk5vZGUuaEdhcDtcbiAgICAgICAgYmVnaW5ZID0gYmVnaW5Ob2RlLnkgKyBiZWdpbk5vZGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgZW5kWCA9IGVuZE5vZGUueCArIGVuZE5vZGUuaEdhcDtcbiAgICAgICAgZW5kWSA9IGVuZE5vZGUueSArIGVuZE5vZGUuaGVpZ2h0IC8gMjtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBub2RlLnBhcmVudCAmJlxuICAgICAgICAgICAgaXNJbmRlbnRlZExheW91dChNaW5kUXVlcmllcy5nZXRMYXlvdXRCeUVsZW1lbnQobm9kZS5wYXJlbnQ/Lm9yaWdpbikpICYmXG4gICAgICAgICAgICAoZ2V0U2hhcGVCeUVsZW1lbnQoYm9hcmQsIG5vZGUub3JpZ2luKSBhcyBNaW5kRWxlbWVudFNoYXBlKSA9PT0gTWluZEVsZW1lbnRTaGFwZS51bmRlcmxpbmVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoaXNDaGlsZFJpZ2h0KG5vZGUsIGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGJlZ2luWSA9IG5vZGUueSArIG5vZGUuaGVpZ2h0IC0gbm9kZS52R2FwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbmRZID0gbm9kZS55ICsgbm9kZS5oZWlnaHQgLSBub2RlLnZHYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobm9kZS55ID4gY2hpbGQueSkge1xuICAgICAgICAgICAgYmVnaW5Ob2RlID0gY2hpbGQ7XG4gICAgICAgICAgICBlbmROb2RlID0gbm9kZTtcbiAgICAgICAgfVxuICAgICAgICBiZWdpblggPSBiZWdpbk5vZGUueCArIGJlZ2luTm9kZS53aWR0aCAvIDI7XG4gICAgICAgIGJlZ2luWSA9IGJlZ2luTm9kZS55ICsgYmVnaW5Ob2RlLmhlaWdodCAtIGJlZ2luTm9kZS52R2FwO1xuICAgICAgICBlbmRYID0gZW5kTm9kZS54ICsgZW5kTm9kZS53aWR0aCAvIDI7XG4gICAgICAgIGVuZFkgPSBlbmROb2RlLnkgKyBlbmROb2RlLnZHYXA7XG4gICAgfVxuXG4gICAgY29uc3Qgc3Ryb2tlID0gZGVmYXVsdFN0cm9rZSB8fCBnZXRCcmFuY2hDb2xvckJ5TWluZEVsZW1lbnQoYm9hcmQsIGNoaWxkLm9yaWdpbik7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBjaGlsZC5vcmlnaW4uYnJhbmNoV2lkdGggPyBjaGlsZC5vcmlnaW4uYnJhbmNoV2lkdGggOiBTVFJPS0VfV0lEVEg7XG4gICAgaWYgKGVuZE5vZGUub3JpZ2luLmlzUm9vdCkge1xuICAgICAgICBpZiAobGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS5sZWZ0IHx8IGlzU3RhbmRhcmRMYXlvdXQobGF5b3V0KSkge1xuICAgICAgICAgICAgZW5kWCAtPSBzdHJva2VXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS51cHdhcmQpIHtcbiAgICAgICAgICAgIGVuZFkgLT0gc3Ryb2tlV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGJlZ2luTm9kZS5vcmlnaW4uaXNSb290KSB7XG4gICAgICAgIGlmIChsYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLnJpZ2h0IHx8IGlzU3RhbmRhcmRMYXlvdXQobGF5b3V0KSkge1xuICAgICAgICAgICAgYmVnaW5YICs9IHN0cm9rZVdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYXlvdXQgPT09IE1pbmRMYXlvdXRUeXBlLmRvd253YXJkKSB7XG4gICAgICAgICAgICBiZWdpblkgKz0gc3Ryb2tlV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzSG9yaXpvbnRhbCkge1xuICAgICAgICBsZXQgY3VydmU6IFBvaW50W10gPSBbXG4gICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgW2JlZ2luWCArIChiZWdpbk5vZGUuaEdhcCArIGVuZE5vZGUuaEdhcCkgLyAzLCBiZWdpblldLFxuICAgICAgICAgICAgW2VuZFggLSAoYmVnaW5Ob2RlLmhHYXAgKyBlbmROb2RlLmhHYXApIC8gMiwgZW5kWV0sXG4gICAgICAgICAgICBbZW5kWCwgZW5kWV1cbiAgICAgICAgXTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBnZXRTaGFwZUJ5RWxlbWVudChib2FyZCwgY2hpbGQub3JpZ2luKSBhcyBNaW5kRWxlbWVudFNoYXBlO1xuXG4gICAgICAgIGlmICghbm9kZS5vcmlnaW4uaXNSb290KSB7XG4gICAgICAgICAgICBpZiAobm9kZS54ID4gY2hpbGQueCkge1xuICAgICAgICAgICAgICAgIGN1cnZlID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YICsgKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDMsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYIC0gKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDIsIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCAtIDEyLCBlbmRZXVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgY29uc3QgbGluZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2VuZFggLSAxMiwgZW5kWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYIC0gMTIsIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWV1cbiAgICAgICAgICAgICAgICBdIGFzIFBvaW50W107XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbLi4uY3VydmUsIC4uLmxpbmVdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJ2ZSA9IFtcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCArIDEyLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YICsgKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDIsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYIC0gKGJlZ2luTm9kZS5oR2FwICsgZW5kTm9kZS5oR2FwKSAvIDMsIGVuZFldLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWV1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggKyAxMiwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCArIDEyLCBiZWdpblldXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLmxpbmUsIC4uLmN1cnZlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZWVkRHJhd1VuZGVybGluZSAmJiBzaGFwZSA9PT0gTWluZEVsZW1lbnRTaGFwZS51bmRlcmxpbmUpIHtcbiAgICAgICAgICAgIGlmIChjaGlsZC5sZWZ0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5kZXJsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YIC0gKGJlZ2luTm9kZS53aWR0aCAtIGJlZ2luTm9kZS5oR2FwICogMiksIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblggLSAoYmVnaW5Ob2RlLndpZHRoIC0gYmVnaW5Ob2RlLmhHYXAgKiAyKSwgYmVnaW5ZXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCAtIChiZWdpbk5vZGUud2lkdGggLSBiZWdpbk5vZGUuaEdhcCAqIDIpLCBiZWdpblldXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLnVuZGVybGluZSwgLi4uY3VydmVdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1bmRlcmxpbmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYICsgKGVuZE5vZGUud2lkdGggLSBlbmROb2RlLmhHYXAgKiAyKSwgZW5kWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYICsgKGVuZE5vZGUud2lkdGggLSBlbmROb2RlLmhHYXAgKiAyKSwgZW5kWV0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYICsgKGVuZE5vZGUud2lkdGggLSBlbmROb2RlLmhHYXAgKiAyKSwgZW5kWV1cbiAgICAgICAgICAgICAgICBdIGFzIFBvaW50W107XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbLi4uY3VydmUsIC4uLnVuZGVybGluZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwb2ludHMgPSBwb2ludHNPbkJlemllckN1cnZlcyhjdXJ2ZSk7XG4gICAgICAgIHJldHVybiBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKS5jdXJ2ZShwb2ludHMgYXMgYW55LCB7IHN0cm9rZSwgc3Ryb2tlV2lkdGggfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGN1cnZlOiBQb2ludFtdID0gW1xuICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZXSxcbiAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgIFtlbmRYLCBlbmRZIC0gKGJlZ2luTm9kZS52R2FwICsgZW5kTm9kZS52R2FwKSAvIDJdLFxuICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKCFub2RlLm9yaWdpbi5pc1Jvb3QpIHtcbiAgICAgICAgICAgIGlmIChpc1RvcExheW91dChsYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWV0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFkgLSAoYmVnaW5Ob2RlLnZHYXAgKyBlbmROb2RlLnZHYXApIC8gMl0sXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZIC0gMTJdXG4gICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtlbmRYLCBlbmRZIC0gMTJdLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWSAtIDEyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgICAgICAgICAgXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLmN1cnZlLCAuLi5saW5lXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VydmUgPSBbXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIDEyXSxcbiAgICAgICAgICAgICAgICAgICAgW2JlZ2luWCwgYmVnaW5ZICsgKGJlZ2luTm9kZS52R2FwICsgZW5kTm9kZS52R2FwKSAvIDJdLFxuICAgICAgICAgICAgICAgICAgICBbZW5kWCwgZW5kWSAtIChiZWdpbk5vZGUudkdhcCArIGVuZE5vZGUudkdhcCkgLyAyXSxcbiAgICAgICAgICAgICAgICAgICAgW2VuZFgsIGVuZFldXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gW1xuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblldLFxuICAgICAgICAgICAgICAgICAgICBbYmVnaW5YLCBiZWdpblkgKyAxMl0sXG4gICAgICAgICAgICAgICAgICAgIFtiZWdpblgsIGJlZ2luWSArIDEyXVxuICAgICAgICAgICAgICAgIF0gYXMgUG9pbnRbXTtcblxuICAgICAgICAgICAgICAgIGN1cnZlID0gWy4uLmxpbmUsIC4uLmN1cnZlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludHMgPSBwb2ludHNPbkJlemllckN1cnZlcyhjdXJ2ZSk7XG4gICAgICAgIHJldHVybiBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKS5jdXJ2ZShwb2ludHMgYXMgYW55LCB7IHN0cm9rZSwgc3Ryb2tlV2lkdGggfSk7XG4gICAgfVxufVxuIl19
|