ngx-vflow 0.13.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/vflow/components/background/background.component.mjs +7 -16
- package/esm2022/lib/vflow/components/default-node/default-node.component.mjs +18 -0
- package/esm2022/lib/vflow/components/defs/defs.component.mjs +1 -1
- package/esm2022/lib/vflow/components/node/node.component.mjs +8 -7
- package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +11 -7
- package/esm2022/lib/vflow/math/edge-path/bezier-path.mjs +14 -17
- package/esm2022/lib/vflow/math/edge-path/straigh-path.mjs +2 -6
- package/esm2022/lib/vflow/models/handle.model.mjs +3 -2
- package/esm2022/lib/vflow/models/minimap.model.mjs +7 -0
- package/esm2022/lib/vflow/public-components/minimap/minimap.component.mjs +119 -0
- package/esm2022/lib/vflow/services/flow-entities.service.mjs +6 -5
- package/esm2022/lib/vflow/services/flow-settings.service.mjs +2 -1
- package/esm2022/lib/vflow/utils/transform-background.mjs +6 -0
- package/esm2022/lib/vflow/vflow.module.mjs +15 -7
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ngx-vflow.mjs +189 -56
- package/fesm2022/ngx-vflow.mjs.map +1 -1
- package/lib/vflow/components/background/background.component.d.ts +3 -6
- package/lib/vflow/components/default-node/default-node.component.d.ts +6 -0
- package/lib/vflow/components/vflow/vflow.component.d.ts +2 -1
- package/lib/vflow/models/handle.model.d.ts +1 -0
- package/lib/vflow/models/minimap.model.d.ts +4 -0
- package/lib/vflow/public-components/minimap/minimap.component.d.ts +49 -0
- package/lib/vflow/services/flow-entities.service.d.ts +7 -5
- package/lib/vflow/services/flow-settings.service.d.ts +2 -0
- package/lib/vflow/utils/transform-background.d.ts +2 -0
- package/lib/vflow/vflow.module.d.ts +21 -19
- package/package.json +1 -3
- package/public-api.d.ts +1 -0
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import { path as d3Path } from 'd3-path';
|
|
2
1
|
import { getPointOnLineByRatio } from '../point-on-line-by-ratio';
|
|
3
2
|
export function bezierPath(source, target, sourcePosition, targetPosition, usingPoints = [false, false, false]) {
|
|
4
|
-
const path = d3Path();
|
|
5
|
-
path.moveTo(source.x, source.y);
|
|
6
3
|
const distanceVector = { x: source.x - target.x, y: source.y - target.y };
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
path.
|
|
10
|
-
return getPathData(path, source, target,
|
|
4
|
+
const sourceControl = calcControlPoint(source, sourcePosition, distanceVector);
|
|
5
|
+
const targetControl = calcControlPoint(target, targetPosition, distanceVector);
|
|
6
|
+
const path = `M${source.x},${source.y} C${sourceControl.x},${sourceControl.y} ${targetControl.x},${targetControl.y} ${target.x},${target.y}`;
|
|
7
|
+
return getPathData(path, source, target, sourceControl, targetControl, usingPoints);
|
|
11
8
|
}
|
|
12
9
|
/**
|
|
13
10
|
* Calculate control point based on provided point
|
|
@@ -47,20 +44,20 @@ function calcControlPoint(point, pointPosition, distanceVector) {
|
|
|
47
44
|
y: point.y - factorPoint.y * controlOffset,
|
|
48
45
|
};
|
|
49
46
|
}
|
|
50
|
-
function getPathData(path, source, target,
|
|
47
|
+
function getPathData(path, source, target, sourceControl, targetControl, usingPoints) {
|
|
51
48
|
const [start, center, end] = usingPoints;
|
|
52
49
|
const nullPoint = { x: 0, y: 0 };
|
|
53
50
|
return {
|
|
54
|
-
path
|
|
51
|
+
path,
|
|
55
52
|
points: {
|
|
56
53
|
start: start
|
|
57
|
-
? getPointOnBezier(source, target,
|
|
54
|
+
? getPointOnBezier(source, target, sourceControl, targetControl, 0.1)
|
|
58
55
|
: nullPoint,
|
|
59
56
|
center: center
|
|
60
|
-
? getPointOnBezier(source, target,
|
|
57
|
+
? getPointOnBezier(source, target, sourceControl, targetControl, 0.5)
|
|
61
58
|
: nullPoint,
|
|
62
59
|
end: end
|
|
63
|
-
? getPointOnBezier(source, target,
|
|
60
|
+
? getPointOnBezier(source, target, sourceControl, targetControl, 0.9)
|
|
64
61
|
: nullPoint,
|
|
65
62
|
},
|
|
66
63
|
};
|
|
@@ -68,10 +65,10 @@ function getPathData(path, source, target, firstControl, secondControl, usingPoi
|
|
|
68
65
|
/**
|
|
69
66
|
* Get point on bezier curve by ratio
|
|
70
67
|
*/
|
|
71
|
-
function getPointOnBezier(sourcePoint, targetPoint,
|
|
72
|
-
const fromSourceToFirstControl = getPointOnLineByRatio(sourcePoint,
|
|
73
|
-
const fromFirstControlToSecond = getPointOnLineByRatio(
|
|
74
|
-
const fromSecondControlToTarget = getPointOnLineByRatio(
|
|
68
|
+
function getPointOnBezier(sourcePoint, targetPoint, sourceControl, targetControl, ratio) {
|
|
69
|
+
const fromSourceToFirstControl = getPointOnLineByRatio(sourcePoint, sourceControl, ratio);
|
|
70
|
+
const fromFirstControlToSecond = getPointOnLineByRatio(sourceControl, targetControl, ratio);
|
|
71
|
+
const fromSecondControlToTarget = getPointOnLineByRatio(targetControl, targetPoint, ratio);
|
|
75
72
|
return getPointOnLineByRatio(getPointOnLineByRatio(fromSourceToFirstControl, fromFirstControlToSecond, ratio), getPointOnLineByRatio(fromFirstControlToSecond, fromSecondControlToTarget, ratio), ratio);
|
|
76
73
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV6aWVyLXBhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvbWF0aC9lZGdlLXBhdGgvYmV6aWVyLXBhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbEUsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsTUFBYSxFQUNiLE1BQWEsRUFDYixjQUF3QixFQUN4QixjQUF3QixFQUN4QixjQUEyQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0lBRWhELE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFMUUsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMvRSxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRS9FLE1BQU0sSUFBSSxHQUNSLElBQUksTUFBTSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxLQUFLLGFBQWEsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFFakksT0FBTyxXQUFXLENBQ2hCLElBQUksRUFDSixNQUFNLEVBQ04sTUFBTSxFQUNOLGFBQWEsRUFDYixhQUFhLEVBQ2IsV0FBVyxDQUNaLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztH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QUFhLEVBQ2IsS0FBSyxDQUNOLENBQUM7SUFDRixNQUFNLHlCQUF5QixHQUFVLHFCQUFxQixDQUM1RCxhQUFhLEVBQ2IsV0FBVyxFQUNYLEtBQUssQ0FDTixDQUFDO0lBRUYsT0FBTyxxQkFBcUIsQ0FDMUIscUJBQXFCLENBQUMsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLEVBQ2hGLHFCQUFxQixDQUFDLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxFQUNqRixLQUFLLENBQ04sQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXRoRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGF0aC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcG9pbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVzaW5nUG9pbnRzIH0gZnJvbSAnLi4vLi4vdHlwZXMvdXNpbmctcG9pbnRzLnR5cGUnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9wb3NpdGlvbi50eXBlJztcbmltcG9ydCB7IGdldFBvaW50T25MaW5lQnlSYXRpbyB9IGZyb20gJy4uL3BvaW50LW9uLWxpbmUtYnktcmF0aW8nO1xuXG5leHBvcnQgZnVuY3Rpb24gYmV6aWVyUGF0aChcbiAgc291cmNlOiBQb2ludCxcbiAgdGFyZ2V0OiBQb2ludCxcbiAgc291cmNlUG9zaXRpb246IFBvc2l0aW9uLFxuICB0YXJnZXRQb3NpdGlvbjogUG9zaXRpb24sXG4gIHVzaW5nUG9pbnRzOiBVc2luZ1BvaW50cyA9IFtmYWxzZSwgZmFsc2UsIGZhbHNlXVxuKTogUGF0aERhdGEge1xuICBjb25zdCBkaXN0YW5jZVZlY3RvciA9IHsgeDogc291cmNlLnggLSB0YXJnZXQueCwgeTogc291cmNlLnkgLSB0YXJnZXQueSB9O1xuXG4gIGNvbnN0IHNvdXJjZUNvbnRyb2wgPSBjYWxjQ29udHJvbFBvaW50KHNvdXJjZSwgc291cmNlUG9zaXRpb24sIGRpc3RhbmNlVmVjdG9yKTtcbiAgY29uc3QgdGFyZ2V0Q29udHJvbCA9IGNhbGNDb250cm9sUG9pbnQodGFyZ2V0LCB0YXJnZXRQb3NpdGlvbiwgZGlzdGFuY2VWZWN0b3IpO1xuXG4gIGNvbnN0IHBhdGggPVxuICAgIGBNJHtzb3VyY2UueH0sJHtzb3VyY2UueX0gQyR7c291cmNlQ29udHJvbC54fSwke3NvdXJjZUNvbnRyb2wueX0gJHt0YXJnZXRDb250cm9sLnh9LCR7dGFyZ2V0Q29udHJvbC55fSAke3RhcmdldC54fSwke3RhcmdldC55fWBcblxuICByZXR1cm4gZ2V0UGF0aERhdGEoXG4gICAgcGF0aCxcbiAgICBzb3VyY2UsXG4gICAgdGFyZ2V0LFxuICAgIHNvdXJjZUNvbnRyb2wsXG4gICAgdGFyZ2V0Q29udHJvbCxcbiAgICB1c2luZ1BvaW50c1xuICApO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSBjb250cm9sIHBvaW50IGJhc2VkIG9uIHByb3ZpZGVkIHBvaW50XG4gKlxuICogQHBhcmFtIHBvaW50IHJlbGF0aXZlIHRoaXMgcG9pbnQgY29udHJvbCBwb2ludCBpcyBnb25uYSBiZSBjb21wdXRlZCAodGhlIHNvdXJjZSBvciB0aGUgdGFyZ2V0KVxuICogQHBhcmFtIHBvaW50UG9zaXRpb24gcG9zaXRpb24gb2Yge3BvaW50fSBvbiBibG9ja1xuICogQHBhcmFtIGRpc3RhbmNlVmVjdG9yIHRyYW5zbWl0cyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgc291cmNlIGFuZCB0aGUgdGFyZ2V0IGFzIHggYW5kIHkgY29vcmRpbmF0ZXNcbiAqL1xuXG5mdW5jdGlvbiBjYWxjQ29udHJvbFBvaW50KFxuICBwb2ludDogUG9pbnQsXG4gIHBvaW50UG9zaXRpb246IFBvc2l0aW9uLFxuICBkaXN0YW5jZVZlY3RvcjogUG9pbnRcbikge1xuICBjb25zdCBmYWN0b3JQb2ludCA9IHsgeDogMCwgeTogMCB9O1xuXG4gIHN3aXRjaCAocG9pbnRQb3NpdGlvbikge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICBmYWN0b3JQb2ludC55ID0gMTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICBmYWN0b3JQb2ludC55ID0gLTE7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICBmYWN0b3JQb2ludC54ID0gMTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgZmFjdG9yUG9pbnQueCA9IC0xO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICAvLyBUT0RPOiBleHBsYWluIG5hbWVcbiAgY29uc3QgZnVsbERpc3RhbmNlVmVjdG9yID0ge1xuICAgIHg6IGRpc3RhbmNlVmVjdG9yLnggKiBNYXRoLmFicyhmYWN0b3JQb2ludC54KSxcbiAgICB5OiBkaXN0YW5jZVZlY3Rvci55ICogTWF0aC5hYnMoZmFjdG9yUG9pbnQueSksXG4gIH07XG5cbiAgLy8gVE9ETzogcHJvYmFibHkgbmVlZCB0byBtYWtlIHRoaXMgY29uZmlndXJhYmxlXG4gIGNvbnN0IGN1cnZhdHVyZSA9IDAuMjU7XG4gIC8vIHRoYW5rcyBjb2xsZWFndWVzIGZyb20gcmVhY3Qvc3ZlbHRlIHdvcmxkXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS94eWZsb3cveHlmbG93L2Jsb2IvZjAxMTc5MzliYWU5MzQ0NDdmYTdmMjMyMDgxZjkzNzE2OWVlMjNiNS9wYWNrYWdlcy9zeXN0ZW0vc3JjL3V0aWxzL2VkZ2VzL2Jlemllci1lZGdlLnRzI0w1NlxuICBjb25zdCBjb250cm9sT2Zmc2V0ID1cbiAgICBjdXJ2YXR1cmUgKiAyNSAqIE1hdGguc3FydChNYXRoLmFicyhmdWxsRGlzdGFuY2VWZWN0b3IueCArIGZ1bGxEaXN0YW5jZVZlY3Rvci55KSk7XG5cbiAgcmV0dXJuIHtcbiAgICB4OiBwb2ludC54ICsgZmFjdG9yUG9pbnQueCAqIGNvbnRyb2xPZmZzZXQsXG4gICAgeTogcG9pbnQueSAtIGZhY3RvclBvaW50LnkgKiBjb250cm9sT2Zmc2V0LFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRQYXRoRGF0YShcbiAgcGF0aDogc3RyaW5nLFxuICBzb3VyY2U6IFBvaW50LFxuICB0YXJnZXQ6IFBvaW50LFxuICBzb3VyY2VDb250cm9sOiBQb2ludCxcbiAgdGFyZ2V0Q29udHJvbDogUG9pbnQsXG4gIHVzaW5nUG9pbnRzOiBVc2luZ1BvaW50c1xuKTogUGF0aERhdGEge1xuICBjb25zdCBbc3RhcnQsIGNlbnRlciwgZW5kXSA9IHVzaW5nUG9pbnRzO1xuXG4gIGNvbnN0IG51bGxQb2ludCA9IHsgeDogMCwgeTogMCB9O1xuXG4gIHJldHVybiB7XG4gICAgcGF0aCxcbiAgICBwb2ludHM6IHtcbiAgICAgIHN0YXJ0OiBzdGFydFxuICAgICAgICA/IGdldFBvaW50T25CZXppZXIoc291cmNlLCB0YXJnZXQsIHNvdXJjZUNvbnRyb2wsIHRhcmdldENvbnRyb2wsIDAuMSlcbiAgICAgICAgOiBudWxsUG9pbnQsXG4gICAgICBjZW50ZXI6IGNlbnRlclxuICAgICAgICA/IGdldFBvaW50T25CZXppZXIoc291cmNlLCB0YXJnZXQsIHNvdXJjZUNvbnRyb2wsIHRhcmdldENvbnRyb2wsIDAuNSlcbiAgICAgICAgOiBudWxsUG9pbnQsXG4gICAgICBlbmQ6IGVuZFxuICAgICAgICA/IGdldFBvaW50T25CZXppZXIoc291cmNlLCB0YXJnZXQsIHNvdXJjZUNvbnRyb2wsIHRhcmdldENvbnRyb2wsIDAuOSlcbiAgICAgICAgOiBudWxsUG9pbnQsXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgcG9pbnQgb24gYmV6aWVyIGN1cnZlIGJ5IHJhdGlvXG4gKi9cbmZ1bmN0aW9uIGdldFBvaW50T25CZXppZXIoXG4gIHNvdXJjZVBvaW50OiBQb2ludCxcbiAgdGFyZ2V0UG9pbnQ6IFBvaW50LFxuICBzb3VyY2VDb250cm9sOiBQb2ludCxcbiAgdGFyZ2V0Q29udHJvbDogUG9pbnQsXG4gIHJhdGlvOiBudW1iZXJcbik6IFBvaW50IHtcbiAgY29uc3QgZnJvbVNvdXJjZVRvRmlyc3RDb250cm9sOiBQb2ludCA9IGdldFBvaW50T25MaW5lQnlSYXRpbyhcbiAgICBzb3VyY2VQb2ludCxcbiAgICBzb3VyY2VDb250cm9sLFxuICAgIHJhdGlvXG4gICk7XG4gIGNvbnN0IGZyb21GaXJzdENvbnRyb2xUb1NlY29uZDogUG9pbnQgPSBnZXRQb2ludE9uTGluZUJ5UmF0aW8oXG4gICAgc291cmNlQ29udHJvbCxcbiAgICB0YXJnZXRDb250cm9sLFxuICAgIHJhdGlvXG4gICk7XG4gIGNvbnN0IGZyb21TZWNvbmRDb250cm9sVG9UYXJnZXQ6IFBvaW50ID0gZ2V0UG9pbnRPbkxpbmVCeVJhdGlvKFxuICAgIHRhcmdldENvbnRyb2wsXG4gICAgdGFyZ2V0UG9pbnQsXG4gICAgcmF0aW9cbiAgKTtcblxuICByZXR1cm4gZ2V0UG9pbnRPbkxpbmVCeVJhdGlvKFxuICAgIGdldFBvaW50T25MaW5lQnlSYXRpbyhmcm9tU291cmNlVG9GaXJzdENvbnRyb2wsIGZyb21GaXJzdENvbnRyb2xUb1NlY29uZCwgcmF0aW8pLFxuICAgIGdldFBvaW50T25MaW5lQnlSYXRpbyhmcm9tRmlyc3RDb250cm9sVG9TZWNvbmQsIGZyb21TZWNvbmRDb250cm9sVG9UYXJnZXQsIHJhdGlvKSxcbiAgICByYXRpb1xuICApO1xufVxuIl19
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { path as d3Path } from 'd3-path';
|
|
2
1
|
import { getPointOnLineByRatio } from "../point-on-line-by-ratio";
|
|
3
2
|
export function straightPath(source, target, usingPoints = [false, false, false]) {
|
|
4
3
|
const [start, center, end] = usingPoints;
|
|
5
4
|
const nullPoint = { x: 0, y: 0 };
|
|
6
|
-
const path = d3Path();
|
|
7
|
-
path.moveTo(source.x, source.y);
|
|
8
|
-
path.lineTo(target.x, target.y);
|
|
9
5
|
return {
|
|
10
|
-
path:
|
|
6
|
+
path: `M ${source.x},${source.y}L ${target.x},${target.y}`,
|
|
11
7
|
points: {
|
|
12
8
|
start: start ? getPointOnLineByRatio(source, target, .15) : nullPoint,
|
|
13
9
|
center: center ? getPointOnLineByRatio(source, target, .50) : nullPoint,
|
|
@@ -15,4 +11,4 @@ export function straightPath(source, target, usingPoints = [false, false, false]
|
|
|
15
11
|
}
|
|
16
12
|
};
|
|
17
13
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYWlnaC1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L21hdGgvZWRnZS1wYXRoL3N0cmFpZ2gtcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxNQUFNLFVBQVUsWUFBWSxDQUMxQixNQUFhLEVBQ2IsTUFBYSxFQUNiLGNBQTJCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7SUFFaEQsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFBO0lBQ3hDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUE7SUFFaEMsT0FBTztRQUNMLElBQUksRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUU7UUFDMUQsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNyRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ3ZFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDbEU7S0FDRixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhdGhEYXRhIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvcGF0aC1kYXRhLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9wb2ludC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFVzaW5nUG9pbnRzIH0gZnJvbSBcIi4uLy4uL3R5cGVzL3VzaW5nLXBvaW50cy50eXBlXCI7XG5pbXBvcnQgeyBnZXRQb2ludE9uTGluZUJ5UmF0aW8gfSBmcm9tIFwiLi4vcG9pbnQtb24tbGluZS1ieS1yYXRpb1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gc3RyYWlnaHRQYXRoKFxuICBzb3VyY2U6IFBvaW50LFxuICB0YXJnZXQ6IFBvaW50LFxuICB1c2luZ1BvaW50czogVXNpbmdQb2ludHMgPSBbZmFsc2UsIGZhbHNlLCBmYWxzZV1cbik6IFBhdGhEYXRhIHtcbiAgY29uc3QgW3N0YXJ0LCBjZW50ZXIsIGVuZF0gPSB1c2luZ1BvaW50c1xuICBjb25zdCBudWxsUG9pbnQgPSB7IHg6IDAsIHk6IDAgfVxuXG4gIHJldHVybiB7XG4gICAgcGF0aDogYE0gJHtzb3VyY2UueH0sJHtzb3VyY2UueX1MICR7dGFyZ2V0Lnh9LCR7dGFyZ2V0Lnl9YCxcbiAgICBwb2ludHM6IHtcbiAgICAgIHN0YXJ0OiBzdGFydCA/IGdldFBvaW50T25MaW5lQnlSYXRpbyhzb3VyY2UsIHRhcmdldCwgLjE1KSA6IG51bGxQb2ludCxcbiAgICAgIGNlbnRlcjogY2VudGVyID8gZ2V0UG9pbnRPbkxpbmVCeVJhdGlvKHNvdXJjZSwgdGFyZ2V0LCAuNTApIDogbnVsbFBvaW50LFxuICAgICAgZW5kOiBlbmQgPyBnZXRQb2ludE9uTGluZUJ5UmF0aW8oc291cmNlLCB0YXJnZXQsIC44NSkgOiBudWxsUG9pbnQsXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -68,7 +68,8 @@ export class HandleModel {
|
|
|
68
68
|
this.templateContext = {
|
|
69
69
|
$implicit: {
|
|
70
70
|
point: this.offset,
|
|
71
|
-
state: this.state
|
|
71
|
+
state: this.state,
|
|
72
|
+
node: this.parentNode.node
|
|
72
73
|
}
|
|
73
74
|
};
|
|
74
75
|
}
|
|
@@ -88,4 +89,4 @@ export class HandleModel {
|
|
|
88
89
|
return { width: 0, height: 0 };
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L21vZGVscy9oYW5kbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXRELE1BQU0sT0FBTyxXQUFXO0lBMEZ0QixZQUNTLFNBQXFCLEVBQ3JCLFVBQXFCO1FBRHJCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQTNGZCxnQkFBVyxHQUFHLENBQUMsQ0FBQTtRQUUvQjs7O1dBR0c7UUFDSSxTQUFJLEdBQUcsTUFBTSxDQUFDO1lBQ25CLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNsQyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDcEMsQ0FBQyxDQUFBO1FBRUssV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsUUFBUSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDL0IsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPO29CQUNsQixDQUFDLEVBQUUsQ0FBQztvQkFDSixDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUM1RCxDQUFBO2dCQUNELEtBQUssT0FBTyxDQUFDLENBQUMsT0FBTztvQkFDbkIs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SUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtTQUN0QztRQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5vZGVIYW5kbGUgfSBmcm9tIFwiLi4vc2VydmljZXMvaGFuZGxlLnNlcnZpY2VcIjtcbmltcG9ydCB7IE5vZGVNb2RlbCB9IGZyb20gXCIuL25vZGUubW9kZWxcIjtcbmltcG9ydCB7IFN1YmplY3QsIG1hcCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuXG5leHBvcnQgdHlwZSBIYW5kbGVTdGF0ZSA9ICd2YWxpZCcgfCAnaW52YWxpZCcgfCAnaWRsZSdcblxuZXhwb3J0IGNsYXNzIEhhbmRsZU1vZGVsIHtcbiAgcHVibGljIHJlYWRvbmx5IHN0cm9rZVdpZHRoID0gMlxuXG4gIC8qKlxuICAgKiBQcmUtY29tcHV0ZWQgc2l6ZSBmb3IgZGVmYXVsdCBoYW5kbGUsIGNoYW5nZWQgZHluYW1pY2FsbHlcbiAgICogZm9yIGN1c3RvbSBoYW5kbGVzXG4gICAqL1xuICBwdWJsaWMgc2l6ZSA9IHNpZ25hbCh7XG4gICAgd2lkdGg6IDEwICsgKDIgKiB0aGlzLnN0cm9rZVdpZHRoKSxcbiAgICBoZWlnaHQ6IDEwICsgKDIgKiB0aGlzLnN0cm9rZVdpZHRoKVxuICB9KVxuXG4gIHB1YmxpYyBvZmZzZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnJhd0hhbmRsZS5wb3NpdGlvbikge1xuICAgICAgY2FzZSAnbGVmdCc6IHJldHVybiB7XG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IHRoaXMucGFyZW50UG9zaXRpb24oKS55ICsgKHRoaXMucGFyZW50U2l6ZSgpLmhlaWdodCAvIDIpXG4gICAgICB9XG4gICAgICBjYXNlICdyaWdodCc6IHJldHVybiB7XG4gICAgICAgIHg6IHRoaXMucGFyZW50Tm9kZS5zaXplKCkud2lkdGgsXG4gICAgICAgIHk6IHRoaXMucGFyZW50UG9zaXRpb24oKS55ICsgKHRoaXMucGFyZW50U2l6ZSgpLmhlaWdodCAvIDIpXG4gICAgICB9XG4gICAgICBjYXNlICd0b3AnOiByZXR1cm4ge1xuICAgICAgICB4OiB0aGlzLnBhcmVudFBvc2l0aW9uKCkueCArICh0aGlzLnBhcmVudFNpemUoKS53aWR0aCAvIDIpLFxuICAgICAgICB5OiAwXG4gICAgICB9XG4gICAgICBjYXNlICdib3R0b20nOiByZXR1cm4ge1xuICAgICAgICB4OiB0aGlzLnBhcmVudFBvc2l0aW9uKCkueCArIHRoaXMucGFyZW50U2l6ZSgpLndpZHRoIC8gMixcbiAgICAgICAgeTogdGhpcy5wYXJlbnROb2RlLnNpemUoKS5oZWlnaHRcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcHVibGljIHNpemVPZmZzZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnJhd0hhbmRsZS5wb3NpdGlvbikge1xuICAgICAgY2FzZSAnbGVmdCc6IHJldHVybiB7IHg6IC0odGhpcy5zaXplKCkud2lkdGggLyAyKSwgeTogMCB9XG4gICAgICBjYXNlICdyaWdodCc6IHJldHVybiB7IHg6IHRoaXMuc2l6ZSgpLndpZHRoIC8gMiwgeTogMCB9XG4gICAgICBjYXNlICd0b3AnOiByZXR1cm4geyB4OiAwLCB5OiAtKHRoaXMuc2l6ZSgpLmhlaWdodCAvIDIpIH1cbiAgICAgIGNhc2UgJ2JvdHRvbSc6IHJldHVybiB7IHg6IDAsIHk6IHRoaXMuc2l6ZSgpLmhlaWdodCAvIDIgfVxuICAgIH1cbiAgfSlcblxuICBwdWJsaWMgcG9pbnRBYnNvbHV0ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgeDogdGhpcy5wYXJlbnROb2RlLmdsb2JhbFBvaW50KCkueCArIHRoaXMub2Zmc2V0KCkueCArIHRoaXMuc2l6ZU9mZnNldCgpLngsXG4gICAgICB5OiB0aGlzLnBhcmVudE5vZGUuZ2xvYmFsUG9pbnQoKS55ICsgdGhpcy5vZmZzZXQoKS55ICsgdGhpcy5zaXplT2Zmc2V0KCkueSxcbiAgICB9XG4gIH0pXG5cbiAgcHVibGljIHN0YXRlID0gc2lnbmFsPEhhbmRsZVN0YXRlPignaWRsZScpXG5cbiAgcHJpdmF0ZSB1cGRhdGVQYXJlbnRTaXplQW5kUG9zaXRpb24kID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIHB1YmxpYyBwYXJlbnRTaXplID0gdG9TaWduYWwoXG4gICAgdGhpcy51cGRhdGVQYXJlbnRTaXplQW5kUG9zaXRpb24kLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5nZXRQYXJlbnRTaXplKCkpXG4gICAgKSxcbiAgICB7XG4gICAgICBpbml0aWFsVmFsdWU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9XG4gICAgfVxuICApXG5cbiAgcHVibGljIHBhcmVudFBvc2l0aW9uID0gdG9TaWduYWwoXG4gICAgdGhpcy51cGRhdGVQYXJlbnRTaXplQW5kUG9zaXRpb24kLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gKHtcbiAgICAgICAgeDogdGhpcy5wYXJlbnRSZWZlcmVuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudFxuICAgICAgICAgID8gdGhpcy5wYXJlbnRSZWZlcmVuY2Uub2Zmc2V0TGVmdFxuICAgICAgICAgIDogMCwgLy8gZm9yIG5vdyBqdXN0IDAgZm9yIGdyb3VwIG5vZGVzXG4gICAgICAgIHk6IHRoaXMucGFyZW50UmVmZXJlbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnRcbiAgICAgICAgICA/IHRoaXMucGFyZW50UmVmZXJlbmNlLm9mZnNldFRvcFxuICAgICAgICAgIDogMCAvLyBmb3Igbm93IGp1c3QgMCBmb3IgZ3JvdXAgbm9kZXNcbiAgICAgIH0pKVxuICAgICksXG4gICAge1xuICAgICAgaW5pdGlhbFZhbHVlOiB7IHg6IDAsIHk6IDAgfVxuICAgIH1cbiAgKVxuXG4gIHB1YmxpYyBwYXJlbnRSZWZlcmVuY2UgPSB0aGlzLnJhd0hhbmRsZS5wYXJlbnRSZWZlcmVuY2UhXG5cbiAgcHVibGljIHRlbXBsYXRlID0gdGhpcy5yYXdIYW5kbGUudGVtcGxhdGVcblxuICBwdWJsaWMgdGVtcGxhdGVDb250ZXh0ID0ge1xuICAgICRpbXBsaWNpdDoge1xuICAgICAgcG9pbnQ6IHRoaXMub2Zmc2V0LFxuICAgICAgc3RhdGU6IHRoaXMuc3RhdGUsXG4gICAgICBub2RlOiB0aGlzLnBhcmVudE5vZGUubm9kZVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByYXdIYW5kbGU6IE5vZGVIYW5kbGUsXG4gICAgcHVibGljIHBhcmVudE5vZGU6IE5vZGVNb2RlbFxuICApIHsgfVxuXG4gIHB1YmxpYyB1cGRhdGVQYXJlbnQoKSB7XG4gICAgdGhpcy51cGRhdGVQYXJlbnRTaXplQW5kUG9zaXRpb24kLm5leHQoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJlbnRTaXplKCk6IHsgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIgfSB7XG4gICAgaWYgKHRoaXMucGFyZW50UmVmZXJlbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoOiB0aGlzLnBhcmVudFJlZmVyZW5jZS5vZmZzZXRXaWR0aCxcbiAgICAgICAgaGVpZ2h0OiB0aGlzLnBhcmVudFJlZmVyZW5jZS5vZmZzZXRIZWlnaHRcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMucGFyZW50UmVmZXJlbmNlIGluc3RhbmNlb2YgU1ZHR3JhcGhpY3NFbGVtZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJlbnRSZWZlcmVuY2UuZ2V0QkJveCgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgd2lkdGg6IDAsIGhlaWdodDogMCB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { signal } from "@angular/core";
|
|
2
|
+
export class MinimapModel {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.template = signal(null);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hcC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvbWluaW1hcC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRXBELE1BQU0sT0FBTyxZQUFZO0lBQXpCO1FBQ1MsYUFBUSxHQUFHLE1BQU0sQ0FBOEIsSUFBSSxDQUFDLENBQUE7SUFDN0QsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2lnbmFsLCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBjbGFzcyBNaW5pbWFwTW9kZWwge1xuICBwdWJsaWMgdGVtcGxhdGUgPSBzaWduYWw8VGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsPihudWxsKVxufVxuIl19
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Component, computed, inject, Injector, Input, signal, ViewChild } from '@angular/core';
|
|
2
|
+
import { FlowEntitiesService } from '../../services/flow-entities.service';
|
|
3
|
+
import { MinimapModel } from '../../models/minimap.model';
|
|
4
|
+
import { FlowSettingsService } from '../../services/flow-settings.service';
|
|
5
|
+
import { getViewportForBounds } from '../../utils/viewport';
|
|
6
|
+
import { getNodesBounds } from '../../utils/nodes';
|
|
7
|
+
import { ViewportService } from '../../services/viewport.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
import * as i2 from "../../components/default-node/default-node.component";
|
|
11
|
+
export class MiniMapComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.entitiesService = inject(FlowEntitiesService);
|
|
14
|
+
this.flowSettingsService = inject(FlowSettingsService);
|
|
15
|
+
this.viewportService = inject(ViewportService);
|
|
16
|
+
this.injector = inject(Injector);
|
|
17
|
+
/**
|
|
18
|
+
* The color outside the viewport (invisible area)
|
|
19
|
+
*/
|
|
20
|
+
this.maskColor = `rgba(215, 215, 215, 0.6)`;
|
|
21
|
+
/**
|
|
22
|
+
* The minimap stroke color
|
|
23
|
+
*/
|
|
24
|
+
this.strokeColor = `rgb(200, 200, 200)`;
|
|
25
|
+
this.minimapOffset = 10;
|
|
26
|
+
this.minimapScale = computed(() => {
|
|
27
|
+
if (this.scaleOnHoverSignal()) {
|
|
28
|
+
return this.hovered() ? 0.4 : 0.2;
|
|
29
|
+
}
|
|
30
|
+
return 0.2;
|
|
31
|
+
});
|
|
32
|
+
this.viewportColor = computed(() => this.flowSettingsService.background().color ?? '#fff');
|
|
33
|
+
this.hovered = signal(false);
|
|
34
|
+
this.minimapPoint = computed(() => {
|
|
35
|
+
switch (this.minimapPosition()) {
|
|
36
|
+
case 'top-left':
|
|
37
|
+
return { x: this.minimapOffset, y: this.minimapOffset };
|
|
38
|
+
case 'top-right':
|
|
39
|
+
return {
|
|
40
|
+
x: this.flowSettingsService.computedFlowWidth() - this.minimapWidth() - this.minimapOffset,
|
|
41
|
+
y: this.minimapOffset
|
|
42
|
+
};
|
|
43
|
+
case 'bottom-left':
|
|
44
|
+
return {
|
|
45
|
+
x: this.minimapOffset,
|
|
46
|
+
y: this.flowSettingsService.computedFlowHeight() - this.minimapHeight() - this.minimapOffset
|
|
47
|
+
};
|
|
48
|
+
case 'bottom-right':
|
|
49
|
+
return {
|
|
50
|
+
x: this.flowSettingsService.computedFlowWidth() - this.minimapWidth() - this.minimapOffset,
|
|
51
|
+
y: this.flowSettingsService.computedFlowHeight() - this.minimapHeight() - this.minimapOffset
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
this.minimapWidth = computed(() => this.flowSettingsService.computedFlowWidth() * this.minimapScale());
|
|
56
|
+
this.minimapHeight = computed(() => this.flowSettingsService.computedFlowHeight() * this.minimapScale());
|
|
57
|
+
this.viewportTransform = computed(() => {
|
|
58
|
+
const viewport = this.viewportService.readableViewport();
|
|
59
|
+
let scale = 1 / viewport.zoom;
|
|
60
|
+
let x = -(viewport.x * this.minimapScale()) * scale;
|
|
61
|
+
x /= this.minimapScale();
|
|
62
|
+
let y = -(viewport.y * this.minimapScale()) * scale;
|
|
63
|
+
y /= this.minimapScale();
|
|
64
|
+
scale /= this.minimapScale();
|
|
65
|
+
return `translate(${x}, ${y}) scale(${scale})`;
|
|
66
|
+
});
|
|
67
|
+
this.boundsViewport = computed(() => {
|
|
68
|
+
const nodes = this.entitiesService.nodes();
|
|
69
|
+
return getViewportForBounds(getNodesBounds(nodes), this.flowSettingsService.computedFlowWidth(), this.flowSettingsService.computedFlowHeight(), -Infinity, 1.5, 0);
|
|
70
|
+
});
|
|
71
|
+
this.minimapTransform = computed(() => {
|
|
72
|
+
const vport = this.boundsViewport();
|
|
73
|
+
const x = vport.x * this.minimapScale();
|
|
74
|
+
const y = vport.y * this.minimapScale();
|
|
75
|
+
const scale = vport.zoom * this.minimapScale();
|
|
76
|
+
return `translate(${x} ${y}) scale(${scale})`;
|
|
77
|
+
});
|
|
78
|
+
this.minimapPosition = signal('bottom-right');
|
|
79
|
+
this.scaleOnHoverSignal = signal(false);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The corner of the flow where to render a mini-map
|
|
83
|
+
*/
|
|
84
|
+
set position(value) {
|
|
85
|
+
this.minimapPosition.set(value);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Make a minimap bigger on hover
|
|
89
|
+
*/
|
|
90
|
+
set scaleOnHover(value) {
|
|
91
|
+
this.scaleOnHoverSignal.set(value);
|
|
92
|
+
}
|
|
93
|
+
ngOnInit() {
|
|
94
|
+
const model = new MinimapModel();
|
|
95
|
+
model.template.set(this.minimap);
|
|
96
|
+
this.entitiesService.minimap.set(model);
|
|
97
|
+
}
|
|
98
|
+
trackNodes(idx, { node }) {
|
|
99
|
+
return node;
|
|
100
|
+
}
|
|
101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MiniMapComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
102
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MiniMapComponent, selector: "mini-map", inputs: { position: "position", maskColor: "maskColor", strokeColor: "strokeColor", scaleOnHover: "scaleOnHover" }, viewQueries: [{ propertyName: "minimap", first: true, predicate: ["minimap"], descendants: true, static: true }], ngImport: i0, template: "<ng-template #minimap>\n <svg:rect\n [attr.x]=\"minimapPoint().x\"\n [attr.y]=\"minimapPoint().y\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n [attr.stroke]=\"strokeColor\"\n fill=\"none\"\n />\n\n <svg:svg\n [attr.x]=\"minimapPoint().x\"\n [attr.y]=\"minimapPoint().y\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n (mouseover)=\"hovered.set(true)\"\n (mouseleave)=\"hovered.set(false)\"\n >\n <svg:rect\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n [attr.fill]=\"maskColor\"\n />\n\n <svg:g [attr.transform]=\"minimapTransform()\">\n <svg:rect\n [attr.fill]=\"viewportColor()\"\n [attr.transform]=\"viewportTransform()\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n />\n\n <ng-container\n *ngFor=\"let model of entitiesService.nodes(); trackBy: trackNodes\"\n >\n <svg:foreignObject\n *ngIf=\"model.node.type === 'default' || model.node.type === 'html-template' || model.isComponentType\"\n [attr.transform]=\"model.pointTransform()\"\n [attr.width]=\"model.size().width\"\n [attr.height]=\"model.size().height\"\n >\n <default-node\n [selected]=\"model.selected()\"\n [style.width.px]=\"model.size().width\"\n [style.height.px]=\"model.size().height\"\n [style.max-width.px]=\"model.size().width\"\n [style.max-height.px]=\"model.size().height\"\n >\n <div [outerHTML]=\"model.text()\"></div>\n </default-node>\n </svg:foreignObject>\n\n <svg:rect\n *ngIf=\"model.node.type === 'default-group' || model.node.type === 'template-group'\"\n class=\"default-group-node\"\n rx=\"5\"\n ry=\"5\"\n [attr.transform]=\"model.pointTransform()\"\n [class.default-group-node_selected]=\"model.selected()\"\n [attr.width]=\"model.size().width\"\n [attr.height]=\"model.size().height\"\n [style.stroke]=\"model.color()\"\n [style.fill]=\"model.color()\"\n />\n\n </ng-container>\n </svg:g>\n </svg:svg>\n</ng-template>\n", styles: [".default-group-node{stroke-width:1.5px;fill-opacity:.05}.default-group-node_selected{stroke-width:2px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.DefaultNodeComponent, selector: "default-node", inputs: ["selected"] }] }); }
|
|
103
|
+
}
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MiniMapComponent, decorators: [{
|
|
105
|
+
type: Component,
|
|
106
|
+
args: [{ selector: 'mini-map', template: "<ng-template #minimap>\n <svg:rect\n [attr.x]=\"minimapPoint().x\"\n [attr.y]=\"minimapPoint().y\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n [attr.stroke]=\"strokeColor\"\n fill=\"none\"\n />\n\n <svg:svg\n [attr.x]=\"minimapPoint().x\"\n [attr.y]=\"minimapPoint().y\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n (mouseover)=\"hovered.set(true)\"\n (mouseleave)=\"hovered.set(false)\"\n >\n <svg:rect\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n [attr.fill]=\"maskColor\"\n />\n\n <svg:g [attr.transform]=\"minimapTransform()\">\n <svg:rect\n [attr.fill]=\"viewportColor()\"\n [attr.transform]=\"viewportTransform()\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n />\n\n <ng-container\n *ngFor=\"let model of entitiesService.nodes(); trackBy: trackNodes\"\n >\n <svg:foreignObject\n *ngIf=\"model.node.type === 'default' || model.node.type === 'html-template' || model.isComponentType\"\n [attr.transform]=\"model.pointTransform()\"\n [attr.width]=\"model.size().width\"\n [attr.height]=\"model.size().height\"\n >\n <default-node\n [selected]=\"model.selected()\"\n [style.width.px]=\"model.size().width\"\n [style.height.px]=\"model.size().height\"\n [style.max-width.px]=\"model.size().width\"\n [style.max-height.px]=\"model.size().height\"\n >\n <div [outerHTML]=\"model.text()\"></div>\n </default-node>\n </svg:foreignObject>\n\n <svg:rect\n *ngIf=\"model.node.type === 'default-group' || model.node.type === 'template-group'\"\n class=\"default-group-node\"\n rx=\"5\"\n ry=\"5\"\n [attr.transform]=\"model.pointTransform()\"\n [class.default-group-node_selected]=\"model.selected()\"\n [attr.width]=\"model.size().width\"\n [attr.height]=\"model.size().height\"\n [style.stroke]=\"model.color()\"\n [style.fill]=\"model.color()\"\n />\n\n </ng-container>\n </svg:g>\n </svg:svg>\n</ng-template>\n", styles: [".default-group-node{stroke-width:1.5px;fill-opacity:.05}.default-group-node_selected{stroke-width:2px}\n"] }]
|
|
107
|
+
}], propDecorators: { position: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], maskColor: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], strokeColor: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], scaleOnHover: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], minimap: [{
|
|
116
|
+
type: ViewChild,
|
|
117
|
+
args: ['minimap', { static: true }]
|
|
118
|
+
}] } });
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvcHVibGljLWNvbXBvbmVudHMvbWluaW1hcC9taW5pbWFwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9taW5pbWFwL21pbmltYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQVNsRSxNQUFNLE9BQU8sZ0JBQWdCO0lBTDdCO1FBTVksb0JBQWUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUM3Qyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUNqRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN6QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBVXJDOztXQUVHO1FBRUksY0FBUyxH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eEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDakMsQ0FBQztJQWNEOztPQUVHO0lBQ0gsSUFDVyxZQUFZLENBQUMsS0FBYztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUE0Rk0sUUFBUTtRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7UUFDaEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRWhDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBRVMsVUFBVSxDQUFDLEdBQVcsRUFBRSxFQUFFLElBQUksRUFBYTtRQUNuRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7K0dBcklVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHNSQ2hCN0IsNHZFQXFFQTs7NEZEckRhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxVQUFVOzhCQWNULFFBQVE7c0JBRGxCLEtBQUs7Z0JBU0MsU0FBUztzQkFEZixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0ssWUFBWTtzQkFEdEIsS0FBSztnQkFNRSxPQUFPO3NCQURkLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIHNpZ25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBNaW5pbWFwTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWluaW1hcC5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFZpZXdwb3J0Rm9yQm91bmRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmlld3BvcnQnO1xuaW1wb3J0IHsgZ2V0Tm9kZXNCb3VuZHMgfSBmcm9tICcuLi8uLi91dGlscy9ub2Rlcyc7XG5pbXBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3cG9ydC5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgTWluaU1hcFBvc2l0aW9uID0gJ3RvcC1sZWZ0JyB8ICd0b3AtcmlnaHQnIHwgJ2JvdHRvbS1sZWZ0JyB8ICdib3R0b20tcmlnaHQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21pbmktbWFwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21pbmltYXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtgLi9taW5pbWFwLmNvbXBvbmVudC5zY3NzYF1cbn0pXG5leHBvcnQgY2xhc3MgTWluaU1hcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBlbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSlcbiAgcHJvdGVjdGVkIGZsb3dTZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoRmxvd1NldHRpbmdzU2VydmljZSlcbiAgcHJvdGVjdGVkIHZpZXdwb3J0U2VydmljZSA9IGluamVjdChWaWV3cG9ydFNlcnZpY2UpXG4gIHByb3RlY3RlZCBpbmplY3RvciA9IGluamVjdChJbmplY3RvcilcblxuICAvKipcbiAgICogVGhlIGNvcm5lciBvZiB0aGUgZmxvdyB3aGVyZSB0byByZW5kZXIgYSBtaW5pLW1hcFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwb3NpdGlvbih2YWx1ZTogTWluaU1hcFBvc2l0aW9uKSB7XG4gICAgdGhpcy5taW5pbWFwUG9zaXRpb24uc2V0KHZhbHVlKVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb2xvciBvdXRzaWRlIHRoZSB2aWV3cG9ydCAoaW52aXNpYmxlIGFyZWEpXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWFza0NvbG9yID0gYHJnYmEoMjE1LCAyMTUsIDIxNSwgMC42KWBcblxuICAvKipcbiAgICogVGhlIG1pbmltYXAgc3Ryb2tlIGNvbG9yXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3Ryb2tlQ29sb3IgPSBgcmdiKDIwMCwgMjAwLCAyMDApYFxuXG4gIC8qKlxuICAgKiBNYWtlIGEgbWluaW1hcCBiaWdnZXIgb24gaG92ZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2NhbGVPbkhvdmVyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zY2FsZU9uSG92ZXJTaWduYWwuc2V0KHZhbHVlKVxuICB9XG5cbiAgQFZpZXdDaGlsZCgnbWluaW1hcCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgbWluaW1hcCE6IFRlbXBsYXRlUmVmPHVua25vd24+XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtaW5pbWFwT2Zmc2V0ID0gMTBcblxuICBwcml2YXRlIHJlYWRvbmx5IG1pbmltYXBTY2FsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5zY2FsZU9uSG92ZXJTaWduYWwoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuaG92ZXJlZCgpID8gMC40IDogMC4yXG4gICAgfVxuXG4gICAgcmV0dXJuIDAuMlxuICB9KVxuXG4gIHByb3RlY3RlZCB2aWV3cG9ydENvbG9yID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmJhY2tncm91bmQoKS5jb2xvciA/PyAnI2ZmZicpXG5cbiAgcHJvdGVjdGVkIGhvdmVyZWQgPSBzaWduYWwoZmFsc2UpXG5cbiAgcHJvdGVjdGVkIG1pbmltYXBQb2ludCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMubWluaW1hcFBvc2l0aW9uKCkpIHtcbiAgICAgIGNhc2UgJ3RvcC1sZWZ0JzpcbiAgICAgICAgcmV0dXJuIHsgeDogdGhpcy5taW5pbWFwT2Zmc2V0LCB5OiB0aGlzLm1pbmltYXBPZmZzZXQgfVxuICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OiB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93V2lkdGgoKSAtIHRoaXMubWluaW1hcFdpZHRoKCkgLSB0aGlzLm1pbmltYXBPZmZzZXQsXG4gICAgICAgICAgeTogdGhpcy5taW5pbWFwT2Zmc2V0XG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OiB0aGlzLm1pbmltYXBPZmZzZXQsXG4gICAgICAgICAgeTogdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd0hlaWdodCgpIC0gdGhpcy5taW5pbWFwSGVpZ2h0KCkgLSB0aGlzLm1pbmltYXBPZmZzZXRcbiAgICAgICAgfVxuICAgICAgY2FzZSAnYm90dG9tLXJpZ2h0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OiB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93V2lkdGgoKSAtIHRoaXMubWluaW1hcFdpZHRoKCkgLSB0aGlzLm1pbmltYXBPZmZzZXQsXG4gICAgICAgICAgeTogdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd0hlaWdodCgpIC0gdGhpcy5taW5pbWFwSGVpZ2h0KCkgLSB0aGlzLm1pbmltYXBPZmZzZXRcbiAgICAgICAgfVxuICAgIH1cbiAgfSlcblxuICBwcm90ZWN0ZWQgbWluaW1hcFdpZHRoID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93V2lkdGgoKSAqIHRoaXMubWluaW1hcFNjYWxlKClcbiAgKVxuICBwcm90ZWN0ZWQgbWluaW1hcEhlaWdodCA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd0hlaWdodCgpICogdGhpcy5taW5pbWFwU2NhbGUoKVxuICApXG5cbiAgcHJvdGVjdGVkIHZpZXdwb3J0VHJhbnNmb3JtID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpO1xuICAgIGxldCBzY2FsZSA9IDEgLyB2aWV3cG9ydC56b29tXG5cbiAgICBsZXQgeCA9IC0odmlld3BvcnQueCAqIHRoaXMubWluaW1hcFNjYWxlKCkpICogc2NhbGVcbiAgICB4IC89IHRoaXMubWluaW1hcFNjYWxlKClcblxuICAgIGxldCB5ID0gLSh2aWV3cG9ydC55ICogdGhpcy5taW5pbWFwU2NhbGUoKSkgKiBzY2FsZVxuICAgIHkgLz0gdGhpcy5taW5pbWFwU2NhbGUoKVxuXG4gICAgc2NhbGUgLz0gdGhpcy5taW5pbWFwU2NhbGUoKVxuXG4gICAgcmV0dXJuIGB0cmFuc2xhdGUoJHt4fSwgJHt5fSkgc2NhbGUoJHtzY2FsZX0pYDtcbiAgfSk7XG5cblxuICBwcm90ZWN0ZWQgYm91bmRzVmlld3BvcnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgbm9kZXMgPSB0aGlzLmVudGl0aWVzU2VydmljZS5ub2RlcygpXG5cbiAgICByZXR1cm4gZ2V0Vmlld3BvcnRGb3JCb3VuZHMoXG4gICAgICBnZXROb2Rlc0JvdW5kcyhub2RlcyksXG4gICAgICB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93V2lkdGgoKSxcbiAgICAgIHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5jb21wdXRlZEZsb3dIZWlnaHQoKSxcbiAgICAgIC1JbmZpbml0eSxcbiAgICAgIDEuNSxcbiAgICAgIDBcbiAgICApXG5cbiAgfSlcblxuICBwcm90ZWN0ZWQgbWluaW1hcFRyYW5zZm9ybSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2cG9ydCA9IHRoaXMuYm91bmRzVmlld3BvcnQoKVxuXG4gICAgY29uc3QgeCA9IHZwb3J0LnggKiB0aGlzLm1pbmltYXBTY2FsZSgpXG4gICAgY29uc3QgeSA9IHZwb3J0LnkgKiB0aGlzLm1pbmltYXBTY2FsZSgpXG4gICAgY29uc3Qgc2NhbGUgPSB2cG9ydC56b29tICogdGhpcy5taW5pbWFwU2NhbGUoKVxuXG4gICAgcmV0dXJuIGB0cmFuc2xhdGUoJHt4fSAke3l9KSBzY2FsZSgke3NjYWxlfSlgXG4gIH0pXG5cbiAgcHJpdmF0ZSBtaW5pbWFwUG9zaXRpb24gPSBzaWduYWw8TWluaU1hcFBvc2l0aW9uPignYm90dG9tLXJpZ2h0JylcblxuICBwcml2YXRlIHNjYWxlT25Ib3ZlclNpZ25hbCA9IHNpZ25hbChmYWxzZSlcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbW9kZWwgPSBuZXcgTWluaW1hcE1vZGVsKClcbiAgICBtb2RlbC50ZW1wbGF0ZS5zZXQodGhpcy5taW5pbWFwKVxuXG4gICAgdGhpcy5lbnRpdGllc1NlcnZpY2UubWluaW1hcC5zZXQobW9kZWwpXG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tOb2RlcyhpZHg6IG51bWJlciwgeyBub2RlIH06IE5vZGVNb2RlbCkge1xuICAgIHJldHVybiBub2RlXG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWluaW1hcD5cbiAgPHN2ZzpyZWN0XG4gICAgW2F0dHIueF09XCJtaW5pbWFwUG9pbnQoKS54XCJcbiAgICBbYXR0ci55XT1cIm1pbmltYXBQb2ludCgpLnlcIlxuICAgIFthdHRyLndpZHRoXT1cIm1pbmltYXBXaWR0aCgpXCJcbiAgICBbYXR0ci5oZWlnaHRdPVwibWluaW1hcEhlaWdodCgpXCJcbiAgICBbYXR0ci5zdHJva2VdPVwic3Ryb2tlQ29sb3JcIlxuICAgIGZpbGw9XCJub25lXCJcbiAgLz5cblxuICA8c3ZnOnN2Z1xuICAgIFthdHRyLnhdPVwibWluaW1hcFBvaW50KCkueFwiXG4gICAgW2F0dHIueV09XCJtaW5pbWFwUG9pbnQoKS55XCJcbiAgICBbYXR0ci53aWR0aF09XCJtaW5pbWFwV2lkdGgoKVwiXG4gICAgW2F0dHIuaGVpZ2h0XT1cIm1pbmltYXBIZWlnaHQoKVwiXG4gICAgKG1vdXNlb3Zlcik9XCJob3ZlcmVkLnNldCh0cnVlKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwiaG92ZXJlZC5zZXQoZmFsc2UpXCJcbiAgPlxuICAgIDxzdmc6cmVjdFxuICAgICAgW2F0dHIud2lkdGhdPVwibWluaW1hcFdpZHRoKClcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cIm1pbmltYXBIZWlnaHQoKVwiXG4gICAgICBbYXR0ci5maWxsXT1cIm1hc2tDb2xvclwiXG4gICAgLz5cblxuICAgIDxzdmc6ZyBbYXR0ci50cmFuc2Zvcm1dPVwibWluaW1hcFRyYW5zZm9ybSgpXCI+XG4gICAgICA8c3ZnOnJlY3RcbiAgICAgICAgW2F0dHIuZmlsbF09XCJ2aWV3cG9ydENvbG9yKClcIlxuICAgICAgICBbYXR0ci50cmFuc2Zvcm1dPVwidmlld3BvcnRUcmFuc2Zvcm0oKVwiXG4gICAgICAgIFthdHRyLndpZHRoXT1cIm1pbmltYXBXaWR0aCgpXCJcbiAgICAgICAgW2F0dHIuaGVpZ2h0XT1cIm1pbmltYXBIZWlnaHQoKVwiXG4gICAgICAvPlxuXG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0Zvcj1cImxldCBtb2RlbCBvZiBlbnRpdGllc1NlcnZpY2Uubm9kZXMoKTsgdHJhY2tCeTogdHJhY2tOb2Rlc1wiXG4gICAgICA+XG4gICAgICAgIDxzdmc6Zm9yZWlnbk9iamVjdFxuICAgICAgICAgICpuZ0lmPVwibW9kZWwubm9kZS50eXBlID09PSAnZGVmYXVsdCcgfHwgbW9kZWwubm9kZS50eXBlID09PSAnaHRtbC10ZW1wbGF0ZScgfHwgbW9kZWwuaXNDb21wb25lbnRUeXBlXCJcbiAgICAgICAgICBbYXR0ci50cmFuc2Zvcm1dPVwibW9kZWwucG9pbnRUcmFuc2Zvcm0oKVwiXG4gICAgICAgICAgW2F0dHIud2lkdGhdPVwibW9kZWwuc2l6ZSgpLndpZHRoXCJcbiAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwibW9kZWwuc2l6ZSgpLmhlaWdodFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGVmYXVsdC1ub2RlXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwibW9kZWwuc2VsZWN0ZWQoKVwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwibW9kZWwuc2l6ZSgpLndpZHRoXCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwibW9kZWwuc2l6ZSgpLmhlaWdodFwiXG4gICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoLnB4XT1cIm1vZGVsLnNpemUoKS53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUubWF4LWhlaWdodC5weF09XCJtb2RlbC5zaXplKCkuaGVpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IFtvdXRlckhUTUxdPVwibW9kZWwudGV4dCgpXCI+PC9kaXY+XG4gICAgICAgICAgPC9kZWZhdWx0LW5vZGU+XG4gICAgICAgIDwvc3ZnOmZvcmVpZ25PYmplY3Q+XG5cbiAgICAgICAgPHN2ZzpyZWN0XG4gICAgICAgICAgKm5nSWY9XCJtb2RlbC5ub2RlLnR5cGUgPT09ICdkZWZhdWx0LWdyb3VwJyB8fCBtb2RlbC5ub2RlLnR5cGUgPT09ICd0ZW1wbGF0ZS1ncm91cCdcIlxuICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1ncm91cC1ub2RlXCJcbiAgICAgICAgICByeD1cIjVcIlxuICAgICAgICAgIHJ5PVwiNVwiXG4gICAgICAgICAgW2F0dHIudHJhbnNmb3JtXT1cIm1vZGVsLnBvaW50VHJhbnNmb3JtKClcIlxuICAgICAgICAgIFtjbGFzcy5kZWZhdWx0LWdyb3VwLW5vZGVfc2VsZWN0ZWRdPVwibW9kZWwuc2VsZWN0ZWQoKVwiXG4gICAgICAgICAgW2F0dHIud2lkdGhdPVwibW9kZWwuc2l6ZSgpLndpZHRoXCJcbiAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwibW9kZWwuc2l6ZSgpLmhlaWdodFwiXG4gICAgICAgICAgW3N0eWxlLnN0cm9rZV09XCJtb2RlbC5jb2xvcigpXCJcbiAgICAgICAgICBbc3R5bGUuZmlsbF09XCJtb2RlbC5jb2xvcigpXCJcbiAgICAgICAgLz5cblxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9zdmc6Zz5cbiAgPC9zdmc6c3ZnPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -12,6 +12,10 @@ export class FlowEntitiesService {
|
|
|
12
12
|
// empty arrays considered equal, other arrays may not be equal
|
|
13
13
|
equal: (a, b) => !a.length && !b.length ? true : a === b
|
|
14
14
|
});
|
|
15
|
+
this.validEdges = computed(() => {
|
|
16
|
+
const nodes = this.nodes();
|
|
17
|
+
return this.edges().filter(e => nodes.includes(e.source()) && nodes.includes(e.target()));
|
|
18
|
+
});
|
|
15
19
|
this.connection = signal(new ConnectionModel({}));
|
|
16
20
|
this.markers = computed(() => {
|
|
17
21
|
const markersMap = new Map();
|
|
@@ -32,14 +36,11 @@ export class FlowEntitiesService {
|
|
|
32
36
|
}
|
|
33
37
|
return markersMap;
|
|
34
38
|
});
|
|
35
|
-
this.validEdges = computed(() => {
|
|
36
|
-
const nodes = this.nodes();
|
|
37
|
-
return this.edges().filter(e => nodes.includes(e.source()) && nodes.includes(e.target()));
|
|
38
|
-
});
|
|
39
39
|
this.entities = computed(() => [
|
|
40
40
|
...this.nodes(),
|
|
41
41
|
...this.edges()
|
|
42
42
|
]);
|
|
43
|
+
this.minimap = signal(null);
|
|
43
44
|
}
|
|
44
45
|
getNode(id) {
|
|
45
46
|
return this.nodes().find(({ node }) => node.id === id);
|
|
@@ -53,4 +54,4 @@ export class FlowEntitiesService {
|
|
|
53
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowEntitiesService, decorators: [{
|
|
54
55
|
type: Injectable
|
|
55
56
|
}] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1lbnRpdGllcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUEwQixRQUFRLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBR3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt6QyxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRWtCLFVBQUssR0FBRyxNQUFNLENBQWMsRUFBRSxFQUFFO1lBQzlDLCtEQUErRDtZQUMvRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3pELENBQUMsQ0FBQTtRQUVjLFVBQUssR0FBRyxNQUFNLENBQWMsRUFBRSxFQUFFO1lBQzlDLCtEQUErRDtZQUMvRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3pELENBQUMsQ0FBQTtRQUVjLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUUxQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRyxDQUFDLENBQUMsQ0FBQTtRQUM3RixDQUFDLENBQUMsQ0FBQTtRQUVjLGVBQVUsR0FBRyxNQUFNLENBQWtCLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFFN0QsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUE7WUFFNUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUU7b0JBQ3pCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7b0JBQzNELFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO2lCQUMzQztnQkFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDdkIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtvQkFDekQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7aUJBQ3pDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7WUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFBO1lBQzFELElBQUksZ0JBQWdCLEVBQUU7Z0JBQ3BCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQTtnQkFDdkQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTthQUN2QztZQUVELE9BQU8sVUFBVSxDQUFBO1FBQ25CLENBQUMsQ0FBQyxDQUFBO1FBRUssYUFBUSxHQUF5QixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckQsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFO1NBQ2hCLENBQUMsQ0FBQTtRQUVLLFlBQU8sR0FBd0MsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0tBU25FO0lBUFEsT0FBTyxDQUFJLEVBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQTZCLENBQUE7SUFDcEYsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUMvQyxDQUFDOytHQXhEVSxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFNpZ25hbCwgV3JpdGFibGVTaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvY29ubmVjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBNYXJrZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL21hcmtlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaGFzaENvZGUgfSBmcm9tICcuLi91dGlscy9oYXNoJztcbmltcG9ydCB7IEZsb3dFbnRpdHkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Zsb3ctZW50aXR5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBNaW5pbWFwTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbWluaW1hcC5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93RW50aXRpZXNTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IG5vZGVzID0gc2lnbmFsPE5vZGVNb2RlbFtdPihbXSwge1xuICAgIC8vIGVtcHR5IGFycmF5cyBjb25zaWRlcmVkIGVxdWFsLCBvdGhlciBhcnJheXMgbWF5IG5vdCBiZSBlcXVhbFxuICAgIGVxdWFsOiAoYSwgYikgPT4gIWEubGVuZ3RoICYmICFiLmxlbmd0aCA/IHRydWUgOiBhID09PSBiXG4gIH0pXG5cbiAgcHVibGljIHJlYWRvbmx5IGVkZ2VzID0gc2lnbmFsPEVkZ2VNb2RlbFtdPihbXSwge1xuICAgIC8vIGVtcHR5IGFycmF5cyBjb25zaWRlcmVkIGVxdWFsLCBvdGhlciBhcnJheXMgbWF5IG5vdCBiZSBlcXVhbFxuICAgIGVxdWFsOiAoYSwgYikgPT4gIWEubGVuZ3RoICYmICFiLmxlbmd0aCA/IHRydWUgOiBhID09PSBiXG4gIH0pXG5cbiAgcHVibGljIHJlYWRvbmx5IHZhbGlkRWRnZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgbm9kZXMgPSB0aGlzLm5vZGVzKClcblxuICAgIHJldHVybiB0aGlzLmVkZ2VzKCkuZmlsdGVyKGUgPT4gbm9kZXMuaW5jbHVkZXMoZS5zb3VyY2UoKSEpICYmIG5vZGVzLmluY2x1ZGVzKGUudGFyZ2V0KCkhKSlcbiAgfSlcblxuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbiA9IHNpZ25hbDxDb25uZWN0aW9uTW9kZWw+KG5ldyBDb25uZWN0aW9uTW9kZWwoe30pKVxuXG4gIHB1YmxpYyByZWFkb25seSBtYXJrZXJzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1hcmtlcnNNYXAgPSBuZXcgTWFwPG51bWJlciwgTWFya2VyPigpXG5cbiAgICB0aGlzLnZhbGlkRWRnZXMoKS5mb3JFYWNoKGUgPT4ge1xuICAgICAgaWYgKGUuZWRnZS5tYXJrZXJzPy5zdGFydCkge1xuICAgICAgICBjb25zdCBoYXNoID0gaGFzaENvZGUoSlNPTi5zdHJpbmdpZnkoZS5lZGdlLm1hcmtlcnMuc3RhcnQpKVxuICAgICAgICBtYXJrZXJzTWFwLnNldChoYXNoLCBlLmVkZ2UubWFya2Vycy5zdGFydClcbiAgICAgIH1cblxuICAgICAgaWYgKGUuZWRnZS5tYXJrZXJzPy5lbmQpIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IGhhc2hDb2RlKEpTT04uc3RyaW5naWZ5KGUuZWRnZS5tYXJrZXJzLmVuZCkpXG4gICAgICAgIG1hcmtlcnNNYXAuc2V0KGhhc2gsIGUuZWRnZS5tYXJrZXJzLmVuZClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgY29uc3QgY29ubmVjdGlvbk1hcmtlciA9IHRoaXMuY29ubmVjdGlvbigpLnNldHRpbmdzLm1hcmtlclxuICAgIGlmIChjb25uZWN0aW9uTWFya2VyKSB7XG4gICAgICBjb25zdCBoYXNoID0gaGFzaENvZGUoSlNPTi5zdHJpbmdpZnkoY29ubmVjdGlvbk1hcmtlcikpXG4gICAgICBtYXJrZXJzTWFwLnNldChoYXNoLCBjb25uZWN0aW9uTWFya2VyKVxuICAgIH1cblxuICAgIHJldHVybiBtYXJrZXJzTWFwXG4gIH0pXG5cbiAgcHVibGljIGVudGl0aWVzOiBTaWduYWw8Rmxvd0VudGl0eVtdPiA9IGNvbXB1dGVkKCgpID0+IFtcbiAgICAuLi50aGlzLm5vZGVzKCksXG4gICAgLi4udGhpcy5lZGdlcygpXG4gIF0pXG5cbiAgcHVibGljIG1pbmltYXA6IFdyaXRhYmxlU2lnbmFsPE1pbmltYXBNb2RlbCB8IG51bGw+ID0gc2lnbmFsKG51bGwpXG5cbiAgcHVibGljIGdldE5vZGU8VD4oaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm5vZGVzKCkuZmluZCgoeyBub2RlIH0pID0+IG5vZGUuaWQgPT09IGlkKSBhcyBOb2RlTW9kZWw8VD4gfCB1bmRlZmluZWRcbiAgfVxuXG4gIHB1YmxpYyBnZXREZXRhY2hlZEVkZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLmVkZ2VzKCkuZmlsdGVyKGUgPT4gZS5kZXRhY2hlZCgpKVxuICB9XG59XG4iXX0=
|
|
@@ -23,6 +23,7 @@ export class FlowSettingsService {
|
|
|
23
23
|
this.computedFlowHeight = signal(0);
|
|
24
24
|
this.minZoom = signal(0.5);
|
|
25
25
|
this.maxZoom = signal(3);
|
|
26
|
+
this.background = signal({ type: 'solid', color: '#fff' });
|
|
26
27
|
}
|
|
27
28
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
29
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowSettingsService }); }
|
|
@@ -30,4 +31,4 @@ export class FlowSettingsService {
|
|
|
30
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowSettingsService, decorators: [{
|
|
31
32
|
type: Injectable
|
|
32
33
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3NlcnZpY2VzL2Zsb3ctc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFrQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS25FLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFUyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFeEM7Ozs7V0FJRztRQUNJLG9CQUFlLEdBQW9DLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFFckc7O1dBRUc7UUFDSSxTQUFJLEdBQThDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBRTNFOztXQUVHO1FBQ0ksc0JBQWlCLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXBDOztXQUVHO1FBQ0ksdUJBQWtCLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTlCLFlBQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFckIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUVuQixlQUFVLEdBQUcsTUFBTSxDQUFhLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtLQUN6RTsrR0E5QlksbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBXcml0YWJsZVNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIYW5kbGVQb3NpdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2hhbmRsZS1wb3NpdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhY2tncm91bmQgfSBmcm9tICcuLi90eXBlcy9iYWNrZ3JvdW5kLnR5cGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd1NldHRpbmdzU2VydmljZSB7XG4gIHB1YmxpYyBlbnRpdGllc1NlbGVjdGFibGUgPSBzaWduYWwodHJ1ZSlcblxuICAvKipcbiAgICogR2xvYmFsIHNldHRpbmcgd2l0aCBoYW5kbGUgcG9zaXRpb25zLiBOb2RlcyBkZXJpdmUgdGhpcyB2YWx1ZVxuICAgKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIGhhbmRsZVBvc2l0aW9uczogV3JpdGFibGVTaWduYWw8SGFuZGxlUG9zaXRpb25zPiA9IHNpZ25hbCh7IHNvdXJjZTogJ3JpZ2h0JywgdGFyZ2V0OiAnbGVmdCcgfSlcblxuICAvKipcbiAgICogQHNlZSB7VmZsb3dDb21wb25lbnQudmlld31cbiAgICovXG4gIHB1YmxpYyB2aWV3OiBXcml0YWJsZVNpZ25hbDxbbnVtYmVyLCBudW1iZXJdIHwgJ2F1dG8nPiA9IHNpZ25hbChbNDAwLCA0MDBdKVxuXG4gIC8qKlxuICAgKiBTZXQgYmFzZWQgb24gdmlldyBwcm9wZXJ0eS4gTWF5IGNoYW5nZSBpZiB2aWV3IGlzICdhdXRvJ1xuICAgKi9cbiAgcHVibGljIGNvbXB1dGVkRmxvd1dpZHRoID0gc2lnbmFsKDApXG5cbiAgLyoqXG4gICAqIFNldCBiYXNlZCBvbiB2aWV3IHByb3BlcnR5LiBNYXkgY2hhbmdlIGlmIHZpZXcgaXMgJ2F1dG8nXG4gICAqL1xuICBwdWJsaWMgY29tcHV0ZWRGbG93SGVpZ2h0ID0gc2lnbmFsKDApXG5cbiAgcHVibGljIG1pblpvb20gPSBzaWduYWwoMC41KVxuXG4gIHB1YmxpYyBtYXhab29tID0gc2lnbmFsKDMpXG5cbiAgcHVibGljIGJhY2tncm91bmQgPSBzaWduYWw8QmFja2dyb3VuZD4oeyB0eXBlOiAnc29saWQnLCBjb2xvcjogJyNmZmYnIH0pXG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export function transformBackground(background) {
|
|
2
|
+
return typeof background === 'string'
|
|
3
|
+
? { type: 'solid', color: background }
|
|
4
|
+
: background;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLWJhY2tncm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvdXRpbHMvdHJhbnNmb3JtLWJhY2tncm91bmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFVBQStCO0lBQ2pFLE9BQU8sT0FBTyxVQUFVLEtBQUssUUFBUTtRQUNuQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7UUFDdEMsQ0FBQyxDQUFDLFVBQVUsQ0FBQTtBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFja2dyb3VuZCB9IGZyb20gXCIuLi90eXBlcy9iYWNrZ3JvdW5kLnR5cGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUJhY2tncm91bmQoYmFja2dyb3VuZDogQmFja2dyb3VuZCB8IHN0cmluZyk6IEJhY2tncm91bmQge1xuICByZXR1cm4gdHlwZW9mIGJhY2tncm91bmQgPT09ICdzdHJpbmcnXG4gICAgPyB7IHR5cGU6ICdzb2xpZCcsIGNvbG9yOiBiYWNrZ3JvdW5kIH1cbiAgICA6IGJhY2tncm91bmRcbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { KeyValuePipe, NgComponentOutlet, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { VflowComponent } from './components/vflow/vflow.component';
|
|
4
4
|
import { NodeComponent } from './components/node/node.component';
|
|
@@ -19,10 +19,13 @@ import { RootPointerDirective } from './directives/root-pointer.directive';
|
|
|
19
19
|
import { BackgroundComponent } from './components/background/background.component';
|
|
20
20
|
import { FlowSizeControllerDirective } from './directives/flow-size-controller.directive';
|
|
21
21
|
import { ResizableComponent } from './public-components/resizable/resizable.component';
|
|
22
|
+
import { MiniMapComponent } from './public-components/minimap/minimap.component';
|
|
23
|
+
import { DefaultNodeComponent } from './components/default-node/default-node.component';
|
|
22
24
|
import * as i0 from "@angular/core";
|
|
23
25
|
const components = [
|
|
24
26
|
VflowComponent,
|
|
25
27
|
NodeComponent,
|
|
28
|
+
DefaultNodeComponent,
|
|
26
29
|
EdgeComponent,
|
|
27
30
|
EdgeLabelComponent,
|
|
28
31
|
ConnectionComponent,
|
|
@@ -30,6 +33,7 @@ const components = [
|
|
|
30
33
|
DefsComponent,
|
|
31
34
|
BackgroundComponent,
|
|
32
35
|
ResizableComponent,
|
|
36
|
+
MiniMapComponent
|
|
33
37
|
];
|
|
34
38
|
const directives = [
|
|
35
39
|
SpacePointContextDirective,
|
|
@@ -54,13 +58,15 @@ export class VflowModule {
|
|
|
54
58
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VflowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
55
59
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: VflowModule, declarations: [VflowComponent,
|
|
56
60
|
NodeComponent,
|
|
61
|
+
DefaultNodeComponent,
|
|
57
62
|
EdgeComponent,
|
|
58
63
|
EdgeLabelComponent,
|
|
59
64
|
ConnectionComponent,
|
|
60
65
|
HandleComponent,
|
|
61
66
|
DefsComponent,
|
|
62
67
|
BackgroundComponent,
|
|
63
|
-
ResizableComponent,
|
|
68
|
+
ResizableComponent,
|
|
69
|
+
MiniMapComponent, SpacePointContextDirective,
|
|
64
70
|
MapContextDirective,
|
|
65
71
|
RootSvgReferenceDirective,
|
|
66
72
|
RootSvgContextDirective,
|
|
@@ -73,29 +79,31 @@ export class VflowModule {
|
|
|
73
79
|
EdgeLabelHtmlTemplateDirective,
|
|
74
80
|
EdgeTemplateDirective,
|
|
75
81
|
ConnectionTemplateDirective,
|
|
76
|
-
HandleTemplateDirective], imports: [
|
|
82
|
+
HandleTemplateDirective], imports: [NgIf, NgFor, NgTemplateOutlet, NgComponentOutlet, KeyValuePipe], exports: [VflowComponent,
|
|
77
83
|
HandleComponent,
|
|
78
84
|
ResizableComponent,
|
|
79
|
-
SelectableDirective,
|
|
85
|
+
SelectableDirective,
|
|
86
|
+
MiniMapComponent, NodeHtmlTemplateDirective,
|
|
80
87
|
GroupNodeTemplateDirective,
|
|
81
88
|
EdgeLabelHtmlTemplateDirective,
|
|
82
89
|
EdgeTemplateDirective,
|
|
83
90
|
ConnectionTemplateDirective,
|
|
84
91
|
HandleTemplateDirective] }); }
|
|
85
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VflowModule
|
|
92
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VflowModule }); }
|
|
86
93
|
}
|
|
87
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VflowModule, decorators: [{
|
|
88
95
|
type: NgModule,
|
|
89
96
|
args: [{
|
|
90
|
-
imports: [
|
|
97
|
+
imports: [NgIf, NgFor, NgTemplateOutlet, NgComponentOutlet, KeyValuePipe],
|
|
91
98
|
exports: [
|
|
92
99
|
VflowComponent,
|
|
93
100
|
HandleComponent,
|
|
94
101
|
ResizableComponent,
|
|
95
102
|
SelectableDirective,
|
|
103
|
+
MiniMapComponent,
|
|
96
104
|
...templateDirectives
|
|
97
105
|
],
|
|
98
106
|
declarations: [...components, ...directives, ...templateDirectives],
|
|
99
107
|
}]
|
|
100
108
|
}] });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmZsb3cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3ZmbG93Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JOLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7O0FBRXhGLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLGNBQWM7SUFDZCxhQUFhO0lBQ2Isb0JBQW9CO0lBQ3BCLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixnQkFBZ0I7Q0FDakIsQ0FBQTtBQUVELE1BQU0sVUFBVSxHQUFHO0lBQ2pCLDBCQUEwQjtJQUMxQixtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLHVCQUF1QjtJQUN2Qiw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsMkJBQTJCO0NBQzVCLENBQUE7QUFFRCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLHlCQUF5QjtJQUN6QiwwQkFBMEI7SUFDMUIsOEJBQThCO0lBQzlCLHFCQUFxQjtJQUNyQiwyQkFBMkI7SUFDM0IsdUJBQXVCO0NBQ3hCLENBQUE7QUFjRCxNQUFNLE9BQU8sV0FBVzsrR0FBWCxXQUFXO2dIQUFYLFdBQVcsaUJBOUN0QixjQUFjO1lBQ2QsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQixhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsZ0JBQWdCLEVBSWhCLDBCQUEwQjtZQUMxQixtQkFBbUI7WUFDbkIseUJBQXlCO1lBQ3pCLHVCQUF1QjtZQUN2Qiw2QkFBNkI7WUFDN0IsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsMkJBQTJCLEVBSTNCLHlCQUF5QjtZQUN6QiwwQkFBMEI7WUFDMUIsOEJBQThCO1lBQzlCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsdUJBQXVCLGFBSWIsSUFBSSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLGFBRXRFLGNBQWM7WUFDZCxlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixnQkFBZ0IsRUFmbEIseUJBQXlCO1lBQ3pCLDBCQUEwQjtZQUMxQiw4QkFBOEI7WUFDOUIscUJBQXFCO1lBQ3JCLDJCQUEyQjtZQUMzQix1QkFBdUI7Z0hBZVosV0FBVzs7NEZBQVgsV0FBVztrQkFadkIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQztvQkFDekUsT0FBTyxFQUFFO3dCQUNQLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixHQUFHLGtCQUFrQjtxQkFDdEI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlWYWx1ZVBpcGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ0ZvciwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmZsb3dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmZsb3cvdmZsb3cuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXBDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hcC1jb250ZXh0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VkZ2UvZWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRnZUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VkZ2UtbGFiZWwvZWRnZS1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblRlbXBsYXRlRGlyZWN0aXZlLCBFZGdlTGFiZWxIdG1sVGVtcGxhdGVEaXJlY3RpdmUsIEVkZ2VUZW1wbGF0ZURpcmVjdGl2ZSwgR3JvdXBOb2RlVGVtcGxhdGVEaXJlY3RpdmUsIEhhbmRsZVRlbXBsYXRlRGlyZWN0aXZlLCBOb2RlSHRtbFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BhY2VQb2ludENvbnRleHREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc3BhY2UtcG9pbnQtY29udGV4dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUm9vdFN2Z1JlZmVyZW5jZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZWZlcmVuY2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJvb3RTdmdDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Jvb3Qtc3ZnLWNvbnRleHQuZGlyZWN0aXZlJztcbmltcG9ydCB7IERlZnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGVmcy9kZWZzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIYW5kbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGFuZGxlL2hhbmRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGFuZGxlU2l6ZUNvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaGFuZGxlLXNpemUtY29udHJvbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2VsZWN0YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zZWxlY3RhYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb2ludGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BvaW50ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJvb3RQb2ludGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Jvb3QtcG9pbnRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFja2dyb3VuZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYWNrZ3JvdW5kL2JhY2tncm91bmQuY29tcG9uZW50JztcbmltcG9ydCB7IEZsb3dTaXplQ29udHJvbGxlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mbG93LXNpemUtY29udHJvbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmVzaXphYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9wdWJsaWMtY29tcG9uZW50cy9yZXNpemFibGUvcmVzaXphYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaW5pTWFwQ29tcG9uZW50IH0gZnJvbSAnLi9wdWJsaWMtY29tcG9uZW50cy9taW5pbWFwL21pbmltYXAuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RlZmF1bHQtbm9kZS9kZWZhdWx0LW5vZGUuY29tcG9uZW50JztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgVmZsb3dDb21wb25lbnQsXG4gIE5vZGVDb21wb25lbnQsXG4gIERlZmF1bHROb2RlQ29tcG9uZW50LFxuICBFZGdlQ29tcG9uZW50LFxuICBFZGdlTGFiZWxDb21wb25lbnQsXG4gIENvbm5lY3Rpb25Db21wb25lbnQsXG4gIEhhbmRsZUNvbXBvbmVudCxcbiAgRGVmc0NvbXBvbmVudCxcbiAgQmFja2dyb3VuZENvbXBvbmVudCxcbiAgUmVzaXphYmxlQ29tcG9uZW50LFxuICBNaW5pTWFwQ29tcG9uZW50XG5dXG5cbmNvbnN0IGRpcmVjdGl2ZXMgPSBbXG4gIFNwYWNlUG9pbnRDb250ZXh0RGlyZWN0aXZlLFxuICBNYXBDb250ZXh0RGlyZWN0aXZlLFxuICBSb290U3ZnUmVmZXJlbmNlRGlyZWN0aXZlLFxuICBSb290U3ZnQ29udGV4dERpcmVjdGl2ZSxcbiAgSGFuZGxlU2l6ZUNvbnRyb2xsZXJEaXJlY3RpdmUsXG4gIFNlbGVjdGFibGVEaXJlY3RpdmUsXG4gIFBvaW50ZXJEaXJlY3RpdmUsXG4gIFJvb3RQb2ludGVyRGlyZWN0aXZlLFxuICBGbG93U2l6ZUNvbnRyb2xsZXJEaXJlY3RpdmUsXG5dXG5cbmNvbnN0IHRlbXBsYXRlRGlyZWN0aXZlcyA9IFtcbiAgTm9kZUh0bWxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgR3JvdXBOb2RlVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEVkZ2VMYWJlbEh0bWxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgRWRnZVRlbXBsYXRlRGlyZWN0aXZlLFxuICBDb25uZWN0aW9uVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEhhbmRsZVRlbXBsYXRlRGlyZWN0aXZlXG5dXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtOZ0lmLCBOZ0ZvciwgTmdUZW1wbGF0ZU91dGxldCwgTmdDb21wb25lbnRPdXRsZXQsIEtleVZhbHVlUGlwZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBWZmxvd0NvbXBvbmVudCxcbiAgICBIYW5kbGVDb21wb25lbnQsXG4gICAgUmVzaXphYmxlQ29tcG9uZW50LFxuICAgIFNlbGVjdGFibGVEaXJlY3RpdmUsXG4gICAgTWluaU1hcENvbXBvbmVudCxcbiAgICAuLi50ZW1wbGF0ZURpcmVjdGl2ZXNcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbLi4uY29tcG9uZW50cywgLi4uZGlyZWN0aXZlcywgLi4udGVtcGxhdGVEaXJlY3RpdmVzXSxcbn0pXG5leHBvcnQgY2xhc3MgVmZsb3dNb2R1bGUgeyB9XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -26,9 +26,10 @@ export * from './lib/vflow/components/handle/handle.component';
|
|
|
26
26
|
export * from './lib/vflow/public-components/custom-node/custom-node.component';
|
|
27
27
|
export * from './lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component';
|
|
28
28
|
export * from './lib/vflow/public-components/resizable/resizable.component';
|
|
29
|
+
export * from './lib/vflow/public-components/minimap/minimap.component';
|
|
29
30
|
// Directives
|
|
30
31
|
export * from './lib/vflow/directives/template.directive';
|
|
31
32
|
export * from './lib/vflow/directives/connection-controller.directive';
|
|
32
33
|
export * from './lib/vflow/directives/changes-controller.directive';
|
|
33
34
|
export * from './lib/vflow/directives/selectable.directive';
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsYUFBYTtBQUNiLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHlDQUF5QyxDQUFDO0FBRXhELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLCtDQUErQyxDQUFDO0FBRTlELFFBQVE7QUFDUixjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxhQUFhO0FBQ2IsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxpRkFBaUYsQ0FBQztBQUNoRyxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMseURBQXlELENBQUE7QUFFdkUsYUFBYTtBQUNiLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsNkNBQTZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBNb2R1bGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy92Zmxvdy5tb2R1bGUnO1xuXG4vLyBJbnRlcmZhY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL25vZGUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvcG9pbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvZWRnZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9lZGdlLWxhYmVsLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL2Nvbm5lY3Rpb24uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvY29ubmVjdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9jb25uZWN0aW9uLXNldHRpbmdzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL2hhbmRsZS1wb3NpdGlvbnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvbWFya2VyLmludGVyZmFjZSc7XG5leHBvcnQgeyBWaWV3cG9ydFN0YXRlIH0gZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy92aWV3cG9ydC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9jb21wb25lbnQtbm9kZS1ldmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9maXQtdmlldy1vcHRpb25zLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL29wdGltaXphdGlvbi5pbnRlcmZhY2UnO1xuXG4vLyBUeXBlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvdHlwZXMvbm9kZS1jaGFuZ2UudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy90eXBlcy9lZGdlLWNoYW5nZS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L3R5cGVzL3Bvc2l0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvdHlwZXMvYmFja2dyb3VuZC50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L3R5cGVzL2Nvbm5lY3Rpb24tbW9kZS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L3R5cGVzL2tleWJvYXJkLWFjdGlvbi50eXBlJztcblxuLy8gQ29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvY29tcG9uZW50cy92Zmxvdy92Zmxvdy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvY29tcG9uZW50cy9oYW5kbGUvaGFuZGxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9jdXN0b20tbm9kZS9jdXN0b20tbm9kZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvcHVibGljLWNvbXBvbmVudHMvY3VzdG9tLWR5bmFtaWMtbm9kZS9jdXN0b20tZHluYW1pYy1ub2RlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9yZXNpemFibGUvcmVzaXphYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9taW5pbWFwL21pbmltYXAuY29tcG9uZW50J1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9kaXJlY3RpdmVzL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9kaXJlY3RpdmVzL2Nvbm5lY3Rpb24tY29udHJvbGxlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvZGlyZWN0aXZlcy9jaGFuZ2VzLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS5kaXJlY3RpdmUnO1xuIl19
|