diff --git a/src/app/demo_page/demo_datasets/edge_marker_styles.ts b/src/app/demo_page/demo_datasets/edge_marker_styles.ts
index 35c4b47..40992cc 100644
--- a/src/app/demo_page/demo_datasets/edge_marker_styles.ts
+++ b/src/app/demo_page/demo_datasets/edge_marker_styles.ts
@@ -50,7 +50,6 @@ export const fakeGraph: GraphSkeleton = {
type: 'execution',
next: [{
edgeOpts: {
- // NOTE: fromMarkerStyle = 'arrow' is the same as 'circle'.
fromMarkerStyle: 'arrow',
toMarkerStyle: 'arrow',
},
diff --git a/src/app/demo_page/scuba_goldens/demo_page/chrome-linux/edge-marker-styles.png b/src/app/demo_page/scuba_goldens/demo_page/chrome-linux/edge-marker-styles.png
index c37d19c..0af11be 100644
Binary files a/src/app/demo_page/scuba_goldens/demo_page/chrome-linux/edge-marker-styles.png and b/src/app/demo_page/scuba_goldens/demo_page/chrome-linux/edge-marker-styles.png differ
diff --git a/src/app/directed_acyclic_graph_raw.ng.html b/src/app/directed_acyclic_graph_raw.ng.html
index d8ae2d9..499402b 100644
--- a/src/app/directed_acyclic_graph_raw.ng.html
+++ b/src/app/directed_acyclic_graph_raw.ng.html
@@ -39,11 +39,31 @@
/>
+
+
+
+
+
@@ -71,7 +91,7 @@
s.replace(/[^\w]/g, '-'));
+ return `${this.path.join('-')}_arrow_${to}_${from}`;
+ }
+
+ getEdgeMarkerStartId(edge: DagEdge|undefined): string|undefined {
+ const markerStyle = edge?.fromMarkerStyle || this.theme.edgeFromMarkerStyle;
+ if (!edge || !edge.points || markerStyle === 'circle' ||
+ markerStyle === 'hidden') {
+ return undefined;
+ }
+ return `url(#${this.getFromArrowMarkerId(edge)})`;
+ }
+
getControlPointsForBezierCurve(start: Point, end: Point): Point[] {
if (this.layout.rankDirection === 'LR' ||
this.layout.rankDirection === 'RL') {
diff --git a/src/app/node_spec.ts b/src/app/node_spec.ts
index 11ba83a..355ad2d 100644
--- a/src/app/node_spec.ts
+++ b/src/app/node_spec.ts
@@ -431,6 +431,8 @@ export interface DagEdge {
* this edge
*/
weight?: number;
+ /** The number of ranks to keep between the source and target of the edge. */
+ minlen?: number;
}
/**