PageSourceSearch

https://www.astrobetter.com/wiki/public/generated/js/vendor_dist/mermaid/dist/stateDiagram-v2-734e0ec8.js

js astrobetter.com collected 2026-10-02 03:38:34 UTC 6,866 bytes, 190 lines download raw bytes

1import { D as H, a as J, S as Q, b as X, c as Z, p as F, d as M, s as I } from "./styles-b6ab520b.js";
2import { G as tt } from "./graph-e9862b7e.js";
3import { l as E, c as g, j as $, A as et, k as ot, f as w } from "./mermaid-5a5980d4.js";
4import { r as st } from "./index-5e3196ce.js";
5import "./layout-2e6f21ea.js";
6import "./clone-06085faa.js";
7import "./edges-16a2be2d.js";
8import "./createText-323577ec.js";
9import "./line-552be4bc.js";
10import "./array-2ff2c7a6.js";
11import "./path-428ebac9.js";
12const h = "rect", C = "rectWithTitle", nt = "start", ct = "end", it = "divider", rt = "roundedWithTitle", lt = "note", at = "noteGroup", _ = "statediagram", dt = "state", Et = `${_}-${dt}`, U = "transition", St = "note", Tt = "note-edge", pt = `${U} ${Tt}`, _t = `${_}-${St}`, ut = "cluster", ft = `${_}-${ut}`, Dt = "cluster-alt", bt = `${_}-${Dt}`, V = "parent", Y = "note", At = "state", N = "----", ht = `${N}${Y}`, v = `${N}${V}`, W = "fill:none", m = "fill: #333", z = "c", j = "text", q = "normal";
13let y = {}, d = 0;
14const yt = function(t) {
15  const n = Object.keys(t);
16  for (const e of n)
17    t[e];
18}, gt = function(t, n) {
19  return n.db.extract(n.db.getRootDocV2()), n.db.getClasses();
20};
21function xt(t) {
22  return t == null ? "" : t.classes ? t.classes.join(" ") : "";
23}
24function R(t = "", n = 0, e = "", c = N) {
25  const i = e !== null && e.length > 0 ? `${c}${e}` : "";
26  return `${At}-${t}${i}-${n}`;
27}
28const A = (t, n, e, c, i, r) => {
29  const o = e.id, u = xt(c[o]);
30  if (o !== "root") {
31    let T = h;
32    e.start === !0 && (T = nt), e.start === !1 && (T = ct), e.type !== H && (T = e.type), y[o] || (y[o] = {
33      id: o,
34      shape: T,
35      description: w.sanitizeText(o, g()),
36      classes: `${u} ${Et}`
37    });
38    const s = y[o];
39    e.description && (Array.isArray(s.description) ? (s.shape = C, s.description.push(e.description)) : s.description.length > 0 ? (s.shape = C, s.description === o ? s.description = [e.description] : s.description = [s.description, e.description]) : (s.shape = h, s.description = e.description), s.description = w.sanitizeTextOrArray(s.description, g())), s.description.length === 1 && s.shape === C && (s.shape = h), !s.type && e.doc && (E.info("Setting cluster for ", o, G(e)), s.type = "group", s.dir = G(e), s.shape = e.type === J ? it : rt, s.classes = s.classes + " " + ft + " " + (r ? bt : ""));
40    const p = {
41      labelStyle: "",
42      shape: s.shape,
43      labelText: s.description,
44      // typeof newNode.description === 'object'
45      //   ? newNode.description[0]
46      //   : newNode.description,
47      classes: s.classes,
48      style: "",
49      //styles.style,
50      id: o,
51      dir: s.dir,
52      domId: R(o, d),
53      type: s.type,
54      padding: 15
55      //getConfig().flowchart.padding
56    };
57    if (p.centerLabel = !0, e.note) {
58      const l = {
59        labelStyle: "",
60        shape: lt,
61        labelText: e.note.text,
62        classes: _t,
63        // useHtmlLabels: false,
64        style: "",
65        // styles.style,
66        id: o + ht + "-" + d,
67        domId: R(o, d, Y),
68        type: s.type,
69        padding: 15
70        //getConfig().flowchart.padding
71      }, a = {
72        labelStyle: "",
73        shape: at,
74        labelText: e.note.text,
75        classes: s.classes,
76        style: "",
77        // styles.style,
78        id: o + v,
79        domId: R(o, d, V),
80        type: "group",
81        padding: 0
82        //getConfig().flowchart.padding
83      };
84      d++;
85      const f = o + v;
86      t.setNode(f, a), t.setNode(l.id, l), t.setNode(o, p), t.setParent(o, f), t.setParent(l.id, f);
87      let S = o, D = l.id;
88      e.note.position === "left of" && (S = l.id, D = o), t.setEdge(S, D, {
89        arrowhead: "none",
90        arrowType: "",
91        style: W,
92        labelStyle: "",
93        classes: pt,
94        arrowheadStyle: m,
95        labelpos: z,
96        labelType: j,
97        thickness: q
98      });
99    } else
100      t.setNode(o, p);
101  }
102  n && n.id !== "root" && (E.trace("Setting node ", o, " to be child of its parent ", n.id), t.setParent(o, n.id)), e.doc && (E.trace("Adding nodes children "), $t(t, e, e.doc, c, i, !r));
103}, $t = (t, n, e, c, i, r) => {
104  E.trace("items", e), e.forEach((o) => {
105    switch (o.stmt) {
106      case X:
107        A(t, n, o, c, i, r);
108        break;
109      case H:
110        A(t, n, o, c, i, r);
111        break;
112      case Q:
113        {
114          A(t, n, o.state1, c, i, r), A(t, n, o.state2, c, i, r);
115          const u = {
116            id: "edge" + d,
117            arrowhead: "normal",
118            arrowTypeEnd: "arrow_barb",
119            style: W,
120            labelStyle: "",
121            label: w.sanitizeText(o.description, g()),
122            arrowheadStyle: m,
123            labelpos: z,
124            labelType: j,
125            thickness: q,
126            classes: U
127          };
128          t.setEdge(o.state1.id, o.state2.id, u, d), d++;
129        }
130        break;
131    }
132  });
133}, G = (t, n = Z) => {
134  let e = n;
135  if (t.doc)
136    for (let c = 0; c < t.doc.length; c++) {
137      const i = t.doc[c];
138      i.stmt === "dir" && (e = i.value);
139    }
140  return e;
141}, Ct = async function(t, n, e, c) {
142  E.info("Drawing state diagram (v2)", n), y = {}, c.db.getDirection();
143  const { securityLevel: i, state: r } = g(), o = r.nodeSpacing || 50, u = r.rankSpacing || 50;
144  E.info(c.db.getRootDocV2()), c.db.extract(c.db.getRootDocV2()), E.info(c.db.getRootDocV2());
145  const T = c.db.getStates(), s = new tt({
146    multigraph: !0,
147    compound: !0
148  }).setGraph({
149    rankdir: G(c.db.getRootDocV2()),
150    nodesep: o,
151    ranksep: u,
152    marginx: 8,
153    marginy: 8
154  }).setDefaultEdgeLabel(function() {
155    return {};
156  });
157  A(s, void 0, c.db.getRootDocV2(), T, c.db, !0);
158  let p;
159  i === "sandbox" && (p = $("#i" + n));
160  const l = i === "sandbox" ? $(p.nodes()[0].contentDocument.body) : $("body"), a = l.select(`[id="${n}"]`), f = l.select("#" + n + " g");
161  await st(f, s, ["barb"], _, n);
162  const S = 8;
163  et.insertTitle(a, "statediagramTitleText", r.titleTopMargin, c.db.getDiagramTitle());
164  const D = a.node().getBBox(), L = D.width + S * 2, P = D.height + S * 2;
165  a.attr("class", _);
166  const O = a.node().getBBox();
167  ot(a, P, L, r.useMaxWidth);
168  const k = `${O.x - S} ${O.y - S} ${L} ${P}`;
169  E.debug(`viewBox ${k}`), a.attr("viewBox", k);
170  const K = document.querySelectorAll('[id="' + n + '"] .edgeLabel .label');
171  for (const x of K) {
172    const B = x.getBBox(), b = document.createElementNS("http://www.w3.org/2000/svg", h);
173    b.setAttribute("rx", 0), b.setAttribute("ry", 0), b.setAttribute("width", B.width), b.setAttribute("height", B.height), x.insertBefore(b, x.firstChild);
174  }
175}, Rt = {
176  setConf: yt,
177  getClasses: gt,
178  draw: Ct
179}, Ut = {
180  parser: F,
181  db: M,
182  renderer: Rt,
183  styles: I,
184  init: (t) => {
185    t.state || (t.state = {}), t.state.arrowMarkerAbsolute = t.arrowMarkerAbsolute, M.clear();
186  }
187};
188export {
189  Ut as diagram
190};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.