@ngroznykh/papirus 0.5.0 → 0.5.2

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.
@@ -46,6 +46,11 @@ export interface ContextMenuOptions {
46
46
  className?: string;
47
47
  minWidth?: number;
48
48
  closeOnSelect?: boolean;
49
+ /**
50
+ * If set, string icons (icon names) are rendered as <img src={iconToUrl(name)}>.
51
+ * Use when the host app uses SVG icons instead of Material Symbols font.
52
+ */
53
+ iconToUrl?: (iconName: string) => string;
49
54
  }
50
55
  export interface ContextMenuEvents {
51
56
  open: [target: ContextMenuTarget];
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuManager.d.ts","sourceRoot":"","sources":["../../src/core/ContextMenuManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextMenuManager.d.ts","sourceRoot":"","sources":["../../src/core/ContextMenuManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,MAAM,eAAe,GACvB,MAAM,GACN;IACE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,KAAK,CAAC;IACnB,aAAa,EAAE,UAAU,CAAC;CAC3B,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,KAAK,CAAC;IACnB,aAAa,EAAE,UAAU,CAAC;CAC3B,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,KAAK,CAAC;IACnB,aAAa,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,eAAe,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,iBAAiB,KAAK,eAAe,EAAE,CAAC,CAAC;AAEzG,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,EAAE,CAAC;CACX;AAYD,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,iBAAiB,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,eAAe,CAAyB;gBAEpC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB;IAOlE,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAItC,OAAO,IAAI,IAAI;IASf,OAAO,CAAC,eAAe;IAyEvB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,SAAS;IAgHjB,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;CAgBvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/core/InteractionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/core/InteractionManager.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export interface EdgeSnapshot {
22
22
  label?: LabelSnapshot;
23
23
  labelOffset: number;
24
24
  labelBackground?: EdgeLabelBackground;
25
+ labelLineGap: boolean;
25
26
  startMarker?: ArrowMarkerConfig;
26
27
  endMarker?: ArrowMarkerConfig;
27
28
  arrowType: ArrowType;
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/core/history/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/core/history/commands.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export interface EdgeOptions {
18
18
  labelOffset?: number;
19
19
  labelBackground?: EdgeLabelBackground;
20
20
  lockAnchors?: boolean;
21
+ labelLineGap?: boolean;
21
22
  }
22
23
  export type { PathStrategy };
23
24
  /**
@@ -34,6 +35,7 @@ export declare class Edge extends Element {
34
35
  private _label?;
35
36
  private _labelOffset;
36
37
  private _labelBackground?;
38
+ private _labelLineGap;
37
39
  private _path;
38
40
  private _pathStrategy;
39
41
  private _autoUpdateEndpoints;
@@ -85,6 +87,11 @@ export declare class Edge extends Element {
85
87
  */
86
88
  get labelBackground(): EdgeLabelBackground | undefined;
87
89
  set labelBackground(value: EdgeLabelBackground | undefined);
90
+ /**
91
+ * Whether to create a gap in the edge line under the label.
92
+ */
93
+ get labelLineGap(): boolean;
94
+ set labelLineGap(value: boolean);
88
95
  /**
89
96
  * Control points for custom paths.
90
97
  * For bezier format: [cp1, cp2, end, cp1, cp2, end, ...]
@@ -1 +1 @@
1
- {"version":3,"file":"Edge.d.ts","sourceRoot":"","sources":["../../src/elements/Edge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Edge.d.ts","sourceRoot":"","sources":["../../src/elements/Edge.ts"],"names":[],"mappings":"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"}
package/dist/papirus.js CHANGED
@@ -337,6 +337,66 @@ function rectUnion(a, b) {
337
337
  const bottom = Math.max(a.y + a.height, b.y + b.height);
338
338
  return { x, y, width: right - x, height: bottom - y };
339
339
  }
340
+ function segmentRectIntersections(segStart, segEnd, rect) {
341
+ const results = [];
342
+ const rectRight = rect.x + rect.width;
343
+ const rectBottom = rect.y + rect.height;
344
+ const edges = [
345
+ // Top
346
+ [
347
+ { x: rect.x, y: rect.y },
348
+ { x: rectRight, y: rect.y }
349
+ ],
350
+ // Right
351
+ [
352
+ { x: rectRight, y: rect.y },
353
+ { x: rectRight, y: rectBottom }
354
+ ],
355
+ // Bottom
356
+ [
357
+ { x: rectRight, y: rectBottom },
358
+ { x: rect.x, y: rectBottom }
359
+ ],
360
+ // Left
361
+ [
362
+ { x: rect.x, y: rectBottom },
363
+ { x: rect.x, y: rect.y }
364
+ ]
365
+ ];
366
+ const cross = (a, b) => a.x * b.y - a.y * b.x;
367
+ const r = { x: segEnd.x - segStart.x, y: segEnd.y - segStart.y };
368
+ const epsilon = 1e-9;
369
+ for (const [q0, q1] of edges) {
370
+ const s = { x: q1.x - q0.x, y: q1.y - q0.y };
371
+ const denom = cross(r, s);
372
+ if (Math.abs(denom) < epsilon) {
373
+ continue;
374
+ }
375
+ const q0MinusP0 = { x: q0.x - segStart.x, y: q0.y - segStart.y };
376
+ const t = cross(q0MinusP0, s) / denom;
377
+ const u = cross(q0MinusP0, r) / denom;
378
+ if (t < -epsilon || t > 1 + epsilon || u < -epsilon || u > 1 + epsilon) {
379
+ continue;
380
+ }
381
+ const clampedT = Math.max(0, Math.min(1, t));
382
+ const point = {
383
+ x: segStart.x + clampedT * r.x,
384
+ y: segStart.y + clampedT * r.y
385
+ };
386
+ let exists = false;
387
+ for (const existing of results) {
388
+ if (Math.abs(existing.point.x - point.x) < 1e-6 && Math.abs(existing.point.y - point.y) < 1e-6) {
389
+ exists = true;
390
+ break;
391
+ }
392
+ }
393
+ if (!exists) {
394
+ results.push({ t: clampedT, point });
395
+ }
396
+ }
397
+ results.sort((a, b) => a.t - b.t);
398
+ return results;
399
+ }
340
400
  function pointInEllipse(point, center, radiusX, radiusY) {
341
401
  const dx = point.x - center.x;
342
402
  const dy = point.y - center.y;
@@ -2984,6 +3044,7 @@ const createEdgeSnapshot = (edge) => {
2984
3044
  label: snapshotLabel(edge.label),
2985
3045
  labelOffset: edge.labelOffset,
2986
3046
  labelBackground: cloneValue(edge.labelBackground),
3047
+ labelLineGap: edge.labelLineGap,
2987
3048
  startMarker: cloneValue(edge.startMarker),
2988
3049
  endMarker: cloneValue(edge.endMarker),
2989
3050
  arrowType: edge.arrowType,
@@ -3117,6 +3178,7 @@ class ChangeEdgePropertiesCommand {
3117
3178
  edge.endMarker = cloneValue(this.after.endMarker);
3118
3179
  edge.labelOffset = this.after.labelOffset;
3119
3180
  edge.labelBackground = cloneValue(this.after.labelBackground);
3181
+ edge.labelLineGap = this.after.labelLineGap;
3120
3182
  edge.style = cloneValue(this.after.style ?? {});
3121
3183
  edge.styleClass = this.after.styleClass;
3122
3184
  edge.label = applyLabelSnapshot(edge.label, this.after.label);
@@ -3133,6 +3195,7 @@ class ChangeEdgePropertiesCommand {
3133
3195
  edge.endMarker = cloneValue(this.before.endMarker);
3134
3196
  edge.labelOffset = this.before.labelOffset;
3135
3197
  edge.labelBackground = cloneValue(this.before.labelBackground);
3198
+ edge.labelLineGap = this.before.labelLineGap;
3136
3199
  edge.style = cloneValue(this.before.style ?? {});
3137
3200
  edge.styleClass = this.before.styleClass;
3138
3201
  edge.label = applyLabelSnapshot(edge.label, this.before.label);
@@ -4136,6 +4199,7 @@ class Edge extends Element {
4136
4199
  this._lockAnchors = options.lockAnchors ?? true;
4137
4200
  this._labelOffset = options.labelOffset ?? 0;
4138
4201
  this._labelBackground = options.labelBackground;
4202
+ this._labelLineGap = options.labelLineGap ?? false;
4139
4203
  if (options.label !== void 0) {
4140
4204
  if (typeof options.label === "string") {
4141
4205
  this._label = new TextLabel({
@@ -4237,6 +4301,18 @@ class Edge extends Element {
4237
4301
  this._labelBackground = value;
4238
4302
  this.markDirty();
4239
4303
  }
4304
+ /**
4305
+ * Whether to create a gap in the edge line under the label.
4306
+ */
4307
+ get labelLineGap() {
4308
+ return this._labelLineGap;
4309
+ }
4310
+ set labelLineGap(value) {
4311
+ if (this._labelLineGap !== value) {
4312
+ this._labelLineGap = value;
4313
+ this.markDirty();
4314
+ }
4315
+ }
4240
4316
  /**
4241
4317
  * Control points for custom paths.
4242
4318
  * For bezier format: [cp1, cp2, end, cp1, cp2, end, ...]
@@ -4516,34 +4592,203 @@ class Edge extends Element {
4516
4592
  if (path.length < 2) return;
4517
4593
  const startOffset = this._startMarker && this._startMarker.type !== "none" ? this.getMarkerLength(this._startMarker) : 0;
4518
4594
  const endOffset = this._endMarker && this._endMarker.type !== "none" ? this.getMarkerLength(this._endMarker) : 0;
4519
- const start = path[0];
4520
- const startNext = path[1];
4521
- const startAngle = Math.atan2(startNext.y - start.y, startNext.x - start.x);
4522
- const shortenedStart = {
4523
- x: start.x + startOffset * Math.cos(startAngle),
4524
- y: start.y + startOffset * Math.sin(startAngle)
4595
+ const buildPolyline = () => {
4596
+ if (this._type === "bezier" && path.length >= 4) {
4597
+ const samples = [];
4598
+ const steps = 20;
4599
+ for (let i = 1; i + 2 < path.length; i += 3) {
4600
+ const p0 = path[i - 1];
4601
+ const p1 = path[i];
4602
+ const p2 = path[i + 1];
4603
+ const p3 = path[i + 2];
4604
+ for (let s = 0; s <= steps; s++) {
4605
+ const t = s / steps;
4606
+ if (samples.length > 0 && t === 0) {
4607
+ continue;
4608
+ }
4609
+ samples.push(bezierPoint(p0, p1, p2, p3, t));
4610
+ }
4611
+ }
4612
+ return samples;
4613
+ }
4614
+ return path.map((p) => ({ ...p }));
4525
4615
  };
4526
- const end = path[path.length - 1];
4527
- const endPrev = path[path.length - 2];
4528
- const endAngle = Math.atan2(end.y - endPrev.y, end.x - endPrev.x);
4529
- const shortenedEnd = {
4530
- x: end.x - endOffset * Math.cos(endAngle),
4531
- y: end.y - endOffset * Math.sin(endAngle)
4616
+ const shortenPolyline = (points, start, end) => {
4617
+ if (points.length < 2) {
4618
+ return points;
4619
+ }
4620
+ const totalLength = () => {
4621
+ let len = 0;
4622
+ for (let i = 1; i < points.length; i++) {
4623
+ len += distance(points[i - 1], points[i]);
4624
+ }
4625
+ return len;
4626
+ };
4627
+ let pts = points;
4628
+ let remainingStart = Math.max(0, start);
4629
+ let remainingEnd = Math.max(0, end);
4630
+ const total = totalLength();
4631
+ if (remainingStart + remainingEnd >= total) {
4632
+ const mid = points[0];
4633
+ return [mid];
4634
+ }
4635
+ if (remainingStart > 0) {
4636
+ const newPoints = [];
4637
+ let accumulated = 0;
4638
+ for (let i = 0; i < pts.length - 1; i++) {
4639
+ const p0 = pts[i];
4640
+ const p1 = pts[i + 1];
4641
+ const segLen = distance(p0, p1);
4642
+ if (accumulated + segLen >= remainingStart) {
4643
+ const t = (remainingStart - accumulated) / segLen;
4644
+ const newStart = {
4645
+ x: p0.x + (p1.x - p0.x) * t,
4646
+ y: p0.y + (p1.y - p0.y) * t
4647
+ };
4648
+ newPoints.push(newStart);
4649
+ for (let j = i + 1; j < pts.length; j++) {
4650
+ newPoints.push({ ...pts[j] });
4651
+ }
4652
+ pts = newPoints;
4653
+ break;
4654
+ }
4655
+ accumulated += segLen;
4656
+ }
4657
+ }
4658
+ if (remainingEnd > 0 && pts.length > 1) {
4659
+ const newPoints = [];
4660
+ let accumulated = 0;
4661
+ for (let i = pts.length - 1; i > 0; i--) {
4662
+ const p0 = pts[i - 1];
4663
+ const p1 = pts[i];
4664
+ const segLen = distance(p0, p1);
4665
+ if (accumulated + segLen >= remainingEnd) {
4666
+ const t = (remainingEnd - accumulated) / segLen;
4667
+ const newEnd = {
4668
+ x: p1.x + (p0.x - p1.x) * t,
4669
+ y: p1.y + (p0.y - p1.y) * t
4670
+ };
4671
+ newPoints.push(newEnd);
4672
+ for (let j = i - 1; j >= 0; j--) {
4673
+ newPoints.push({ ...pts[j] });
4674
+ }
4675
+ pts = newPoints.reverse();
4676
+ break;
4677
+ }
4678
+ accumulated += segLen;
4679
+ }
4680
+ }
4681
+ return pts;
4682
+ };
4683
+ const shouldCreateGap = this._label !== void 0 && this._labelLineGap;
4684
+ if (!shouldCreateGap) {
4685
+ const start = path[0];
4686
+ const startNext = path[1];
4687
+ const startAngle = Math.atan2(startNext.y - start.y, startNext.x - start.x);
4688
+ const shortenedStart = {
4689
+ x: start.x + startOffset * Math.cos(startAngle),
4690
+ y: start.y + startOffset * Math.sin(startAngle)
4691
+ };
4692
+ const end = path[path.length - 1];
4693
+ const endPrev = path[path.length - 2];
4694
+ const endAngle = Math.atan2(end.y - endPrev.y, end.x - endPrev.x);
4695
+ const shortenedEnd = {
4696
+ x: end.x - endOffset * Math.cos(endAngle),
4697
+ y: end.y - endOffset * Math.sin(endAngle)
4698
+ };
4699
+ ctx.beginPath();
4700
+ ctx.moveTo(shortenedStart.x, shortenedStart.y);
4701
+ if (this._type === "bezier" && path.length >= 4) {
4702
+ for (let i = 1; i + 2 < path.length; i += 3) {
4703
+ const cp1 = path[i];
4704
+ const cp2 = path[i + 1];
4705
+ const segmentEnd = i + 2 === path.length - 1 ? shortenedEnd : path[i + 2];
4706
+ ctx.bezierCurveTo(cp1.x, cp1.y, cp2.x, cp2.y, segmentEnd.x, segmentEnd.y);
4707
+ }
4708
+ } else {
4709
+ for (let i = 1; i < path.length - 1; i++) {
4710
+ ctx.lineTo(path[i].x, path[i].y);
4711
+ }
4712
+ ctx.lineTo(shortenedEnd.x, shortenedEnd.y);
4713
+ }
4714
+ ctx.stroke();
4715
+ return;
4716
+ }
4717
+ let polyline = buildPolyline();
4718
+ polyline = shortenPolyline(polyline, startOffset, endOffset);
4719
+ if (polyline.length < 2) {
4720
+ return;
4721
+ }
4722
+ this._label.measure(ctx);
4723
+ const labelCenter = this.getLabelPosition();
4724
+ if (!labelCenter) {
4725
+ return;
4726
+ }
4727
+ const labelWidth = this._label.measuredWidth;
4728
+ const labelHeight = this._label.measuredHeight;
4729
+ const labelRect = {
4730
+ x: labelCenter.x - labelWidth / 2,
4731
+ y: labelCenter.y - labelHeight / 2,
4732
+ width: labelWidth,
4733
+ height: labelHeight
4532
4734
  };
4735
+ const segmentIntersections = [];
4736
+ for (let i = 0; i < polyline.length - 1; i++) {
4737
+ const p0 = polyline[i];
4738
+ const p1 = polyline[i + 1];
4739
+ const intersections = segmentRectIntersections(p0, p1, labelRect);
4740
+ for (const inter of intersections) {
4741
+ segmentIntersections.push({
4742
+ segIndex: i,
4743
+ t: inter.t,
4744
+ point: inter.point
4745
+ });
4746
+ }
4747
+ }
4748
+ if (segmentIntersections.length < 2) {
4749
+ ctx.beginPath();
4750
+ ctx.moveTo(polyline[0].x, polyline[0].y);
4751
+ for (let i = 1; i < polyline.length; i++) {
4752
+ ctx.lineTo(polyline[i].x, polyline[i].y);
4753
+ }
4754
+ ctx.stroke();
4755
+ return;
4756
+ }
4757
+ segmentIntersections.sort((a, b) => {
4758
+ if (a.segIndex === b.segIndex) {
4759
+ return a.t - b.t;
4760
+ }
4761
+ return a.segIndex - b.segIndex;
4762
+ });
4533
4763
  ctx.beginPath();
4534
- ctx.moveTo(shortenedStart.x, shortenedStart.y);
4535
- if (this._type === "bezier" && path.length >= 4) {
4536
- for (let i = 1; i + 2 < path.length; i += 3) {
4537
- const cp1 = path[i];
4538
- const cp2 = path[i + 1];
4539
- const end2 = i + 2 === path.length - 1 ? shortenedEnd : path[i + 2];
4540
- ctx.bezierCurveTo(cp1.x, cp1.y, cp2.x, cp2.y, end2.x, end2.y);
4764
+ ctx.moveTo(polyline[0].x, polyline[0].y);
4765
+ let entered = false;
4766
+ let exited = false;
4767
+ for (let i = 0; i < polyline.length - 1; i++) {
4768
+ const p1 = polyline[i + 1];
4769
+ const currentIntersections = segmentIntersections.filter((it) => it.segIndex === i);
4770
+ if (!entered && currentIntersections.length > 0) {
4771
+ const first = currentIntersections[0];
4772
+ ctx.lineTo(first.point.x, first.point.y);
4773
+ entered = true;
4774
+ const maybeExit = currentIntersections.length > 1 ? currentIntersections[1] : void 0;
4775
+ if (maybeExit) {
4776
+ ctx.moveTo(maybeExit.point.x, maybeExit.point.y);
4777
+ exited = true;
4778
+ ctx.lineTo(p1.x, p1.y);
4779
+ }
4780
+ continue;
4541
4781
  }
4542
- } else {
4543
- for (let i = 1; i < path.length - 1; i++) {
4544
- ctx.lineTo(path[i].x, path[i].y);
4782
+ if (entered && !exited && currentIntersections.length > 0) {
4783
+ const lastOnSegment = currentIntersections[currentIntersections.length - 1];
4784
+ ctx.moveTo(lastOnSegment.point.x, lastOnSegment.point.y);
4785
+ exited = true;
4786
+ ctx.lineTo(p1.x, p1.y);
4787
+ continue;
4788
+ }
4789
+ if (!entered || exited) {
4790
+ ctx.lineTo(p1.x, p1.y);
4545
4791
  }
4546
- ctx.lineTo(shortenedEnd.x, shortenedEnd.y);
4547
4792
  }
4548
4793
  ctx.stroke();
4549
4794
  }
@@ -5770,6 +6015,7 @@ class InteractionManager {
5770
6015
  labelStyleClass: edge.label?.styleClass,
5771
6016
  labelOffset: edge.labelOffset !== 0 ? edge.labelOffset : void 0,
5772
6017
  labelBackground: edge.labelBackground,
6018
+ labelLineGap: edge.labelLineGap ? true : void 0,
5773
6019
  data: Object.keys(edge.data).length > 0 ? edge.data : void 0
5774
6020
  });
5775
6021
  }
@@ -6195,6 +6441,7 @@ class ContextMenuManager extends EventEmitter {
6195
6441
  iconEl.style.alignItems = "center";
6196
6442
  iconEl.style.justifyContent = "center";
6197
6443
  iconEl.style.textAlign = "center";
6444
+ iconEl.style.flexShrink = "0";
6198
6445
  if (!icon) {
6199
6446
  iconEl.textContent = "";
6200
6447
  return iconEl;
@@ -6202,6 +6449,14 @@ class ContextMenuManager extends EventEmitter {
6202
6449
  if (typeof icon === "string") {
6203
6450
  if (this.isSvgString(icon)) {
6204
6451
  iconEl.innerHTML = icon;
6452
+ } else if (this.options.iconToUrl) {
6453
+ const img = document.createElement("img");
6454
+ img.src = this.options.iconToUrl(icon);
6455
+ img.alt = "";
6456
+ img.style.width = "16px";
6457
+ img.style.height = "16px";
6458
+ img.style.objectFit = "contain";
6459
+ iconEl.appendChild(img);
6205
6460
  } else {
6206
6461
  iconEl.classList.add("material-symbols-outlined");
6207
6462
  iconEl.style.fontSize = "16px";
@@ -6211,6 +6466,14 @@ class ContextMenuManager extends EventEmitter {
6211
6466
  }
6212
6467
  if (icon.type === "svg" || icon.type === "html") {
6213
6468
  iconEl.innerHTML = icon.value;
6469
+ } else if (this.options.iconToUrl) {
6470
+ const img = document.createElement("img");
6471
+ img.src = this.options.iconToUrl(icon.value);
6472
+ img.alt = "";
6473
+ img.style.width = "16px";
6474
+ img.style.height = "16px";
6475
+ img.style.objectFit = "contain";
6476
+ iconEl.appendChild(img);
6214
6477
  } else {
6215
6478
  iconEl.classList.add("material-symbols-outlined");
6216
6479
  iconEl.style.fontSize = "16px";
@@ -10555,6 +10818,7 @@ class Serializer {
10555
10818
  labelStyleClass: edge.label?.styleClass,
10556
10819
  labelOffset: edge.labelOffset !== 0 ? edge.labelOffset : void 0,
10557
10820
  labelBackground: edge.labelBackground,
10821
+ labelLineGap: edge.labelLineGap ? true : void 0,
10558
10822
  data: Object.keys(edge.data).length > 0 ? edge.data : void 0
10559
10823
  };
10560
10824
  }
@@ -12030,6 +12294,7 @@ export {
12030
12294
  resetIdCounter,
12031
12295
  resetPortIdCounter,
12032
12296
  rotatePoint,
12297
+ segmentRectIntersections,
12033
12298
  snapPointToGrid,
12034
12299
  snapToGrid
12035
12300
  };