ngx-vflow 2.0.0 → 2.1.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/ngx-vflow.mjs
CHANGED
|
@@ -759,7 +759,7 @@ class DraggableService {
|
|
|
759
759
|
moveNode(model, point) {
|
|
760
760
|
const parent = model.parent();
|
|
761
761
|
// keep node in bounds of parent
|
|
762
|
-
if (parent) {
|
|
762
|
+
if (model.extent() === 'parent' && parent) {
|
|
763
763
|
point.x = Math.min(parent.width() - model.width(), point.x);
|
|
764
764
|
point.x = Math.max(0, point.x);
|
|
765
765
|
point.y = Math.min(parent.height() - model.height(), point.y);
|
|
@@ -1059,6 +1059,7 @@ const NODE_DEFAULTS = {
|
|
|
1059
1059
|
height: 50,
|
|
1060
1060
|
draggable: true,
|
|
1061
1061
|
parentId: null,
|
|
1062
|
+
extent: 'parent',
|
|
1062
1063
|
preview: { style: {} },
|
|
1063
1064
|
selected: false,
|
|
1064
1065
|
color: '#1b262c',
|
|
@@ -1093,10 +1094,11 @@ function createBaseNode(node, useDefaults) {
|
|
|
1093
1094
|
return {
|
|
1094
1095
|
id: node.id,
|
|
1095
1096
|
point: signal(node.point),
|
|
1096
|
-
draggable: signal(node.draggable
|
|
1097
|
-
parentId: signal(node.parentId
|
|
1098
|
-
|
|
1099
|
-
|
|
1097
|
+
draggable: signal(isDefined(node.draggable) ? node.draggable : NODE_DEFAULTS.draggable),
|
|
1098
|
+
parentId: signal(isDefined(node.parentId) ? node.parentId : NODE_DEFAULTS.parentId),
|
|
1099
|
+
extent: signal(isDefined(node.extent) ? node.extent : NODE_DEFAULTS.extent),
|
|
1100
|
+
preview: signal(isDefined(node.preview) ? node.preview : NODE_DEFAULTS.preview),
|
|
1101
|
+
selected: signal(isDefined(node.selected) ? node.selected : NODE_DEFAULTS.selected),
|
|
1100
1102
|
};
|
|
1101
1103
|
}
|
|
1102
1104
|
else {
|
|
@@ -1105,6 +1107,7 @@ function createBaseNode(node, useDefaults) {
|
|
|
1105
1107
|
point: signal(node.point),
|
|
1106
1108
|
draggable: isDefined(node.draggable) ? signal(node.draggable) : undefined,
|
|
1107
1109
|
parentId: isDefined(node.parentId) ? signal(node.parentId) : undefined,
|
|
1110
|
+
extent: isDefined(node.extent) ? signal(node.extent) : undefined,
|
|
1108
1111
|
preview: isDefined(node.preview) ? signal(node.preview) : undefined,
|
|
1109
1112
|
selected: isDefined(node.selected) ? signal(node.selected) : undefined,
|
|
1110
1113
|
};
|
|
@@ -1413,6 +1416,7 @@ class NodeModel {
|
|
|
1413
1416
|
this.renderOrder = signal(0);
|
|
1414
1417
|
this.selected = signal(false);
|
|
1415
1418
|
this.preview = signal({ style: {} });
|
|
1419
|
+
this.extent = signal(NODE_DEFAULTS.extent);
|
|
1416
1420
|
this.globalPoint = computed(() => {
|
|
1417
1421
|
let parent = this.parent();
|
|
1418
1422
|
let x = this.point().x;
|
|
@@ -1499,6 +1503,9 @@ class NodeModel {
|
|
|
1499
1503
|
if (rawNode.selected) {
|
|
1500
1504
|
this.selected = rawNode.selected;
|
|
1501
1505
|
}
|
|
1506
|
+
if (rawNode.extent) {
|
|
1507
|
+
this.extent = rawNode.extent;
|
|
1508
|
+
}
|
|
1502
1509
|
if (rawNode.type === 'default-group' && rawNode.color) {
|
|
1503
1510
|
this.color = rawNode.color;
|
|
1504
1511
|
}
|
|
@@ -1569,18 +1576,18 @@ function createEdge(edge, options = { useDefaults: true }) {
|
|
|
1569
1576
|
if (options.useDefaults) {
|
|
1570
1577
|
return {
|
|
1571
1578
|
id: edge.id,
|
|
1572
|
-
type: edge.type ?? EDGE_DEFAULTS.type,
|
|
1573
1579
|
source: edge.source,
|
|
1574
1580
|
target: edge.target,
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1581
|
+
type: isDefined(edge.type) ? edge.type : EDGE_DEFAULTS.type,
|
|
1582
|
+
sourceHandle: isDefined(edge.sourceHandle) ? edge.sourceHandle : '',
|
|
1583
|
+
targetHandle: isDefined(edge.targetHandle) ? edge.targetHandle : '',
|
|
1584
|
+
curve: signal(isDefined(edge.curve) ? edge.curve : EDGE_DEFAULTS.curve),
|
|
1585
|
+
data: signal(isDefined(edge.data) ? edge.data : EDGE_DEFAULTS.data),
|
|
1586
|
+
edgeLabels: signal(isDefined(edge.edgeLabels) ? edge.edgeLabels : EDGE_DEFAULTS.edgeLabels),
|
|
1587
|
+
markers: signal(isDefined(edge.markers) ? edge.markers : EDGE_DEFAULTS.markers),
|
|
1588
|
+
reconnectable: signal(isDefined(edge.reconnectable) ? edge.reconnectable : EDGE_DEFAULTS.reconnectable),
|
|
1589
|
+
floating: signal(isDefined(edge.floating) ? edge.floating : EDGE_DEFAULTS.floating),
|
|
1590
|
+
selected: signal(isDefined(edge.selected) ? edge.selected : EDGE_DEFAULTS.selected),
|
|
1584
1591
|
};
|
|
1585
1592
|
}
|
|
1586
1593
|
else {
|
|
@@ -4263,8 +4270,16 @@ class AlignmentHelperComponent {
|
|
|
4263
4270
|
.pipe(filter(isNodeDragEndStatus), map((status) => status.payload.node), map((node) => [node, this.intersections()]), tap(([node, intersections]) => {
|
|
4264
4271
|
if (intersections) {
|
|
4265
4272
|
const snapped = { x: intersections.snappedX, y: intersections.snappedY };
|
|
4266
|
-
const
|
|
4267
|
-
|
|
4273
|
+
const parent = node.parent();
|
|
4274
|
+
if (parent) {
|
|
4275
|
+
node.setPoint({
|
|
4276
|
+
x: snapped.x - parent.globalPoint().x,
|
|
4277
|
+
y: snapped.y - parent.globalPoint().y,
|
|
4278
|
+
});
|
|
4279
|
+
}
|
|
4280
|
+
else {
|
|
4281
|
+
node.setPoint(snapped);
|
|
4282
|
+
}
|
|
4268
4283
|
}
|
|
4269
4284
|
}), takeUntilDestroyed())
|
|
4270
4285
|
.subscribe();
|