@plait/mind 0.77.3 → 0.78.0-next.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/fesm2022/plait-mind.mjs +2 -2
- package/fesm2022/plait-mind.mjs.map +1 -1
- package/package.json +1 -3
- package/esm2022/constants/abstract-node.mjs +0 -5
- package/esm2022/constants/default.mjs +0 -17
- package/esm2022/constants/index.mjs +0 -5
- package/esm2022/constants/node-style.mjs +0 -19
- package/esm2022/constants/node-topic-style.mjs +0 -7
- package/esm2022/constants/theme.mjs +0 -73
- package/esm2022/emoji/emoji-base.component.mjs +0 -6
- package/esm2022/emoji/index.mjs +0 -3
- package/esm2022/emoji/with-emoji.mjs +0 -8
- package/esm2022/generators/node-active.generator.mjs +0 -46
- package/esm2022/generators/node-collapse.generator.mjs +0 -108
- package/esm2022/generators/node-emojis.generator.mjs +0 -63
- package/esm2022/generators/node-plus.generator.mjs +0 -100
- package/esm2022/generators/node-shape.generator.mjs +0 -22
- package/esm2022/interfaces/element-data.mjs +0 -2
- package/esm2022/interfaces/element.mjs +0 -103
- package/esm2022/interfaces/index.mjs +0 -8
- package/esm2022/interfaces/layout.mjs +0 -19
- package/esm2022/interfaces/node.mjs +0 -14
- package/esm2022/interfaces/options.mjs +0 -2
- package/esm2022/interfaces/pointer.mjs +0 -5
- package/esm2022/interfaces/theme-color.mjs +0 -57
- package/esm2022/interfaces/types.mjs +0 -13
- package/esm2022/mind-node.component.mjs +0 -193
- package/esm2022/mind.component.mjs +0 -34
- package/esm2022/plait-mind.mjs +0 -5
- package/esm2022/plugins/with-abstract-resize.board.mjs +0 -12
- package/esm2022/plugins/with-abstract-resize.mjs +0 -112
- package/esm2022/plugins/with-mind-create.mjs +0 -104
- package/esm2022/plugins/with-mind-extend.mjs +0 -7
- package/esm2022/plugins/with-mind-fragment.mjs +0 -101
- package/esm2022/plugins/with-mind-hotkey.mjs +0 -62
- package/esm2022/plugins/with-mind.board.mjs +0 -2
- package/esm2022/plugins/with-mind.mjs +0 -148
- package/esm2022/plugins/with-node-dnd.mjs +0 -176
- package/esm2022/plugins/with-node-hover-hit-test.mjs +0 -23
- package/esm2022/plugins/with-node-image-resize.mjs +0 -46
- package/esm2022/plugins/with-node-image.mjs +0 -113
- package/esm2022/plugins/with-node-resize.mjs +0 -69
- package/esm2022/public-api.mjs +0 -16
- package/esm2022/queries/get-available-sublayouts-by-element.mjs +0 -23
- package/esm2022/queries/get-branch-layouts.mjs +0 -18
- package/esm2022/queries/get-correct-layout-by-element.mjs +0 -48
- package/esm2022/queries/get-layout-by-element.mjs +0 -18
- package/esm2022/queries/index.mjs +0 -11
- package/esm2022/transforms/abstract-node.mjs +0 -73
- package/esm2022/transforms/emoji.mjs +0 -41
- package/esm2022/transforms/image.mjs +0 -31
- package/esm2022/transforms/index.mjs +0 -30
- package/esm2022/transforms/layout.mjs +0 -19
- package/esm2022/transforms/node.mjs +0 -99
- package/esm2022/transforms/property.mjs +0 -34
- package/esm2022/utils/abstract/common.mjs +0 -170
- package/esm2022/utils/abstract/resize.mjs +0 -194
- package/esm2022/utils/clipboard.mjs +0 -108
- package/esm2022/utils/common.mjs +0 -26
- package/esm2022/utils/dnd/common.mjs +0 -59
- package/esm2022/utils/dnd/detector.mjs +0 -176
- package/esm2022/utils/draw/abstract-outline.mjs +0 -118
- package/esm2022/utils/draw/node-dnd.mjs +0 -164
- package/esm2022/utils/draw/node-link/abstract-link.mjs +0 -60
- package/esm2022/utils/draw/node-link/draw-link.mjs +0 -9
- package/esm2022/utils/draw/node-link/indented-link.mjs +0 -46
- package/esm2022/utils/draw/node-link/logic-link.mjs +0 -76
- package/esm2022/utils/draw/node-shape.mjs +0 -26
- package/esm2022/utils/index.mjs +0 -17
- package/esm2022/utils/layout.mjs +0 -105
- package/esm2022/utils/mind.mjs +0 -98
- package/esm2022/utils/node/adjust-node.mjs +0 -36
- package/esm2022/utils/node/common.mjs +0 -15
- package/esm2022/utils/node/create-node.mjs +0 -46
- package/esm2022/utils/node/dynamic-width.mjs +0 -14
- package/esm2022/utils/node/image.mjs +0 -15
- package/esm2022/utils/node/index.mjs +0 -6
- package/esm2022/utils/node/right-node-count.mjs +0 -45
- package/esm2022/utils/node-hover/extend.mjs +0 -50
- package/esm2022/utils/node-style/branch.mjs +0 -63
- package/esm2022/utils/node-style/common.mjs +0 -4
- package/esm2022/utils/node-style/index.mjs +0 -4
- package/esm2022/utils/node-style/shape.mjs +0 -37
- package/esm2022/utils/normalize.mjs +0 -40
- package/esm2022/utils/path.mjs +0 -12
- package/esm2022/utils/point-placement.mjs +0 -119
- package/esm2022/utils/position/emoji.mjs +0 -31
- package/esm2022/utils/position/image.mjs +0 -36
- package/esm2022/utils/position/index.mjs +0 -5
- package/esm2022/utils/position/node.mjs +0 -36
- package/esm2022/utils/position/topic.mjs +0 -16
- package/esm2022/utils/space/emoji.mjs +0 -20
- package/esm2022/utils/space/index.mjs +0 -4
- package/esm2022/utils/space/layout-options.mjs +0 -69
- package/esm2022/utils/space/node-space.mjs +0 -134
- package/esm2022/utils/weak-maps.mjs +0 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plait/mind",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.78.0-next.0",
|
|
4
4
|
"peerDependencies": {},
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"tslib": "^2.3.0"
|
|
@@ -22,8 +22,6 @@
|
|
|
22
22
|
},
|
|
23
23
|
".": {
|
|
24
24
|
"types": "./index.d.ts",
|
|
25
|
-
"esm2022": "./esm2022/plait-mind.mjs",
|
|
26
|
-
"esm": "./esm2022/plait-mind.mjs",
|
|
27
25
|
"default": "./fesm2022/plait-mind.mjs"
|
|
28
26
|
}
|
|
29
27
|
},
|
|
@@ -1,5 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2NvbnN0YW50cy9hYnN0cmFjdC1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFdBQVcsQ0FBQyxDQUFDLDJCQUEyQjtBQUM3RSxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFHLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBQlNUUkFDVF9IQU5ETEVfQ09MT1IgPSAnIzY2OThGRjgwJzsgLy9wcmltYXJ5IGNvbG9yIDUwJSBvcGFjaXR5XG5leHBvcnQgY29uc3QgQUJTVFJBQ1RfSU5DTFVERURfT1VUTElORV9PRkZTRVQgPSAzLjU7XG5leHBvcnQgY29uc3QgQUJTVFJBQ1RfSEFORExFX0xFTkdUSCA9IDEwO1xuXG5leHBvcnQgY29uc3QgQUJTVFJBQ1RfSEFORExFX01BU0tfV0lEVEggPSA4O1xuIl19
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export const WithMindPluginKey = 'plait-mind-plugin-key';
|
|
2
|
-
export const BASE = 4;
|
|
3
|
-
export const PRIMARY_COLOR = '#6698FF';
|
|
4
|
-
export const GRAY_COLOR = '#AAAAAA';
|
|
5
|
-
export const STROKE_WIDTH = 3;
|
|
6
|
-
export const EXTEND_OFFSET = 8;
|
|
7
|
-
export const EXTEND_DIAMETER = 16;
|
|
8
|
-
export const QUICK_INSERT_CIRCLE_OFFSET = 9;
|
|
9
|
-
export const QUICK_INSERT_CIRCLE_COLOR = '#6698FF';
|
|
10
|
-
export const QUICK_INSERT_INNER_CROSS_COLOR = 'white';
|
|
11
|
-
export const DEFAULT_MIND_IMAGE_WIDTH = 240;
|
|
12
|
-
export var MindI18nKey;
|
|
13
|
-
(function (MindI18nKey) {
|
|
14
|
-
MindI18nKey["mindCentralText"] = "mind-center-text";
|
|
15
|
-
MindI18nKey["abstractNodeText"] = "abstract-node-text";
|
|
16
|
-
})(MindI18nKey || (MindI18nKey = {}));
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2NvbnN0YW50cy9kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFFOUIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO0FBRWxDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQztBQUM1QyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsT0FBTyxDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUU1QyxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ25CLG1EQUFvQyxDQUFBO0lBQ3BDLHNEQUF1QyxDQUFBO0FBQzNDLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBXaXRoTWluZFBsdWdpbktleSA9ICdwbGFpdC1taW5kLXBsdWdpbi1rZXknO1xuXG5leHBvcnQgY29uc3QgQkFTRSA9IDQ7XG5leHBvcnQgY29uc3QgUFJJTUFSWV9DT0xPUiA9ICcjNjY5OEZGJztcbmV4cG9ydCBjb25zdCBHUkFZX0NPTE9SID0gJyNBQUFBQUEnO1xuZXhwb3J0IGNvbnN0IFNUUk9LRV9XSURUSCA9IDM7XG5cbmV4cG9ydCBjb25zdCBFWFRFTkRfT0ZGU0VUID0gODtcbmV4cG9ydCBjb25zdCBFWFRFTkRfRElBTUVURVIgPSAxNjtcblxuZXhwb3J0IGNvbnN0IFFVSUNLX0lOU0VSVF9DSVJDTEVfT0ZGU0VUID0gOTtcbmV4cG9ydCBjb25zdCBRVUlDS19JTlNFUlRfQ0lSQ0xFX0NPTE9SID0gJyM2Njk4RkYnO1xuZXhwb3J0IGNvbnN0IFFVSUNLX0lOU0VSVF9JTk5FUl9DUk9TU19DT0xPUiA9ICd3aGl0ZSc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01JTkRfSU1BR0VfV0lEVEggPSAyNDA7XG5cbmV4cG9ydCBlbnVtIE1pbmRJMThuS2V5IHtcbiAgICBtaW5kQ2VudHJhbFRleHQgPSAnbWluZC1jZW50ZXItdGV4dCcsXG4gICAgYWJzdHJhY3ROb2RlVGV4dCA9ICdhYnN0cmFjdC1ub2RlLXRleHQnXG59Il19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './default';
|
|
2
|
-
export * from './node-style';
|
|
3
|
-
export * from './node-topic-style';
|
|
4
|
-
export * from './abstract-node';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0JztcbmV4cG9ydCAqIGZyb20gJy4vbm9kZS1zdHlsZSc7XG5leHBvcnQgKiBmcm9tICcuL25vZGUtdG9waWMtc3R5bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC1ub2RlJztcbiJdfQ==
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { GRAY_COLOR } from './default';
|
|
2
|
-
export const DefaultAbstractNodeStyle = {
|
|
3
|
-
branch: { color: GRAY_COLOR, width: 2 },
|
|
4
|
-
shape: {
|
|
5
|
-
strokeColor: GRAY_COLOR,
|
|
6
|
-
strokeWidth: 2
|
|
7
|
-
}
|
|
8
|
-
};
|
|
9
|
-
export const DefaultNodeStyle = {
|
|
10
|
-
branch: {
|
|
11
|
-
width: 3
|
|
12
|
-
},
|
|
13
|
-
shape: {
|
|
14
|
-
rectangleRadius: 4,
|
|
15
|
-
strokeWidth: 3,
|
|
16
|
-
fill: 'none'
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2NvbnN0YW50cy9ub2RlLXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDcEMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQ3ZDLEtBQUssRUFBRTtRQUNILFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFdBQVcsRUFBRSxDQUFDO0tBQ2pCO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNKLEtBQUssRUFBRSxDQUFDO0tBQ1g7SUFDRCxLQUFLLEVBQUU7UUFDSCxlQUFlLEVBQUUsQ0FBQztRQUNsQixXQUFXLEVBQUUsQ0FBQztRQUNkLElBQUksRUFBRSxNQUFNO0tBQ2Y7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR1JBWV9DT0xPUiB9IGZyb20gJy4vZGVmYXVsdCc7XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUgPSB7XG4gICAgYnJhbmNoOiB7IGNvbG9yOiBHUkFZX0NPTE9SLCB3aWR0aDogMiB9LFxuICAgIHNoYXBlOiB7XG4gICAgICAgIHN0cm9rZUNvbG9yOiBHUkFZX0NPTE9SLFxuICAgICAgICBzdHJva2VXaWR0aDogMlxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Tm9kZVN0eWxlID0ge1xuICAgIGJyYW5jaDoge1xuICAgICAgICB3aWR0aDogM1xuICAgIH0sXG4gICAgc2hhcGU6IHtcbiAgICAgICAgcmVjdGFuZ2xlUmFkaXVzOiA0LFxuICAgICAgICBzdHJva2VXaWR0aDogMyxcbiAgICAgICAgZmlsbDogJ25vbmUnXG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export const TOPIC_FONT_SIZE = 14;
|
|
2
|
-
export const ROOT_TOPIC_FONT_SIZE = 18;
|
|
3
|
-
export const TOPIC_DEFAULT_MAX_WORD_COUNT = 34;
|
|
4
|
-
export const NodeTopicThreshold = {
|
|
5
|
-
defaultTextMaxWidth: 34 * 14
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10b3BpYy1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2NvbnN0YW50cy9ub2RlLXRvcGljLXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7QUFFbEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLEVBQUUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUM5QixtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRTtDQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRPUElDX0ZPTlRfU0laRSA9IDE0O1xuXG5leHBvcnQgY29uc3QgUk9PVF9UT1BJQ19GT05UX1NJWkUgPSAxODtcblxuZXhwb3J0IGNvbnN0IFRPUElDX0RFRkFVTFRfTUFYX1dPUkRfQ09VTlQgPSAzNDtcblxuZXhwb3J0IGNvbnN0IE5vZGVUb3BpY1RocmVzaG9sZCA9IHtcbiAgICBkZWZhdWx0VGV4dE1heFdpZHRoOiAzNCAqIDE0XG59O1xuIl19
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_BRANCH_COLORS = [
|
|
2
|
-
'#A287E0',
|
|
3
|
-
'#6E80DB',
|
|
4
|
-
'#6DC4C4',
|
|
5
|
-
'#E0B75E',
|
|
6
|
-
'#B1C675',
|
|
7
|
-
'#77C386',
|
|
8
|
-
'#C18976',
|
|
9
|
-
'#E48484',
|
|
10
|
-
'#E582D4',
|
|
11
|
-
'#6AB1E4'
|
|
12
|
-
];
|
|
13
|
-
export const COLORFUL_BRANCH_COLORS = [
|
|
14
|
-
'#F94239',
|
|
15
|
-
'#FF8612',
|
|
16
|
-
'#F3D222',
|
|
17
|
-
'#B3D431',
|
|
18
|
-
'#00BC7B',
|
|
19
|
-
'#06ADBF',
|
|
20
|
-
'#476BFF',
|
|
21
|
-
'#4E49BE',
|
|
22
|
-
'#8957E5',
|
|
23
|
-
'#FE5DA1'
|
|
24
|
-
];
|
|
25
|
-
export const SOFT_BRANCH_COLORS = [
|
|
26
|
-
'#6D89C1',
|
|
27
|
-
'#F2BDC7',
|
|
28
|
-
'#B796D9',
|
|
29
|
-
'#5BA683',
|
|
30
|
-
'#B3D431 ',
|
|
31
|
-
'#F2DC6C',
|
|
32
|
-
'#F7C98D',
|
|
33
|
-
'#60B4D1',
|
|
34
|
-
'#838F9E',
|
|
35
|
-
'#C1A381'
|
|
36
|
-
];
|
|
37
|
-
export const RETRO_BRANCH_COLORS = [
|
|
38
|
-
'#459476',
|
|
39
|
-
'#9A894F',
|
|
40
|
-
'#D48444',
|
|
41
|
-
'#E9C358 ',
|
|
42
|
-
'#4B9D9D',
|
|
43
|
-
'#C14C41',
|
|
44
|
-
'#827086 ',
|
|
45
|
-
'#60718D',
|
|
46
|
-
'#D38183',
|
|
47
|
-
'#9DC19D'
|
|
48
|
-
];
|
|
49
|
-
export const DARK_BRANCH_COLORS = [
|
|
50
|
-
'#3DD1AE',
|
|
51
|
-
'#F6C659',
|
|
52
|
-
'#A9E072',
|
|
53
|
-
'#FF877B ',
|
|
54
|
-
'#F693E7',
|
|
55
|
-
'#5DCFFF',
|
|
56
|
-
'#868AF6',
|
|
57
|
-
'#4C6DC7',
|
|
58
|
-
'#D97C26',
|
|
59
|
-
'#268FAC'
|
|
60
|
-
];
|
|
61
|
-
export const STARRY_BRANCH_COLORS = [
|
|
62
|
-
'#E46C57',
|
|
63
|
-
'#579360',
|
|
64
|
-
'#B98339',
|
|
65
|
-
'#3A62D1 ',
|
|
66
|
-
'#B883B7',
|
|
67
|
-
'#42ABE5',
|
|
68
|
-
'#2B9D8F',
|
|
69
|
-
'#A4705E',
|
|
70
|
-
'#265833',
|
|
71
|
-
'#787865'
|
|
72
|
-
];
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9jb25zdGFudHMvdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDakMsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztDQUNaLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNsQyxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0NBQ1osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxVQUFVO0lBQ1YsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7Q0FDWixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDL0IsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsVUFBVTtJQUNWLFNBQVM7SUFDVCxTQUFTO0lBQ1QsVUFBVTtJQUNWLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztDQUNaLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUM5QixTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxVQUFVO0lBQ1YsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0NBQ1osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFVBQVU7SUFDVixTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERFRkFVTFRfQlJBTkNIX0NPTE9SUyA9IFtcbiAgICAnI0EyODdFMCcsXG4gICAgJyM2RTgwREInLFxuICAgICcjNkRDNEM0JyxcbiAgICAnI0UwQjc1RScsXG4gICAgJyNCMUM2NzUnLFxuICAgICcjNzdDMzg2JyxcbiAgICAnI0MxODk3NicsXG4gICAgJyNFNDg0ODQnLFxuICAgICcjRTU4MkQ0JyxcbiAgICAnIzZBQjFFNCdcbl07XG5cbmV4cG9ydCBjb25zdCBDT0xPUkZVTF9CUkFOQ0hfQ09MT1JTID0gW1xuICAgICcjRjk0MjM5JyxcbiAgICAnI0ZGODYxMicsXG4gICAgJyNGM0QyMjInLFxuICAgICcjQjNENDMxJyxcbiAgICAnIzAwQkM3QicsXG4gICAgJyMwNkFEQkYnLFxuICAgICcjNDc2QkZGJyxcbiAgICAnIzRFNDlCRScsXG4gICAgJyM4OTU3RTUnLFxuICAgICcjRkU1REExJ1xuXTtcblxuZXhwb3J0IGNvbnN0IFNPRlRfQlJBTkNIX0NPTE9SUyA9IFtcbiAgICAnIzZEODlDMScsXG4gICAgJyNGMkJEQzcnLFxuICAgICcjQjc5NkQ5JyxcbiAgICAnIzVCQTY4MycsXG4gICAgJyNCM0Q0MzEgJyxcbiAgICAnI0YyREM2QycsXG4gICAgJyNGN0M5OEQnLFxuICAgICcjNjBCNEQxJyxcbiAgICAnIzgzOEY5RScsXG4gICAgJyNDMUEzODEnXG5dO1xuXG5leHBvcnQgY29uc3QgUkVUUk9fQlJBTkNIX0NPTE9SUyA9IFtcbiAgICAnIzQ1OTQ3NicsXG4gICAgJyM5QTg5NEYnLFxuICAgICcjRDQ4NDQ0JyxcbiAgICAnI0U5QzM1OCAnLFxuICAgICcjNEI5RDlEJyxcbiAgICAnI0MxNEM0MScsXG4gICAgJyM4MjcwODYgJyxcbiAgICAnIzYwNzE4RCcsXG4gICAgJyNEMzgxODMnLFxuICAgICcjOURDMTlEJ1xuXTtcblxuZXhwb3J0IGNvbnN0IERBUktfQlJBTkNIX0NPTE9SUyA9IFtcbiAgICAnIzNERDFBRScsXG4gICAgJyNGNkM2NTknLFxuICAgICcjQTlFMDcyJyxcbiAgICAnI0ZGODc3QiAnLFxuICAgICcjRjY5M0U3JyxcbiAgICAnIzVEQ0ZGRicsXG4gICAgJyM4NjhBRjYnLFxuICAgICcjNEM2REM3JyxcbiAgICAnI0Q5N0MyNicsXG4gICAgJyMyNjhGQUMnXG5dO1xuXG5leHBvcnQgY29uc3QgU1RBUlJZX0JSQU5DSF9DT0xPUlMgPSBbXG4gICAgJyNFNDZDNTcnLFxuICAgICcjNTc5MzYwJyxcbiAgICAnI0I5ODMzOScsXG4gICAgJyMzQTYyRDEgJyxcbiAgICAnI0I4ODNCNycsXG4gICAgJyM0MkFCRTUnLFxuICAgICcjMkI5RDhGJyxcbiAgICAnI0E0NzA1RScsXG4gICAgJyMyNjU4MzMnLFxuICAgICcjNzg3ODY1J1xuXTtcbiJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export class MindEmojiBaseComponent {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.fontSize = 14;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamktYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9lbW9qaS9lbW9qaS1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQWdCLHNCQUFzQjtJQUE1QztRQUNJLGFBQVEsR0FBVyxFQUFFLENBQUM7SUFTMUIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW1vamlEYXRhLCBFbW9qaUl0ZW0gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQtZGF0YSc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1pbmRFbW9qaUJhc2VDb21wb25lbnQge1xuICAgIGZvbnRTaXplOiBudW1iZXIgPSAxNDtcblxuICAgIGVtb2ppSXRlbSE6IEVtb2ppSXRlbTtcblxuICAgIGJvYXJkITogUGxhaXRCb2FyZDtcblxuICAgIGVsZW1lbnQhOiBNaW5kRWxlbWVudDxFbW9qaURhdGE+O1xuXG4gICAgYWJzdHJhY3QgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudDtcbn1cbiJdfQ==
|
package/esm2022/emoji/index.mjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './emoji-base.component';
|
|
2
|
-
export * from './with-emoji';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9lbW9qaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbW9qaS1iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3dpdGgtZW1vamknO1xuIl19
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export const withEmoji = (board) => {
|
|
2
|
-
const newBoard = board;
|
|
3
|
-
newBoard.renderEmoji = (container, props) => {
|
|
4
|
-
throw new Error('No implementation for renderEmoji method.');
|
|
5
|
-
};
|
|
6
|
-
return newBoard;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1lbW9qaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2Vtb2ppL3dpdGgtZW1vamkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQW9DLEtBQVEsRUFBRSxFQUFFO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLEtBQWdDLENBQUM7SUFFbEQsUUFBUSxDQUFDLFdBQVcsR0FBRyxDQUFDLFNBQXFDLEVBQUUsS0FBaUIsRUFBRSxFQUFFO1FBQ2hGLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUM7SUFDRixPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUmVuZGVyQ29tcG9uZW50UmVmIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBFbW9qaURhdGEsIEVtb2ppSXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdE1pbmRFbW9qaUJvYXJkIHtcbiAgICByZW5kZXJFbW9qaTogKGNvbnRhaW5lcjogRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQsIHByb3BzOiBFbW9qaVByb3BzKSA9PiBFbW9qaUNvbXBvbmVudFJlZjtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhFbW9qaSA9IDxUIGV4dGVuZHMgUGxhaXRCb2FyZCA9IFBsYWl0Qm9hcmQ+KGJvYXJkOiBUKSA9PiB7XG4gICAgY29uc3QgbmV3Qm9hcmQgPSBib2FyZCBhcyBUICYgUGxhaXRNaW5kRW1vamlCb2FyZDtcblxuICAgIG5ld0JvYXJkLnJlbmRlckVtb2ppID0gKGNvbnRhaW5lcjogRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQsIHByb3BzOiBFbW9qaVByb3BzKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gaW1wbGVtZW50YXRpb24gZm9yIHJlbmRlckVtb2ppIG1ldGhvZC4nKTtcbiAgICB9O1xuICAgIHJldHVybiBuZXdCb2FyZDtcbn07XG5cbmV4cG9ydCB0eXBlIEVtb2ppQ29tcG9uZW50UmVmID0gUmVuZGVyQ29tcG9uZW50UmVmPEVtb2ppUHJvcHM+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVtb2ppUHJvcHMge1xuICAgIGJvYXJkOiBQbGFpdEJvYXJkO1xuICAgIGVtb2ppSXRlbTogRW1vamlJdGVtO1xuICAgIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT47XG4gICAgZm9udFNpemU6IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ACTIVE_STROKE_WIDTH, PlaitBoard, RectangleClient, SELECTION_RECTANGLE_CLASS_NAME, createG, drawRoundRectangle, toActiveRectangleFromViewBoxRectangle } from '@plait/core';
|
|
2
|
-
import { MindElement } from '../interfaces';
|
|
3
|
-
import { getRectangleByNode } from '../utils/position/node';
|
|
4
|
-
import { PRIMARY_COLOR } from '../constants/default';
|
|
5
|
-
import { AbstractNode } from '@plait/layouts';
|
|
6
|
-
import { drawAbstractIncludedOutline } from '../utils/draw/abstract-outline';
|
|
7
|
-
import { DefaultNodeStyle } from '../constants/node-style';
|
|
8
|
-
import { getStrokeWidthByElement } from '../utils/node-style/shape';
|
|
9
|
-
import { Generator } from '@plait/common';
|
|
10
|
-
export class NodeActiveGenerator extends Generator {
|
|
11
|
-
static { this.key = 'mind-node-active'; }
|
|
12
|
-
canDraw(element, data) {
|
|
13
|
-
if (data.selected) {
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
draw(element, data) {
|
|
21
|
-
const activeG = createG();
|
|
22
|
-
const node = MindElement.getNode(element);
|
|
23
|
-
const rectangle = getRectangleByNode(node);
|
|
24
|
-
const activeRectangle1 = toActiveRectangleFromViewBoxRectangle(this.board, rectangle);
|
|
25
|
-
const strokeWidth = getStrokeWidthByElement(this.board, element);
|
|
26
|
-
const activeStrokeWidth = ACTIVE_STROKE_WIDTH;
|
|
27
|
-
const activeRectangleWithInflated = RectangleClient.inflate(activeRectangle1, activeStrokeWidth);
|
|
28
|
-
const strokeG = drawRoundRectangle(PlaitBoard.getRoughSVG(this.board), activeRectangleWithInflated.x, activeRectangleWithInflated.y, activeRectangleWithInflated.x + activeRectangleWithInflated.width, activeRectangleWithInflated.y + activeRectangleWithInflated.height, { stroke: PRIMARY_COLOR, strokeWidth: activeStrokeWidth, fill: '' }, true, DefaultNodeStyle.shape.rectangleRadius + (activeStrokeWidth + strokeWidth) / 2);
|
|
29
|
-
if (AbstractNode.isAbstract(element)) {
|
|
30
|
-
this.abstractOutlineG = drawAbstractIncludedOutline(this.board, PlaitBoard.getRoughSVG(this.board), element);
|
|
31
|
-
activeG.append(this.abstractOutlineG);
|
|
32
|
-
strokeG.classList.add('abstract-element');
|
|
33
|
-
}
|
|
34
|
-
activeG.appendChild(strokeG);
|
|
35
|
-
activeG.classList.add(SELECTION_RECTANGLE_CLASS_NAME);
|
|
36
|
-
return activeG;
|
|
37
|
-
}
|
|
38
|
-
updateAbstractOutline(element, activeHandlePosition, resizingLocation) {
|
|
39
|
-
const abstractOutlineG = drawAbstractIncludedOutline(this.board, PlaitBoard.getRoughSVG(this.board), element, activeHandlePosition, resizingLocation);
|
|
40
|
-
if (this.abstractOutlineG) {
|
|
41
|
-
this.abstractOutlineG.replaceWith(abstractOutlineG);
|
|
42
|
-
this.abstractOutlineG = abstractOutlineG;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1hY3RpdmUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvZ2VuZXJhdG9ycy9ub2RlLWFjdGl2ZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsZUFBZSxFQUNmLDhCQUE4QixFQUM5QixPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLHFDQUFxQyxFQUN4QyxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0xQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBa0M7YUFDaEUsUUFBRyxHQUFHLGtCQUFrQixDQUFDO0lBSWhDLE9BQU8sQ0FBQyxPQUE4QixFQUFFLElBQWdCO1FBQ3BELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBOEIsRUFBRSxJQUFnQjtRQUNqRCxNQUFNLE9BQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE1BQU0sZ0JBQWdCLEdBQUcscUNBQXFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RixNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7UUFDOUMsTUFBTSwyQkFBMkIsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDakcsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQzlCLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNsQywyQkFBMkIsQ0FBQyxDQUFDLEVBQzdCLDJCQUEyQixDQUFDLENBQUMsRUFDN0IsMkJBQTJCLENBQUMsQ0FBQyxHQUFHLDJCQUEyQixDQUFDLEtBQUssRUFDakUsMkJBQTJCLENBQUMsQ0FBQyxHQUFHLDJCQUEyQixDQUFDLE1BQU0sRUFDbEUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQ25FLElBQUksRUFDSixnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUNqRixDQUFDO1FBQ0YsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDN0csT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN0QyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDdEQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLE9BQW9CLEVBQUUsb0JBQTZDLEVBQUUsZ0JBQXlCO1FBQ2hILE1BQU0sZ0JBQWdCLEdBQUcsMkJBQTJCLENBQ2hELElBQUksQ0FBQyxLQUFLLEVBQ1YsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQ2xDLE9BQU8sRUFDUCxvQkFBb0IsRUFDcEIsZ0JBQWdCLENBQ25CLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0MsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgU0VMRUNUSU9OX1JFQ1RBTkdMRV9DTEFTU19OQU1FLFxuICAgIGNyZWF0ZUcsXG4gICAgZHJhd1JvdW5kUmVjdGFuZ2xlLFxuICAgIHRvQWN0aXZlUmVjdGFuZ2xlRnJvbVZpZXdCb3hSZWN0YW5nbGVcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIEJhc2VEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9ub2RlJztcbmltcG9ydCB7IFBSSU1BUllfQ09MT1IgfSBmcm9tICcuLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBkcmF3QWJzdHJhY3RJbmNsdWRlZE91dGxpbmUgfSBmcm9tICcuLi91dGlscy9kcmF3L2Fic3RyYWN0LW91dGxpbmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RIYW5kbGVQb3NpdGlvbiB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1hYnN0cmFjdC1yZXNpemUuYm9hcmQnO1xuaW1wb3J0IHsgRGVmYXVsdE5vZGVTdHlsZSB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXN0eWxlJztcbmltcG9ydCB7IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS1zdHlsZS9zaGFwZSc7XG5pbXBvcnQgeyBHZW5lcmF0b3IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmVEYXRhIHtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIE5vZGVBY3RpdmVHZW5lcmF0b3IgZXh0ZW5kcyBHZW5lcmF0b3I8TWluZEVsZW1lbnQsIEFjdGl2ZURhdGE+IHtcbiAgICBzdGF0aWMga2V5ID0gJ21pbmQtbm9kZS1hY3RpdmUnO1xuXG4gICAgYWJzdHJhY3RPdXRsaW5lRz86IFNWR0dFbGVtZW50O1xuXG4gICAgY2FuRHJhdyhlbGVtZW50OiBNaW5kRWxlbWVudDxCYXNlRGF0YT4sIGRhdGE6IEFjdGl2ZURhdGEpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGRhdGEuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBNaW5kRWxlbWVudDxCYXNlRGF0YT4sIGRhdGE6IEFjdGl2ZURhdGEpOiBTVkdHRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZTEgPSB0b0FjdGl2ZVJlY3RhbmdsZUZyb21WaWV3Qm94UmVjdGFuZ2xlKHRoaXMuYm9hcmQsIHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVN0cm9rZVdpZHRoID0gQUNUSVZFX1NUUk9LRV9XSURUSDtcbiAgICAgICAgY29uc3QgYWN0aXZlUmVjdGFuZ2xlV2l0aEluZmxhdGVkID0gUmVjdGFuZ2xlQ2xpZW50LmluZmxhdGUoYWN0aXZlUmVjdGFuZ2xlMSwgYWN0aXZlU3Ryb2tlV2lkdGgpO1xuICAgICAgICBjb25zdCBzdHJva2VHID0gZHJhd1JvdW5kUmVjdGFuZ2xlKFxuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyh0aGlzLmJvYXJkKSxcbiAgICAgICAgICAgIGFjdGl2ZVJlY3RhbmdsZVdpdGhJbmZsYXRlZC54LFxuICAgICAgICAgICAgYWN0aXZlUmVjdGFuZ2xlV2l0aEluZmxhdGVkLnksXG4gICAgICAgICAgICBhY3RpdmVSZWN0YW5nbGVXaXRoSW5mbGF0ZWQueCArIGFjdGl2ZVJlY3RhbmdsZVdpdGhJbmZsYXRlZC53aWR0aCxcbiAgICAgICAgICAgIGFjdGl2ZVJlY3RhbmdsZVdpdGhJbmZsYXRlZC55ICsgYWN0aXZlUmVjdGFuZ2xlV2l0aEluZmxhdGVkLmhlaWdodCxcbiAgICAgICAgICAgIHsgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLCBzdHJva2VXaWR0aDogYWN0aXZlU3Ryb2tlV2lkdGgsIGZpbGw6ICcnIH0sXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgRGVmYXVsdE5vZGVTdHlsZS5zaGFwZS5yZWN0YW5nbGVSYWRpdXMgKyAoYWN0aXZlU3Ryb2tlV2lkdGggKyBzdHJva2VXaWR0aCkgLyAyXG4gICAgICAgICk7XG4gICAgICAgIGlmIChBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChlbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5hYnN0cmFjdE91dGxpbmVHID0gZHJhd0Fic3RyYWN0SW5jbHVkZWRPdXRsaW5lKHRoaXMuYm9hcmQsIFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcodGhpcy5ib2FyZCksIGVsZW1lbnQpO1xuICAgICAgICAgICAgYWN0aXZlRy5hcHBlbmQodGhpcy5hYnN0cmFjdE91dGxpbmVHKTtcbiAgICAgICAgICAgIHN0cm9rZUcuY2xhc3NMaXN0LmFkZCgnYWJzdHJhY3QtZWxlbWVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGFjdGl2ZUcuYXBwZW5kQ2hpbGQoc3Ryb2tlRyk7XG4gICAgICAgIGFjdGl2ZUcuY2xhc3NMaXN0LmFkZChTRUxFQ1RJT05fUkVDVEFOR0xFX0NMQVNTX05BTUUpO1xuICAgICAgICByZXR1cm4gYWN0aXZlRztcbiAgICB9XG5cbiAgICB1cGRhdGVBYnN0cmFjdE91dGxpbmUoZWxlbWVudDogTWluZEVsZW1lbnQsIGFjdGl2ZUhhbmRsZVBvc2l0aW9uPzogQWJzdHJhY3RIYW5kbGVQb3NpdGlvbiwgcmVzaXppbmdMb2NhdGlvbj86IG51bWJlcikge1xuICAgICAgICBjb25zdCBhYnN0cmFjdE91dGxpbmVHID0gZHJhd0Fic3RyYWN0SW5jbHVkZWRPdXRsaW5lKFxuICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcodGhpcy5ib2FyZCksXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgYWN0aXZlSGFuZGxlUG9zaXRpb24sXG4gICAgICAgICAgICByZXNpemluZ0xvY2F0aW9uXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLmFic3RyYWN0T3V0bGluZUcpIHtcbiAgICAgICAgICAgIHRoaXMuYWJzdHJhY3RPdXRsaW5lRy5yZXBsYWNlV2l0aChhYnN0cmFjdE91dGxpbmVHKTtcbiAgICAgICAgICAgIHRoaXMuYWJzdHJhY3RPdXRsaW5lRyA9IGFic3RyYWN0T3V0bGluZUc7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, PlaitPointerType, Transforms, createG, createText, drawLinearPath } from '@plait/core';
|
|
2
|
-
import { MindElement, PlaitMind, MindElementShape, LayoutDirection } from '../interfaces';
|
|
3
|
-
import { getRectangleByNode } from '../utils/position/node';
|
|
4
|
-
import { getShapeByElement } from '../utils/node-style/shape';
|
|
5
|
-
import { EXTEND_OFFSET, EXTEND_DIAMETER } from '../constants/default';
|
|
6
|
-
import { isHorizontalLayout, isIndentedLayout, isTopLayout } from '@plait/layouts';
|
|
7
|
-
import { MindQueries } from '../queries';
|
|
8
|
-
import { fromEvent } from 'rxjs';
|
|
9
|
-
import { getChildrenCount } from '../utils/mind';
|
|
10
|
-
import { filter, take } from 'rxjs/operators';
|
|
11
|
-
import { getBranchColorByMindElement, getBranchWidthByMindElement } from '../utils/node-style/branch';
|
|
12
|
-
import { getLayoutDirection, getPointByPlacement, moveXOfPoint, moveYOfPoint, transformPlacement } from '../utils/point-placement';
|
|
13
|
-
import { HorizontalPlacement, VerticalPlacement } from '../interfaces/types';
|
|
14
|
-
import { Generator } from '@plait/common';
|
|
15
|
-
export class CollapseGenerator extends Generator {
|
|
16
|
-
canDraw(element) {
|
|
17
|
-
if (element.children.length && !PlaitMind.isMind(element)) {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
draw(element) {
|
|
23
|
-
const collapseG = createG();
|
|
24
|
-
collapseG.classList.add('collapse');
|
|
25
|
-
const node = MindElement.getNode(element);
|
|
26
|
-
const stroke = getBranchColorByMindElement(this.board, element);
|
|
27
|
-
const branchWidth = getBranchWidthByMindElement(this.board, element);
|
|
28
|
-
const layout = MindQueries.getLayoutByElement(element);
|
|
29
|
-
const isUnderlineShape = getShapeByElement(this.board, element) === MindElementShape.underline;
|
|
30
|
-
const isHorizontal = isHorizontalLayout(layout);
|
|
31
|
-
const nodeClient = getRectangleByNode(node);
|
|
32
|
-
let linkDirection = getLayoutDirection(node, isHorizontal);
|
|
33
|
-
if (isIndentedLayout(layout)) {
|
|
34
|
-
linkDirection = isTopLayout(layout) ? LayoutDirection.top : LayoutDirection.bottom;
|
|
35
|
-
}
|
|
36
|
-
let placement = [HorizontalPlacement.right, VerticalPlacement.middle];
|
|
37
|
-
transformPlacement(placement, linkDirection);
|
|
38
|
-
// underline shape and horizontal
|
|
39
|
-
if (isHorizontal && isUnderlineShape && !element.isRoot) {
|
|
40
|
-
placement[1] = VerticalPlacement.bottom;
|
|
41
|
-
}
|
|
42
|
-
let startPoint = getPointByPlacement(nodeClient, placement);
|
|
43
|
-
const endPoint = moveXOfPoint(startPoint, EXTEND_OFFSET, linkDirection);
|
|
44
|
-
const circleCenter = moveXOfPoint(endPoint, EXTEND_DIAMETER / 2, linkDirection);
|
|
45
|
-
const arrowPoints = this.getArrowPoints(circleCenter, linkDirection);
|
|
46
|
-
const arrowLine = drawLinearPath(arrowPoints, {
|
|
47
|
-
stroke,
|
|
48
|
-
strokeWidth: 2
|
|
49
|
-
});
|
|
50
|
-
const extendLine = PlaitBoard.getRoughSVG(this.board).line(startPoint[0], startPoint[1], endPoint[0], endPoint[1], {
|
|
51
|
-
strokeWidth: branchWidth,
|
|
52
|
-
stroke
|
|
53
|
-
});
|
|
54
|
-
const badge = PlaitBoard.getRoughSVG(this.board).circle(circleCenter[0], circleCenter[1], EXTEND_DIAMETER, {
|
|
55
|
-
fill: stroke,
|
|
56
|
-
stroke,
|
|
57
|
-
fillStyle: 'solid'
|
|
58
|
-
});
|
|
59
|
-
const hideCircleG = PlaitBoard.getRoughSVG(this.board).circle(circleCenter[0], circleCenter[1], EXTEND_DIAMETER, {
|
|
60
|
-
fill: '#fff',
|
|
61
|
-
stroke,
|
|
62
|
-
strokeWidth: branchWidth > 3 ? 3 : branchWidth,
|
|
63
|
-
fillStyle: 'solid'
|
|
64
|
-
});
|
|
65
|
-
if (element.isCollapsed) {
|
|
66
|
-
let numberOffset = 0;
|
|
67
|
-
if (getChildrenCount(element) >= 10)
|
|
68
|
-
numberOffset = -2;
|
|
69
|
-
if (getChildrenCount(element) === 1)
|
|
70
|
-
numberOffset = 1;
|
|
71
|
-
const badgeText = createText(circleCenter[0] - 4 + numberOffset, circleCenter[1] + 4, stroke, `${getChildrenCount(element)}`);
|
|
72
|
-
badge.setAttribute('style', 'opacity: 0.15');
|
|
73
|
-
badgeText.setAttribute('style', 'font-size: 12px');
|
|
74
|
-
collapseG.appendChild(badge);
|
|
75
|
-
collapseG.appendChild(badgeText);
|
|
76
|
-
collapseG.appendChild(extendLine);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
collapseG.appendChild(hideCircleG);
|
|
80
|
-
collapseG.appendChild(arrowLine);
|
|
81
|
-
}
|
|
82
|
-
collapseG.appendChild(extendLine);
|
|
83
|
-
return collapseG;
|
|
84
|
-
}
|
|
85
|
-
afterDraw(element) {
|
|
86
|
-
if (!this.g) {
|
|
87
|
-
throw new Error(`can not find quick insert g`);
|
|
88
|
-
}
|
|
89
|
-
fromEvent(this.g, 'pointerdown')
|
|
90
|
-
.pipe(filter(() => !PlaitBoard.isPointer(this.board, PlaitPointerType.hand) || !!PlaitBoard.isReadonly(this.board)), take(1))
|
|
91
|
-
.subscribe((event) => {
|
|
92
|
-
event.preventDefault();
|
|
93
|
-
const isCollapsed = !element.isCollapsed;
|
|
94
|
-
const newElement = { isCollapsed };
|
|
95
|
-
const path = PlaitBoard.findPath(this.board, element);
|
|
96
|
-
Transforms.setNode(this.board, newElement, path);
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
getArrowPoints(circleCenter, linkDirection) {
|
|
100
|
-
let arrowTopPoint = moveXOfPoint(circleCenter, 2, linkDirection);
|
|
101
|
-
arrowTopPoint = moveYOfPoint(arrowTopPoint, 4, linkDirection);
|
|
102
|
-
const arrowMiddlePoint = moveXOfPoint(circleCenter, -2, linkDirection);
|
|
103
|
-
let arrowBottomPoint = moveXOfPoint(circleCenter, 2, linkDirection);
|
|
104
|
-
arrowBottomPoint = moveYOfPoint(arrowBottomPoint, -4, linkDirection);
|
|
105
|
-
return [arrowTopPoint, arrowMiddlePoint, arrowBottomPoint];
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jb2xsYXBzZS5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9nZW5lcmF0b3JzL25vZGUtY29sbGFwc2UuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQVMsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxXQUFXLEVBQVksU0FBUyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFBa0Isa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkksT0FBTyxFQUFFLG1CQUFtQixFQUFrQixp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Q3pDLE1BQU0sVUFBVSxHQUF5QixFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ3pELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN0RCxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxZQUFtQixFQUFFLGFBQThCO1FBQ3RFLElBQUksYUFBYSxHQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLGFBQWEsR0FBRyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM5RCxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDdkUsSUFBSSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNwRSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFckUsT0FBTyxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0UG9pbnRlclR5cGUsIFBvaW50LCBUcmFuc2Zvcm1zLCBjcmVhdGVHLCBjcmVhdGVUZXh0LCBkcmF3TGluZWFyUGF0aCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50LCBCYXNlRGF0YSwgUGxhaXRNaW5kLCBNaW5kRWxlbWVudFNoYXBlLCBMYXlvdXREaXJlY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgZ2V0U2hhcGVCeUVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9ub2RlLXN0eWxlL3NoYXBlJztcbmltcG9ydCB7IEVYVEVORF9PRkZTRVQsIEVYVEVORF9ESUFNRVRFUiB9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IE1pbmRMYXlvdXRUeXBlLCBpc0hvcml6b250YWxMYXlvdXQsIGlzSW5kZW50ZWRMYXlvdXQsIGlzVG9wTGF5b3V0IH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgTWluZFF1ZXJpZXMgfSBmcm9tICcuLi9xdWVyaWVzJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0Q2hpbGRyZW5Db3VudCB9IGZyb20gJy4uL3V0aWxzL21pbmQnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZ2V0QnJhbmNoQ29sb3JCeU1pbmRFbGVtZW50LCBnZXRCcmFuY2hXaWR0aEJ5TWluZEVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9ub2RlLXN0eWxlL2JyYW5jaCc7XG5pbXBvcnQgeyBnZXRMYXlvdXREaXJlY3Rpb24sIGdldFBvaW50QnlQbGFjZW1lbnQsIG1vdmVYT2ZQb2ludCwgbW92ZVlPZlBvaW50LCB0cmFuc2Zvcm1QbGFjZW1lbnQgfSBmcm9tICcuLi91dGlscy9wb2ludC1wbGFjZW1lbnQnO1xuaW1wb3J0IHsgSG9yaXpvbnRhbFBsYWNlbWVudCwgUG9pbnRQbGFjZW1lbnQsIFZlcnRpY2FsUGxhY2VtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5pbXBvcnQgeyBBZnRlckRyYXcsIEdlbmVyYXRvciB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgQ29sbGFwc2VHZW5lcmF0b3IgZXh0ZW5kcyBHZW5lcmF0b3I8TWluZEVsZW1lbnQ+IGltcGxlbWVudHMgQWZ0ZXJEcmF3IHtcbiAgICBjYW5EcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50PEJhc2VEYXRhPik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZWxlbWVudC5jaGlsZHJlbi5sZW5ndGggJiYgIVBsYWl0TWluZC5pc01pbmQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50PEJhc2VEYXRhPik6IFNWR0dFbGVtZW50IHtcbiAgICAgICAgY29uc3QgY29sbGFwc2VHID0gY3JlYXRlRygpO1xuICAgICAgICBjb2xsYXBzZUcuY2xhc3NMaXN0LmFkZCgnY29sbGFwc2UnKTtcbiAgICAgICAgY29uc3Qgbm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZSA9IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudCh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgY29uc3QgYnJhbmNoV2lkdGggPSBnZXRCcmFuY2hXaWR0aEJ5TWluZEVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGxheW91dCA9IE1pbmRRdWVyaWVzLmdldExheW91dEJ5RWxlbWVudChlbGVtZW50KSBhcyBNaW5kTGF5b3V0VHlwZTtcbiAgICAgICAgY29uc3QgaXNVbmRlcmxpbmVTaGFwZSA9IGdldFNoYXBlQnlFbGVtZW50KHRoaXMuYm9hcmQsIGVsZW1lbnQpID09PSBNaW5kRWxlbWVudFNoYXBlLnVuZGVybGluZTtcbiAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsID0gaXNIb3Jpem9udGFsTGF5b3V0KGxheW91dCk7XG4gICAgICAgIGNvbnN0IG5vZGVDbGllbnQgPSBnZXRSZWN0YW5nbGVCeU5vZGUobm9kZSk7XG4gICAgICAgIGxldCBsaW5rRGlyZWN0aW9uID0gZ2V0TGF5b3V0RGlyZWN0aW9uKG5vZGUsIGlzSG9yaXpvbnRhbCk7XG4gICAgICAgIGlmIChpc0luZGVudGVkTGF5b3V0KGxheW91dCkpIHtcbiAgICAgICAgICAgIGxpbmtEaXJlY3Rpb24gPSBpc1RvcExheW91dChsYXlvdXQpID8gTGF5b3V0RGlyZWN0aW9uLnRvcCA6IExheW91dERpcmVjdGlvbi5ib3R0b207XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LnJpZ2h0LCBWZXJ0aWNhbFBsYWNlbWVudC5taWRkbGVdO1xuXG4gICAgICAgIHRyYW5zZm9ybVBsYWNlbWVudChwbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgICAgIC8vIHVuZGVybGluZSBzaGFwZSBhbmQgaG9yaXpvbnRhbFxuICAgICAgICBpZiAoaXNIb3Jpem9udGFsICYmIGlzVW5kZXJsaW5lU2hhcGUgJiYgIWVsZW1lbnQuaXNSb290KSB7XG4gICAgICAgICAgICBwbGFjZW1lbnRbMV0gPSBWZXJ0aWNhbFBsYWNlbWVudC5ib3R0b207XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc3RhcnRQb2ludCA9IGdldFBvaW50QnlQbGFjZW1lbnQobm9kZUNsaWVudCwgcGxhY2VtZW50KTtcbiAgICAgICAgY29uc3QgZW5kUG9pbnQgPSBtb3ZlWE9mUG9pbnQoc3RhcnRQb2ludCwgRVhURU5EX09GRlNFVCwgbGlua0RpcmVjdGlvbik7XG4gICAgICAgIGNvbnN0IGNpcmNsZUNlbnRlciA9IG1vdmVYT2ZQb2ludChlbmRQb2ludCwgRVhURU5EX0RJQU1FVEVSIC8gMiwgbGlua0RpcmVjdGlvbik7XG5cbiAgICAgICAgY29uc3QgYXJyb3dQb2ludHMgPSB0aGlzLmdldEFycm93UG9pbnRzKGNpcmNsZUNlbnRlciwgbGlua0RpcmVjdGlvbik7XG5cbiAgICAgICAgY29uc3QgYXJyb3dMaW5lID0gZHJhd0xpbmVhclBhdGgoYXJyb3dQb2ludHMsIHtcbiAgICAgICAgICAgIHN0cm9rZSxcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAyXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGV4dGVuZExpbmUgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLmxpbmUoc3RhcnRQb2ludFswXSwgc3RhcnRQb2ludFsxXSwgZW5kUG9pbnRbMF0sIGVuZFBvaW50WzFdLCB7XG4gICAgICAgICAgICBzdHJva2VXaWR0aDogYnJhbmNoV2lkdGgsXG4gICAgICAgICAgICBzdHJva2VcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYmFkZ2UgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLmNpcmNsZShjaXJjbGVDZW50ZXJbMF0sIGNpcmNsZUNlbnRlclsxXSwgRVhURU5EX0RJQU1FVEVSLCB7XG4gICAgICAgICAgICBmaWxsOiBzdHJva2UsXG4gICAgICAgICAgICBzdHJva2UsXG4gICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgaGlkZUNpcmNsZUcgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLmNpcmNsZShjaXJjbGVDZW50ZXJbMF0sIGNpcmNsZUNlbnRlclsxXSwgRVhURU5EX0RJQU1FVEVSLCB7XG4gICAgICAgICAgICBmaWxsOiAnI2ZmZicsXG4gICAgICAgICAgICBzdHJva2UsXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogYnJhbmNoV2lkdGggPiAzID8gMyA6IGJyYW5jaFdpZHRoLFxuICAgICAgICAgICAgZmlsbFN0eWxlOiAnc29saWQnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChlbGVtZW50LmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICBsZXQgbnVtYmVyT2Zmc2V0ID0gMDtcbiAgICAgICAgICAgIGlmIChnZXRDaGlsZHJlbkNvdW50KGVsZW1lbnQpID49IDEwKSBudW1iZXJPZmZzZXQgPSAtMjtcbiAgICAgICAgICAgIGlmIChnZXRDaGlsZHJlbkNvdW50KGVsZW1lbnQpID09PSAxKSBudW1iZXJPZmZzZXQgPSAxO1xuXG4gICAgICAgICAgICBjb25zdCBiYWRnZVRleHQgPSBjcmVhdGVUZXh0KGNpcmNsZUNlbnRlclswXSAtIDQgKyBudW1iZXJPZmZzZXQsIGNpcmNsZUNlbnRlclsxXSArIDQsIHN0cm9rZSwgYCR7Z2V0Q2hpbGRyZW5Db3VudChlbGVtZW50KX1gKTtcbiAgICAgICAgICAgIGJhZGdlLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnb3BhY2l0eTogMC4xNScpO1xuICAgICAgICAgICAgYmFkZ2VUZXh0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZm9udC1zaXplOiAxMnB4Jyk7XG4gICAgICAgICAgICBjb2xsYXBzZUcuYXBwZW5kQ2hpbGQoYmFkZ2UpO1xuICAgICAgICAgICAgY29sbGFwc2VHLmFwcGVuZENoaWxkKGJhZGdlVGV4dCk7XG4gICAgICAgICAgICBjb2xsYXBzZUcuYXBwZW5kQ2hpbGQoZXh0ZW5kTGluZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb2xsYXBzZUcuYXBwZW5kQ2hpbGQoaGlkZUNpcmNsZUcpO1xuICAgICAgICAgICAgY29sbGFwc2VHLmFwcGVuZENoaWxkKGFycm93TGluZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb2xsYXBzZUcuYXBwZW5kQ2hpbGQoZXh0ZW5kTGluZSk7XG4gICAgICAgIHJldHVybiBjb2xsYXBzZUc7XG4gICAgfVxuXG4gICAgYWZ0ZXJEcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbiBub3QgZmluZCBxdWljayBpbnNlcnQgZ2ApO1xuICAgICAgICB9XG5cbiAgICAgICAgZnJvbUV2ZW50PFBvaW50ZXJFdmVudD4odGhpcy5nLCAncG9pbnRlcmRvd24nKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICFQbGFpdEJvYXJkLmlzUG9pbnRlcih0aGlzLmJvYXJkLCBQbGFpdFBvaW50ZXJUeXBlLmhhbmQpIHx8ICEhUGxhaXRCb2FyZC5pc1JlYWRvbmx5KHRoaXMuYm9hcmQpKSxcbiAgICAgICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0NvbGxhcHNlZCA9ICFlbGVtZW50LmlzQ29sbGFwc2VkO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0VsZW1lbnQ6IFBhcnRpYWw8TWluZEVsZW1lbnQ+ID0geyBpc0NvbGxhcHNlZCB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZSh0aGlzLmJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QXJyb3dQb2ludHMoY2lyY2xlQ2VudGVyOiBQb2ludCwgbGlua0RpcmVjdGlvbjogTGF5b3V0RGlyZWN0aW9uKSB7XG4gICAgICAgIGxldCBhcnJvd1RvcFBvaW50ID0gbW92ZVhPZlBvaW50KGNpcmNsZUNlbnRlciwgMiwgbGlua0RpcmVjdGlvbik7XG4gICAgICAgIGFycm93VG9wUG9pbnQgPSBtb3ZlWU9mUG9pbnQoYXJyb3dUb3BQb2ludCwgNCwgbGlua0RpcmVjdGlvbik7XG4gICAgICAgIGNvbnN0IGFycm93TWlkZGxlUG9pbnQgPSBtb3ZlWE9mUG9pbnQoY2lyY2xlQ2VudGVyLCAtMiwgbGlua0RpcmVjdGlvbik7XG4gICAgICAgIGxldCBhcnJvd0JvdHRvbVBvaW50ID0gbW92ZVhPZlBvaW50KGNpcmNsZUNlbnRlciwgMiwgbGlua0RpcmVjdGlvbik7XG4gICAgICAgIGFycm93Qm90dG9tUG9pbnQgPSBtb3ZlWU9mUG9pbnQoYXJyb3dCb3R0b21Qb2ludCwgLTQsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgICAgIHJldHVybiBbYXJyb3dUb3BQb2ludCwgYXJyb3dNaWRkbGVQb2ludCwgYXJyb3dCb3R0b21Qb2ludF07XG4gICAgfVxufVxuIl19
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { MindElement } from '../interfaces';
|
|
2
|
-
import { createForeignObject, createG } from '@plait/core';
|
|
3
|
-
import { getEmojiFontSize } from '../utils/space/emoji';
|
|
4
|
-
import { getEmojiForeignRectangle } from '../utils/position/emoji';
|
|
5
|
-
export const FOREIGN_OBJECT_EMOJI_CLASS_NAME = 'foreign-object-emoji';
|
|
6
|
-
class EmojiGenerator {
|
|
7
|
-
constructor(board) {
|
|
8
|
-
this.board = board;
|
|
9
|
-
this.emojiComponentRef = null;
|
|
10
|
-
}
|
|
11
|
-
draw(container, emoji, element) {
|
|
12
|
-
this.destroy();
|
|
13
|
-
const props = {
|
|
14
|
-
board: this.board,
|
|
15
|
-
emojiItem: emoji,
|
|
16
|
-
element,
|
|
17
|
-
fontSize: getEmojiFontSize(element)
|
|
18
|
-
};
|
|
19
|
-
this.emojiComponentRef = this.board.renderEmoji(container, props);
|
|
20
|
-
}
|
|
21
|
-
destroy() {
|
|
22
|
-
if (this.emojiComponentRef) {
|
|
23
|
-
this.emojiComponentRef.destroy();
|
|
24
|
-
this.emojiComponentRef = null;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
export class NodeEmojisGenerator {
|
|
29
|
-
static { this.key = 'node-emojis-generator'; }
|
|
30
|
-
constructor(board) {
|
|
31
|
-
this.board = board;
|
|
32
|
-
this.emojiGenerators = [];
|
|
33
|
-
}
|
|
34
|
-
drawEmojis(element) {
|
|
35
|
-
this.destroy();
|
|
36
|
-
if (MindElement.hasEmojis(element)) {
|
|
37
|
-
this.g = createG();
|
|
38
|
-
this.g.classList.add('emojis');
|
|
39
|
-
const foreignRectangle = getEmojiForeignRectangle(this.board, element);
|
|
40
|
-
const foreignObject = createForeignObject(foreignRectangle.x, foreignRectangle.y, foreignRectangle.width, foreignRectangle.height);
|
|
41
|
-
foreignObject.classList.add(FOREIGN_OBJECT_EMOJI_CLASS_NAME);
|
|
42
|
-
this.g.append(foreignObject);
|
|
43
|
-
const container = document.createElement('div');
|
|
44
|
-
container.classList.add('node-emojis-container');
|
|
45
|
-
foreignObject.append(container);
|
|
46
|
-
this.emojiGenerators = element.data.emojis.map(emojiItem => {
|
|
47
|
-
const drawer = new EmojiGenerator(this.board);
|
|
48
|
-
drawer.draw(container, emojiItem, element);
|
|
49
|
-
return drawer;
|
|
50
|
-
});
|
|
51
|
-
return this.g;
|
|
52
|
-
}
|
|
53
|
-
return undefined;
|
|
54
|
-
}
|
|
55
|
-
destroy() {
|
|
56
|
-
if (this.g) {
|
|
57
|
-
this.g.remove();
|
|
58
|
-
}
|
|
59
|
-
this.emojiGenerators.forEach(drawer => drawer.destroy());
|
|
60
|
-
this.emojiGenerators = [];
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1lbW9qaXMuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvZ2VuZXJhdG9ycy9ub2RlLWVtb2ppcy5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFjLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUluRSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxzQkFBc0IsQ0FBQztBQUV0RSxNQUFNLGNBQWM7SUFHaEIsWUFBb0IsS0FBdUM7UUFBdkMsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFGM0Qsc0JBQWlCLEdBQTZCLElBQUksQ0FBQztJQUVXLENBQUM7SUFFL0QsSUFBSSxDQUFDLFNBQXFDLEVBQUUsS0FBZ0IsRUFBRSxPQUErQjtRQUN6RixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixNQUFNLEtBQUssR0FBZTtZQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsT0FBTztZQUNQLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7U0FDdEMsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO2FBQ3JCLFFBQUcsR0FBRyx1QkFBdUIsQUFBMUIsQ0FBMkI7SUFNckMsWUFBb0IsS0FBcUI7UUFBckIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFKekMsb0JBQWUsR0FBcUIsRUFBRSxDQUFDO0lBSUssQ0FBQztJQUU3QyxVQUFVLENBQUMsT0FBb0I7UUFDM0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsTUFBTSxnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUNyQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQ2xCLGdCQUFnQixDQUFDLENBQUMsRUFDbEIsZ0JBQWdCLENBQUMsS0FBSyxFQUN0QixnQkFBZ0IsQ0FBQyxNQUFNLENBQzFCLENBQUM7WUFDRixhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNqRCxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBRSxJQUFJLENBQUMsS0FBcUQsQ0FBQyxDQUFDO2dCQUMvRixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzNDLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW1vamlEYXRhLCBFbW9qaUl0ZW0sIE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBjcmVhdGVGb3JlaWduT2JqZWN0LCBjcmVhdGVHIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0RW1vamlGb250U2l6ZSB9IGZyb20gJy4uL3V0aWxzL3NwYWNlL2Vtb2ppJztcbmltcG9ydCB7IGdldEVtb2ppRm9yZWlnblJlY3RhbmdsZSB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL2Vtb2ppJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuaW1wb3J0IHsgRW1vamlDb21wb25lbnRSZWYsIEVtb2ppUHJvcHMsIFBsYWl0TWluZEVtb2ppQm9hcmQgfSBmcm9tICcuLi9lbW9qaS93aXRoLWVtb2ppJztcblxuZXhwb3J0IGNvbnN0IEZPUkVJR05fT0JKRUNUX0VNT0pJX0NMQVNTX05BTUUgPSAnZm9yZWlnbi1vYmplY3QtZW1vamknO1xuXG5jbGFzcyBFbW9qaUdlbmVyYXRvciB7XG4gICAgZW1vamlDb21wb25lbnRSZWY6IEVtb2ppQ29tcG9uZW50UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJvYXJkOiBQbGFpdE1pbmRFbW9qaUJvYXJkICYgUGxhaXRCb2FyZCkge31cblxuICAgIGRyYXcoY29udGFpbmVyOiBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCwgZW1vamk6IEVtb2ppSXRlbSwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPikge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgY29uc3QgcHJvcHM6IEVtb2ppUHJvcHMgPSB7XG4gICAgICAgICAgICBib2FyZDogdGhpcy5ib2FyZCxcbiAgICAgICAgICAgIGVtb2ppSXRlbTogZW1vamksXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgZm9udFNpemU6IGdldEVtb2ppRm9udFNpemUoZWxlbWVudClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5lbW9qaUNvbXBvbmVudFJlZiA9IHRoaXMuYm9hcmQucmVuZGVyRW1vamkoY29udGFpbmVyLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZW1vamlDb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZW1vamlDb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5lbW9qaUNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb2RlRW1vamlzR2VuZXJhdG9yIHtcbiAgICBzdGF0aWMga2V5ID0gJ25vZGUtZW1vamlzLWdlbmVyYXRvcic7XG5cbiAgICBlbW9qaUdlbmVyYXRvcnM6IEVtb2ppR2VuZXJhdG9yW10gPSBbXTtcblxuICAgIGc/OiBTVkdHRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYm9hcmQ6IFBsYWl0TWluZEJvYXJkKSB7fVxuXG4gICAgZHJhd0Vtb2ppcyhlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0Vtb2ppcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5nID0gY3JlYXRlRygpO1xuICAgICAgICAgICAgdGhpcy5nLmNsYXNzTGlzdC5hZGQoJ2Vtb2ppcycpO1xuICAgICAgICAgICAgY29uc3QgZm9yZWlnblJlY3RhbmdsZSA9IGdldEVtb2ppRm9yZWlnblJlY3RhbmdsZSh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGZvcmVpZ25PYmplY3QgPSBjcmVhdGVGb3JlaWduT2JqZWN0KFxuICAgICAgICAgICAgICAgIGZvcmVpZ25SZWN0YW5nbGUueCxcbiAgICAgICAgICAgICAgICBmb3JlaWduUmVjdGFuZ2xlLnksXG4gICAgICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgICAgICBmb3JlaWduUmVjdGFuZ2xlLmhlaWdodFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGZvcmVpZ25PYmplY3QuY2xhc3NMaXN0LmFkZChGT1JFSUdOX09CSkVDVF9FTU9KSV9DTEFTU19OQU1FKTtcbiAgICAgICAgICAgIHRoaXMuZy5hcHBlbmQoZm9yZWlnbk9iamVjdCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdub2RlLWVtb2ppcy1jb250YWluZXInKTtcbiAgICAgICAgICAgIGZvcmVpZ25PYmplY3QuYXBwZW5kKGNvbnRhaW5lcik7XG4gICAgICAgICAgICB0aGlzLmVtb2ppR2VuZXJhdG9ycyA9IGVsZW1lbnQuZGF0YS5lbW9qaXMubWFwKGVtb2ppSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZHJhd2VyID0gbmV3IEVtb2ppR2VuZXJhdG9yKCh0aGlzLmJvYXJkIGFzIHVua25vd24pIGFzIFBsYWl0Qm9hcmQgJiBQbGFpdE1pbmRFbW9qaUJvYXJkKTtcbiAgICAgICAgICAgICAgICBkcmF3ZXIuZHJhdyhjb250YWluZXIsIGVtb2ppSXRlbSwgZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRyYXdlcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmcpIHtcbiAgICAgICAgICAgIHRoaXMuZy5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVtb2ppR2VuZXJhdG9ycy5mb3JFYWNoKGRyYXdlciA9PiBkcmF3ZXIuZGVzdHJveSgpKTtcbiAgICAgICAgdGhpcy5lbW9qaUdlbmVyYXRvcnMgPSBbXTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, createG } from '@plait/core';
|
|
2
|
-
import { MindElement, PlaitMind, MindElementShape, LayoutDirection } from '../interfaces';
|
|
3
|
-
import { getRectangleByNode } from '../utils/position/node';
|
|
4
|
-
import { getShapeByElement } from '../utils/node-style/shape';
|
|
5
|
-
import { EXTEND_DIAMETER, QUICK_INSERT_CIRCLE_COLOR, QUICK_INSERT_INNER_CROSS_COLOR } from '../constants/default';
|
|
6
|
-
import { isHorizontalLayout, isIndentedLayout, isTopLayout } from '@plait/layouts';
|
|
7
|
-
import { MindQueries } from '../queries';
|
|
8
|
-
import { fromEvent } from 'rxjs';
|
|
9
|
-
import { insertMindElement } from '../utils/mind';
|
|
10
|
-
import { take } from 'rxjs/operators';
|
|
11
|
-
import { findNewChildNodePath } from '../utils/path';
|
|
12
|
-
import { getBranchColorByMindElement, getBranchWidthByMindElement, getNextBranchColor } from '../utils/node-style/branch';
|
|
13
|
-
import { getLayoutDirection, getPointByPlacement, moveXOfPoint, transformPlacement } from '../utils/point-placement';
|
|
14
|
-
import { HorizontalPlacement, VerticalPlacement } from '../interfaces/types';
|
|
15
|
-
import { Generator } from '@plait/common';
|
|
16
|
-
export class NodePlusGenerator extends Generator {
|
|
17
|
-
canDraw(element) {
|
|
18
|
-
if (PlaitBoard.isReadonly(this.board) || element?.isCollapsed) {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
draw(element) {
|
|
24
|
-
const plusG = createG();
|
|
25
|
-
plusG.classList.add('plus');
|
|
26
|
-
const node = MindElement.getNode(element);
|
|
27
|
-
const layout = MindQueries.getLayoutByElement(element);
|
|
28
|
-
const isHorizontal = isHorizontalLayout(layout);
|
|
29
|
-
let linkDirection = getLayoutDirection(node, isHorizontal);
|
|
30
|
-
if (isIndentedLayout(layout)) {
|
|
31
|
-
linkDirection = isTopLayout(layout) ? LayoutDirection.top : LayoutDirection.bottom;
|
|
32
|
-
}
|
|
33
|
-
const isUnderlineShape = getShapeByElement(this.board, element) === MindElementShape.underline;
|
|
34
|
-
const nodeClient = getRectangleByNode(node);
|
|
35
|
-
const branchWidth = getBranchWidthByMindElement(this.board, element);
|
|
36
|
-
const branchColor = PlaitMind.isMind(element)
|
|
37
|
-
? getNextBranchColor(this.board, element)
|
|
38
|
-
: getBranchColorByMindElement(this.board, element);
|
|
39
|
-
let distance = 8;
|
|
40
|
-
let placement = [HorizontalPlacement.right, VerticalPlacement.middle];
|
|
41
|
-
transformPlacement(placement, linkDirection);
|
|
42
|
-
// underline shape and horizontal
|
|
43
|
-
if (isHorizontal && isUnderlineShape && !element.isRoot) {
|
|
44
|
-
placement[1] = VerticalPlacement.bottom;
|
|
45
|
-
}
|
|
46
|
-
let beginPoint = getPointByPlacement(nodeClient, placement);
|
|
47
|
-
if (element.children.length > 0 && !element.isRoot) {
|
|
48
|
-
beginPoint = moveXOfPoint(beginPoint, EXTEND_DIAMETER + 8, linkDirection);
|
|
49
|
-
distance = 5;
|
|
50
|
-
}
|
|
51
|
-
const endPoint = moveXOfPoint(beginPoint, distance, linkDirection);
|
|
52
|
-
const circleCenter = moveXOfPoint(endPoint, 8, linkDirection);
|
|
53
|
-
const line = PlaitBoard.getRoughSVG(this.board).line(beginPoint[0], beginPoint[1], endPoint[0], endPoint[1], {
|
|
54
|
-
stroke: branchColor,
|
|
55
|
-
strokeWidth: branchWidth
|
|
56
|
-
});
|
|
57
|
-
const circle = PlaitBoard.getRoughSVG(this.board).circle(circleCenter[0], circleCenter[1], EXTEND_DIAMETER, {
|
|
58
|
-
fill: QUICK_INSERT_CIRCLE_COLOR,
|
|
59
|
-
stroke: QUICK_INSERT_CIRCLE_COLOR,
|
|
60
|
-
fillStyle: 'solid'
|
|
61
|
-
});
|
|
62
|
-
const HLineBeginPoint = [circleCenter[0] - 5, circleCenter[1]];
|
|
63
|
-
const HLineEndPoint = [circleCenter[0] + 5, circleCenter[1]];
|
|
64
|
-
const VLineBeginPoint = [circleCenter[0], circleCenter[1] - 5];
|
|
65
|
-
const VLineEndPoint = [circleCenter[0], circleCenter[1] + 5];
|
|
66
|
-
const innerCrossHLine = PlaitBoard.getRoughSVG(this.board).line(HLineBeginPoint[0], HLineBeginPoint[1], HLineEndPoint[0], HLineEndPoint[1], {
|
|
67
|
-
stroke: QUICK_INSERT_INNER_CROSS_COLOR,
|
|
68
|
-
strokeWidth: 2
|
|
69
|
-
});
|
|
70
|
-
const innerCrossVLine = PlaitBoard.getRoughSVG(this.board).line(VLineBeginPoint[0], VLineBeginPoint[1], VLineEndPoint[0], VLineEndPoint[1], {
|
|
71
|
-
stroke: QUICK_INSERT_INNER_CROSS_COLOR,
|
|
72
|
-
strokeWidth: 2
|
|
73
|
-
});
|
|
74
|
-
plusG.appendChild(line);
|
|
75
|
-
plusG.appendChild(circle);
|
|
76
|
-
plusG.appendChild(innerCrossHLine);
|
|
77
|
-
plusG.appendChild(innerCrossVLine);
|
|
78
|
-
return plusG;
|
|
79
|
-
}
|
|
80
|
-
afterDraw(element) {
|
|
81
|
-
if (!this.g) {
|
|
82
|
-
throw new Error(`can not find quick insert g`);
|
|
83
|
-
}
|
|
84
|
-
fromEvent(this.g, 'pointerdown')
|
|
85
|
-
.pipe(take(1))
|
|
86
|
-
.subscribe(e => {
|
|
87
|
-
e.preventDefault();
|
|
88
|
-
});
|
|
89
|
-
fromEvent(this.g, 'pointerup')
|
|
90
|
-
.pipe(take(1))
|
|
91
|
-
.subscribe((event) => {
|
|
92
|
-
// wait the event period end of pointerup to otherwise the pointerup will cause new element lose selected state
|
|
93
|
-
setTimeout(() => {
|
|
94
|
-
const path = findNewChildNodePath(this.board, element);
|
|
95
|
-
insertMindElement(this.board, element, path);
|
|
96
|
-
}, 0);
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1wbHVzLmdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2dlbmVyYXRvcnMvbm9kZS1wbHVzLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFxQixPQUFPLEVBQTZCLE1BQU0sYUFBYSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxXQUFXLEVBQVksU0FBUyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEgsT0FBTyxFQUFrQixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDJCQUEyQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxTQUFzQjtJQUN6RCxPQUFPLENBQUMsT0FBOEI7UUFDbEMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDNUQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBOEI7UUFDL0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFtQixDQUFDO1FBQ3pFLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksYUFBYSxHQUFHLGtCQUFrQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMzRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsYUFBYSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztRQUN2RixDQUFDO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztRQUMvRixNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxNQUFNLFdBQVcsR0FBRywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN6QyxDQUFDLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFFakIsSUFBSSxTQUFTLEdBQW1CLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRGLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUU3QyxpQ0FBaUM7UUFDakMsSUFBSSxZQUFZLElBQUksZ0JBQWdCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUM1QyxDQUFDO1FBRUQsSUFBSSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTVELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pELFVBQVUsR0FBRyxZQUFZLENBQUMsVUFBVSxFQUFFLGVBQWUsR0FBRyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDMUUsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbkUsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUQsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6RyxNQUFNLEVBQUUsV0FBVztZQUNuQixXQUFXLEVBQUUsV0FBVztTQUMzQixDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUU7WUFDeEcsSUFBSSxFQUFFLHlCQUF5QjtZQUMvQixNQUFNLEVBQUUseUJBQXlCO1lBQ2pDLFNBQVMsRUFBRSxPQUFPO1NBQ3JCLENBQUMsQ0FBQztRQUVILE1BQU0sZUFBZSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLGFBQWEsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxlQUFlLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sYUFBYSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUU3RCxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQzNELGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFDbEIsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUNsQixhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQ2hCLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFDaEI7WUFDSSxNQUFNLEVBQUUsOEJBQThCO1lBQ3RDLFdBQVcsRUFBRSxDQUFDO1NBQ2pCLENBQ0osQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDM0QsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUNsQixlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQ2xCLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFDaEIsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUNoQjtZQUNJLE1BQU0sRUFBRSw4QkFBOEI7WUFDdEMsV0FBVyxFQUFFLENBQUM7U0FDakIsQ0FDSixDQUFDO1FBQ0YsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLEtBQUssQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQW9CO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELFNBQVMsQ0FBYSxJQUFJLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQzthQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsU0FBUyxDQUFlLElBQUksQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDO2FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxLQUFtQixFQUFFLEVBQUU7WUFDL0IsK0dBQStHO1lBQy9HLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osTUFBTSxJQUFJLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDdkQsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQXVCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25FLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRPcHRpb25zQm9hcmQsIGNyZWF0ZUcsIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24gfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCwgQmFzZURhdGEsIFBsYWl0TWluZCwgTWluZEVsZW1lbnRTaGFwZSwgTGF5b3V0RGlyZWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9ub2RlJztcbmltcG9ydCB7IGdldFNoYXBlQnlFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS1zdHlsZS9zaGFwZSc7XG5pbXBvcnQgeyBFWFRFTkRfRElBTUVURVIsIFFVSUNLX0lOU0VSVF9DSVJDTEVfQ09MT1IsIFFVSUNLX0lOU0VSVF9JTk5FUl9DUk9TU19DT0xPUiB9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IE1pbmRMYXlvdXRUeXBlLCBpc0hvcml6b250YWxMYXlvdXQsIGlzSW5kZW50ZWRMYXlvdXQsIGlzVG9wTGF5b3V0IH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgTWluZFF1ZXJpZXMgfSBmcm9tICcuLi9xdWVyaWVzJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaW5zZXJ0TWluZEVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9taW5kJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBmaW5kTmV3Q2hpbGROb2RlUGF0aCB9IGZyb20gJy4uL3V0aWxzL3BhdGgnO1xuaW1wb3J0IHsgZ2V0QnJhbmNoQ29sb3JCeU1pbmRFbGVtZW50LCBnZXRCcmFuY2hXaWR0aEJ5TWluZEVsZW1lbnQsIGdldE5leHRCcmFuY2hDb2xvciB9IGZyb20gJy4uL3V0aWxzL25vZGUtc3R5bGUvYnJhbmNoJztcbmltcG9ydCB7IGdldExheW91dERpcmVjdGlvbiwgZ2V0UG9pbnRCeVBsYWNlbWVudCwgbW92ZVhPZlBvaW50LCB0cmFuc2Zvcm1QbGFjZW1lbnQgfSBmcm9tICcuLi91dGlscy9wb2ludC1wbGFjZW1lbnQnO1xuaW1wb3J0IHsgSG9yaXpvbnRhbFBsYWNlbWVudCwgUG9pbnRQbGFjZW1lbnQsIFZlcnRpY2FsUGxhY2VtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5pbXBvcnQgeyBBZnRlckRyYXcsIEdlbmVyYXRvciB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5cbmV4cG9ydCBjbGFzcyBOb2RlUGx1c0dlbmVyYXRvciBleHRlbmRzIEdlbmVyYXRvcjxNaW5kRWxlbWVudD4gaW1wbGVtZW50cyBBZnRlckRyYXcge1xuICAgIGNhbkRyYXcoZWxlbWVudDogTWluZEVsZW1lbnQ8QmFzZURhdGE+KTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChQbGFpdEJvYXJkLmlzUmVhZG9ubHkodGhpcy5ib2FyZCkgfHwgZWxlbWVudD8uaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50PEJhc2VEYXRhPik6IFNWR0dFbGVtZW50IHtcbiAgICAgICAgY29uc3QgcGx1c0cgPSBjcmVhdGVHKCk7XG4gICAgICAgIHBsdXNHLmNsYXNzTGlzdC5hZGQoJ3BsdXMnKTtcbiAgICAgICAgY29uc3Qgbm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGxheW91dCA9IE1pbmRRdWVyaWVzLmdldExheW91dEJ5RWxlbWVudChlbGVtZW50KSBhcyBNaW5kTGF5b3V0VHlwZTtcbiAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsID0gaXNIb3Jpem9udGFsTGF5b3V0KGxheW91dCk7XG4gICAgICAgIGxldCBsaW5rRGlyZWN0aW9uID0gZ2V0TGF5b3V0RGlyZWN0aW9uKG5vZGUsIGlzSG9yaXpvbnRhbCk7XG4gICAgICAgIGlmIChpc0luZGVudGVkTGF5b3V0KGxheW91dCkpIHtcbiAgICAgICAgICAgIGxpbmtEaXJlY3Rpb24gPSBpc1RvcExheW91dChsYXlvdXQpID8gTGF5b3V0RGlyZWN0aW9uLnRvcCA6IExheW91dERpcmVjdGlvbi5ib3R0b207XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNVbmRlcmxpbmVTaGFwZSA9IGdldFNoYXBlQnlFbGVtZW50KHRoaXMuYm9hcmQsIGVsZW1lbnQpID09PSBNaW5kRWxlbWVudFNoYXBlLnVuZGVybGluZTtcbiAgICAgICAgY29uc3Qgbm9kZUNsaWVudCA9IGdldFJlY3RhbmdsZUJ5Tm9kZShub2RlKTtcbiAgICAgICAgY29uc3QgYnJhbmNoV2lkdGggPSBnZXRCcmFuY2hXaWR0aEJ5TWluZEVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGJyYW5jaENvbG9yID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KVxuICAgICAgICAgICAgPyBnZXROZXh0QnJhbmNoQ29sb3IodGhpcy5ib2FyZCwgZWxlbWVudClcbiAgICAgICAgICAgIDogZ2V0QnJhbmNoQ29sb3JCeU1pbmRFbGVtZW50KHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBsZXQgZGlzdGFuY2UgPSA4O1xuXG4gICAgICAgIGxldCBwbGFjZW1lbnQ6IFBvaW50UGxhY2VtZW50ID0gW0hvcml6b250YWxQbGFjZW1lbnQucmlnaHQsIFZlcnRpY2FsUGxhY2VtZW50Lm1pZGRsZV07XG5cbiAgICAgICAgdHJhbnNmb3JtUGxhY2VtZW50KHBsYWNlbWVudCwgbGlua0RpcmVjdGlvbik7XG5cbiAgICAgICAgLy8gdW5kZXJsaW5lIHNoYXBlIGFuZCBob3Jpem9udGFsXG4gICAgICAgIGlmIChpc0hvcml6b250YWwgJiYgaXNVbmRlcmxpbmVTaGFwZSAmJiAhZWxlbWVudC5pc1Jvb3QpIHtcbiAgICAgICAgICAgIHBsYWNlbWVudFsxXSA9IFZlcnRpY2FsUGxhY2VtZW50LmJvdHRvbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBiZWdpblBvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChub2RlQ2xpZW50LCBwbGFjZW1lbnQpO1xuXG4gICAgICAgIGlmIChlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDAgJiYgIWVsZW1lbnQuaXNSb290KSB7XG4gICAgICAgICAgICBiZWdpblBvaW50ID0gbW92ZVhPZlBvaW50KGJlZ2luUG9pbnQsIEVYVEVORF9ESUFNRVRFUiArIDgsIGxpbmtEaXJlY3Rpb24pO1xuICAgICAgICAgICAgZGlzdGFuY2UgPSA1O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW5kUG9pbnQgPSBtb3ZlWE9mUG9pbnQoYmVnaW5Qb2ludCwgZGlzdGFuY2UsIGxpbmtEaXJlY3Rpb24pO1xuICAgICAgICBjb25zdCBjaXJjbGVDZW50ZXIgPSBtb3ZlWE9mUG9pbnQoZW5kUG9pbnQsIDgsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgICAgIGNvbnN0IGxpbmUgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLmxpbmUoYmVnaW5Qb2ludFswXSwgYmVnaW5Qb2ludFsxXSwgZW5kUG9pbnRbMF0sIGVuZFBvaW50WzFdLCB7XG4gICAgICAgICAgICBzdHJva2U6IGJyYW5jaENvbG9yLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IGJyYW5jaFdpZHRoXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGNpcmNsZSA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcodGhpcy5ib2FyZCkuY2lyY2xlKGNpcmNsZUNlbnRlclswXSwgY2lyY2xlQ2VudGVyWzFdLCBFWFRFTkRfRElBTUVURVIsIHtcbiAgICAgICAgICAgIGZpbGw6IFFVSUNLX0lOU0VSVF9DSVJDTEVfQ09MT1IsXG4gICAgICAgICAgICBzdHJva2U6IFFVSUNLX0lOU0VSVF9DSVJDTEVfQ09MT1IsXG4gICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgSExpbmVCZWdpblBvaW50ID0gW2NpcmNsZUNlbnRlclswXSAtIDUsIGNpcmNsZUNlbnRlclsxXV07XG4gICAgICAgIGNvbnN0IEhMaW5lRW5kUG9pbnQgPSBbY2lyY2xlQ2VudGVyWzBdICsgNSwgY2lyY2xlQ2VudGVyWzFdXTtcbiAgICAgICAgY29uc3QgVkxpbmVCZWdpblBvaW50ID0gW2NpcmNsZUNlbnRlclswXSwgY2lyY2xlQ2VudGVyWzFdIC0gNV07XG4gICAgICAgIGNvbnN0IFZMaW5lRW5kUG9pbnQgPSBbY2lyY2xlQ2VudGVyWzBdLCBjaXJjbGVDZW50ZXJbMV0gKyA1XTtcblxuICAgICAgICBjb25zdCBpbm5lckNyb3NzSExpbmUgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLmxpbmUoXG4gICAgICAgICAgICBITGluZUJlZ2luUG9pbnRbMF0sXG4gICAgICAgICAgICBITGluZUJlZ2luUG9pbnRbMV0sXG4gICAgICAgICAgICBITGluZUVuZFBvaW50WzBdLFxuICAgICAgICAgICAgSExpbmVFbmRQb2ludFsxXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6IFFVSUNLX0lOU0VSVF9JTk5FUl9DUk9TU19DT0xPUixcbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogMlxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGlubmVyQ3Jvc3NWTGluZSA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcodGhpcy5ib2FyZCkubGluZShcbiAgICAgICAgICAgIFZMaW5lQmVnaW5Qb2ludFswXSxcbiAgICAgICAgICAgIFZMaW5lQmVnaW5Qb2ludFsxXSxcbiAgICAgICAgICAgIFZMaW5lRW5kUG9pbnRbMF0sXG4gICAgICAgICAgICBWTGluZUVuZFBvaW50WzFdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogUVVJQ0tfSU5TRVJUX0lOTkVSX0NST1NTX0NPTE9SLFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAyXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHBsdXNHLmFwcGVuZENoaWxkKGxpbmUpO1xuICAgICAgICBwbHVzRy5hcHBlbmRDaGlsZChjaXJjbGUpO1xuICAgICAgICBwbHVzRy5hcHBlbmRDaGlsZChpbm5lckNyb3NzSExpbmUpO1xuICAgICAgICBwbHVzRy5hcHBlbmRDaGlsZChpbm5lckNyb3NzVkxpbmUpO1xuICAgICAgICByZXR1cm4gcGx1c0c7XG4gICAgfVxuXG4gICAgYWZ0ZXJEcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbiBub3QgZmluZCBxdWljayBpbnNlcnQgZ2ApO1xuICAgICAgICB9XG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmcsICdwb2ludGVyZG93bicpXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgZnJvbUV2ZW50PFBvaW50ZXJFdmVudD4odGhpcy5nLCAncG9pbnRlcnVwJylcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gd2FpdCB0aGUgZXZlbnQgcGVyaW9kIGVuZCBvZiBwb2ludGVydXAgdG8gb3RoZXJ3aXNlIHRoZSBwb2ludGVydXAgd2lsbCBjYXVzZSBuZXcgZWxlbWVudCBsb3NlIHNlbGVjdGVkIHN0YXRlXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBmaW5kTmV3Q2hpbGROb2RlUGF0aCh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0TWluZEVsZW1lbnQodGhpcy5ib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudCwgcGF0aCk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Generator } from '@plait/common';
|
|
2
|
-
import { MindElementShape } from '../interfaces/element';
|
|
3
|
-
import { getRectangleByNode } from '../utils/position/node';
|
|
4
|
-
import { drawRoundRectangleByElement } from '../utils/draw/node-shape';
|
|
5
|
-
import { getShapeByElement } from '../utils/node-style/shape';
|
|
6
|
-
export class NodeShapeGenerator extends Generator {
|
|
7
|
-
constructor(board) {
|
|
8
|
-
super(board, { prepend: true });
|
|
9
|
-
}
|
|
10
|
-
canDraw(element, data) {
|
|
11
|
-
const shape = getShapeByElement(this.board, element);
|
|
12
|
-
if (shape === MindElementShape.roundRectangle) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
draw(element, data) {
|
|
18
|
-
const rectangle = getRectangleByNode(data.node);
|
|
19
|
-
return drawRoundRectangleByElement(this.board, rectangle, data.node.origin);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zaGFwZS5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9nZW5lcmF0b3JzL25vZGUtc2hhcGUuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFlLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPOUQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFNBQWlDO0lBQ3JFLFlBQVksS0FBaUI7UUFDekIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBb0IsRUFBRSxJQUFlO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsSUFBSSxLQUFLLEtBQUssZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBb0IsRUFBRSxJQUFlO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxPQUFPLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VuZXJhdG9yIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCwgTWluZEVsZW1lbnRTaGFwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9ub2RlJztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IGRyYXdSb3VuZFJlY3RhbmdsZUJ5RWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2RyYXcvbm9kZS1zaGFwZSc7XG5pbXBvcnQgeyBnZXRTaGFwZUJ5RWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL25vZGUtc3R5bGUvc2hhcGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBTaGFwZURhdGEge1xuICAgIG5vZGU6IE1pbmROb2RlO1xufVxuXG5leHBvcnQgY2xhc3MgTm9kZVNoYXBlR2VuZXJhdG9yIGV4dGVuZHMgR2VuZXJhdG9yPE1pbmRFbGVtZW50LCBTaGFwZURhdGE+IHtcbiAgICBjb25zdHJ1Y3Rvcihib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICBzdXBlcihib2FyZCwgeyBwcmVwZW5kOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogTWluZEVsZW1lbnQsIGRhdGE6IFNoYXBlRGF0YSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBzaGFwZSA9IGdldFNoYXBlQnlFbGVtZW50KHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBpZiAoc2hhcGUgPT09IE1pbmRFbGVtZW50U2hhcGUucm91bmRSZWN0YW5nbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBkYXRhOiBTaGFwZURhdGEpIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKGRhdGEubm9kZSk7XG4gICAgICAgIHJldHVybiBkcmF3Um91bmRSZWN0YW5nbGVCeUVsZW1lbnQodGhpcy5ib2FyZCwgcmVjdGFuZ2xlLCBkYXRhLm5vZGUub3JpZ2luKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbkltYWdlSXRlbSwgUGFyYWdyYXBoRWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVtb2ppSXRlbSB7XG4gICAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEYXRhIHtcbiAgICB0b3BpYzogUGFyYWdyYXBoRWxlbWVudDtcbiAgICBlbW9qaXM/OiBFbW9qaUl0ZW1bXTtcbiAgICBpbWFnZT86IENvbW1vbkltYWdlSXRlbTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbW9qaURhdGEgZXh0ZW5kcyBCYXNlRGF0YSB7XG4gICAgZW1vamlzOiBFbW9qaUl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZURhdGEgZXh0ZW5kcyBCYXNlRGF0YSB7XG4gICAgaW1hZ2U6IENvbW1vbkltYWdlSXRlbTtcbn1cbiJdfQ==
|