import { w as ln, c as j } from "./transform-QfIdy88w.js";
import { Y as an, $ as F, a0 as q, a1 as rn, a2 as y, a3 as on, a4 as J, a5 as _, a6 as un, a7 as t, a8 as tn, a9 as sn, aa as fn } from "./mermaid.core-CYBWUA0z.js";
function cn(l) {
  return l.innerRadius;
}
function yn(l) {
  return l.outerRadius;
}
function gn(l) {
  return l.startAngle;
}
function mn(l) {
  return l.endAngle;
}
function pn(l) {
  return l && l.padAngle;
}
function dn(l, h, I, D, v, A, z, a) {
  var O = I - l, i = D - h, n = z - v, m = a - A, r = m * O - n * i;
  if (!(r * r < y))
    return r = (n * (h - A) - m * (l - v)) / r, [l + r * O, h + r * i];
}
function U(l, h, I, D, v, A, z) {
  var a = l - I, O = h - D, i = (z ? A : -A) / J(a * a + O * O), n = i * O, m = -i * a, r = l + n, s = h + m, f = I + n, c = D + m, B = (r + f) / 2, o = (s + c) / 2, p = f - r, g = c - s, R = p * p + g * g, T = v - A, P = r * c - f * s, S = (g < 0 ? -1 : 1) * J(tn(0, T * T * R - P * P)), Y = (P * g - p * S) / R, $ = (-P * p - g * S) / R, w = (P * g + p * S) / R, d = (-P * p + g * S) / R, x = Y - B, e = $ - o, u = w - B, C = d - o;
  return x * x + e * e > u * u + C * C && (Y = w, $ = d), {
    cx: Y,
    cy: $,
    x01: -n,
    y01: -m,
    x11: Y * (v / T - 1),
    y11: $ * (v / T - 1)
  };
}
function vn() {
  var l = cn, h = yn, I = j(0), D = null, v = gn, A = mn, z = pn, a = null, O = ln(i);
  function i() {
    var n, m, r = +l.apply(this, arguments), s = +h.apply(this, arguments), f = v.apply(this, arguments) - rn, c = A.apply(this, arguments) - rn, B = un(c - f), o = c > f;
    if (a || (a = n = O()), s < r && (m = s, s = r, r = m), !(s > y)) a.moveTo(0, 0);
    else if (B > on - y)
      a.moveTo(s * F(f), s * q(f)), a.arc(0, 0, s, f, c, !o), r > y && (a.moveTo(r * F(c), r * q(c)), a.arc(0, 0, r, c, f, o));
    else {
      var p = f, g = c, R = f, T = c, P = B, S = B, Y = z.apply(this, arguments) / 2, $ = Y > y && (D ? +D.apply(this, arguments) : J(r * r + s * s)), w = _(un(s - r) / 2, +I.apply(this, arguments)), d = w, x = w, e, u;
      if ($ > y) {
        var C = sn($ / r * q(Y)), K = sn($ / s * q(Y));
        (P -= C * 2) > y ? (C *= o ? 1 : -1, R += C, T -= C) : (P = 0, R = T = (f + c) / 2), (S -= K * 2) > y ? (K *= o ? 1 : -1, p += K, g -= K) : (S = 0, p = g = (f + c) / 2);
      }
      var G = s * F(p), H = s * q(p), L = r * F(T), M = r * q(T);
      if (w > y) {
        var N = s * F(g), Q = s * q(g), V = r * F(R), W = r * q(R), E;
        if (B < an)
          if (E = dn(G, H, V, W, N, Q, L, M)) {
            var X = G - E[0], Z = H - E[1], k = N - E[0], b = Q - E[1], nn = 1 / q(fn((X * k + Z * b) / (J(X * X + Z * Z) * J(k * k + b * b))) / 2), en = J(E[0] * E[0] + E[1] * E[1]);
            d = _(w, (r - en) / (nn - 1)), x = _(w, (s - en) / (nn + 1));
          } else
            d = x = 0;
      }
      S > y ? x > y ? (e = U(V, W, G, H, s, x, o), u = U(N, Q, L, M, s, x, o), a.moveTo(e.cx + e.x01, e.cy + e.y01), x < w ? a.arc(e.cx, e.cy, x, t(e.y01, e.x01), t(u.y01, u.x01), !o) : (a.arc(e.cx, e.cy, x, t(e.y01, e.x01), t(e.y11, e.x11), !o), a.arc(0, 0, s, t(e.cy + e.y11, e.cx + e.x11), t(u.cy + u.y11, u.cx + u.x11), !o), a.arc(u.cx, u.cy, x, t(u.y11, u.x11), t(u.y01, u.x01), !o))) : (a.moveTo(G, H), a.arc(0, 0, s, p, g, !o)) : a.moveTo(G, H), !(r > y) || !(P > y) ? a.lineTo(L, M) : d > y ? (e = U(L, M, N, Q, r, -d, o), u = U(G, H, V, W, r, -d, o), a.lineTo(e.cx + e.x01, e.cy + e.y01), d < w ? a.arc(e.cx, e.cy, d, t(e.y01, e.x01), t(u.y01, u.x01), !o) : (a.arc(e.cx, e.cy, d, t(e.y01, e.x01), t(e.y11, e.x11), !o), a.arc(0, 0, r, t(e.cy + e.y11, e.cx + e.x11), t(u.cy + u.y11, u.cx + u.x11), o), a.arc(u.cx, u.cy, d, t(u.y11, u.x11), t(u.y01, u.x01), !o))) : a.arc(0, 0, r, T, R, o);
    }
    if (a.closePath(), n) return a = null, n + "" || null;
  }
  return i.centroid = function() {
    var n = (+l.apply(this, arguments) + +h.apply(this, arguments)) / 2, m = (+v.apply(this, arguments) + +A.apply(this, arguments)) / 2 - an / 2;
    return [F(m) * n, q(m) * n];
  }, i.innerRadius = function(n) {
    return arguments.length ? (l = typeof n == "function" ? n : j(+n), i) : l;
  }, i.outerRadius = function(n) {
    return arguments.length ? (h = typeof n == "function" ? n : j(+n), i) : h;
  }, i.cornerRadius = function(n) {
    return arguments.length ? (I = typeof n == "function" ? n : j(+n), i) : I;
  }, i.padRadius = function(n) {
    return arguments.length ? (D = n == null ? null : typeof n == "function" ? n : j(+n), i) : D;
  }, i.startAngle = function(n) {
    return arguments.length ? (v = typeof n == "function" ? n : j(+n), i) : v;
  }, i.endAngle = function(n) {
    return arguments.length ? (A = typeof n == "function" ? n : j(+n), i) : A;
  }, i.padAngle = function(n) {
    return arguments.length ? (z = typeof n == "function" ? n : j(+n), i) : z;
  }, i.context = function(n) {
    return arguments.length ? (a = n ?? null, i) : a;
  }, i;
}
export {
  vn as d
};
