@cardenelabs/cdl 0.21.0 → 0.21.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/dist/react.js CHANGED
@@ -1754,8 +1754,12 @@ function resolveEdgeLabelOverlapsWithChainAndPropagate(edges, obstacles, minClea
1754
1754
  for (const { p } of ordered) {
1755
1755
  const axis = p.axis;
1756
1756
  if (!pathShiftIsSafe(e.id, axis, p.sign, amount)) continue;
1757
+ const \u52D5\u304B\u3057\u305F\u5F8C = measurePathLabelGapSegs(
1758
+ simulateShiftedSegments(e, axis === "x" ? p.sign * amount : 0, axis === "y" ? p.sign * amount : 0),
1759
+ label
1760
+ );
1757
1761
  out.push({ target: { kind: "edge-path", id: e.id }, axis, sign: p.sign, amount });
1758
- \u7DDA\u3092\u52D5\u304B\u305B\u305F = true;
1762
+ \u7DDA\u3092\u52D5\u304B\u305B\u305F = \u52D5\u304B\u3057\u305F\u5F8C > gap;
1759
1763
  break;
1760
1764
  }
1761
1765
  if (!\u7DDA\u3092\u52D5\u304B\u305B\u305F) {
@@ -1778,16 +1782,49 @@ function resolveEdgeLabelOverlapsWithChainAndPropagate(edges, obstacles, minClea
1778
1782
  if (\u8FD1\u3044\u70B9) {
1779
1783
  const dx = \u82AF.x - \u8FD1\u3044\u70B9.x;
1780
1784
  const dy = \u82AF.y - \u8FD1\u3044\u70B9.y;
1781
- const axis = Math.abs(dx) >= Math.abs(dy) ? "x" : "y";
1782
- const \u5411\u304D = axis === "x" ? dx : dy;
1783
- const sign = \u5411\u304D >= 0 ? 1 : -1;
1784
- out.push({
1785
- target: { kind: "label", id: label.id },
1786
- axis,
1787
- sign,
1788
- amount: pathLabelClearance - gap + NEAR_MISS_MARGIN,
1789
- chain: false
1785
+ const \u91CF = pathLabelClearance - gap + NEAR_MISS_MARGIN;
1786
+ const \u5019\u88DC = Math.abs(dx) >= Math.abs(dy) ? [
1787
+ { axis: "x", sign: dx >= 0 ? 1 : -1 },
1788
+ { axis: "y", sign: dy >= 0 ? 1 : -1 }
1789
+ ] : [
1790
+ { axis: "y", sign: dy >= 0 ? 1 : -1 },
1791
+ { axis: "x", sign: dx >= 0 ? 1 : -1 }
1792
+ ];
1793
+ const \u52D5\u304B\u3057\u305F\u7BB1 = (axis, sign) => ({
1794
+ ...label,
1795
+ x: label.x + (axis === "x" ? sign * \u91CF : 0),
1796
+ y: label.y + (axis === "y" ? sign * \u91CF : 0)
1790
1797
  });
1798
+ const \u7DDA\u3054\u3068\u306E\u8DDD\u96E2 = (\u7BB1) => {
1799
+ const \u51FA = /* @__PURE__ */ new Map();
1800
+ for (const \u4ED6 of edges) {
1801
+ if (\u4ED6.id === label.id) continue;
1802
+ const segs2 = segmentsExcludingOwnPath(shiftedSegments(\u4ED6.id, \u4ED6.d), ownSegsOf(label.id));
1803
+ if (segs2.length === 0) continue;
1804
+ \u51FA.set(\u4ED6.id, measurePathLabelGapSegs(segs2, \u7BB1));
1805
+ }
1806
+ return \u51FA;
1807
+ };
1808
+ const \u3044\u307E\u306E\u8DDD\u96E2 = \u7DDA\u3054\u3068\u306E\u8DDD\u96E2(label);
1809
+ const \u60AA\u304F\u3059\u308B = (\u7BB1) => {
1810
+ const \u5F8C = \u7DDA\u3054\u3068\u306E\u8DDD\u96E2(\u7BB1);
1811
+ for (const [id, \u524D\u306E\u5024] of \u3044\u307E\u306E\u8DDD\u96E2) {
1812
+ const \u5F8C\u306E\u5024 = \u5F8C.get(id) ?? Infinity;
1813
+ if (\u5F8C\u306E\u5024 < Math.min(\u524D\u306E\u5024, pathLabelClearance)) return true;
1814
+ }
1815
+ return false;
1816
+ };
1817
+ for (const \u5019 of \u5019\u88DC) {
1818
+ if (\u60AA\u304F\u3059\u308B(\u52D5\u304B\u3057\u305F\u7BB1(\u5019.axis, \u5019.sign))) continue;
1819
+ out.push({
1820
+ target: { kind: "label", id: label.id },
1821
+ axis: \u5019.axis,
1822
+ sign: \u5019.sign,
1823
+ amount: \u91CF,
1824
+ chain: false
1825
+ });
1826
+ break;
1827
+ }
1791
1828
  }
1792
1829
  }
1793
1830
  }