smart-chat-asp
Version:
smartChat component
192 lines (191 loc) • 6.93 kB
JavaScript
import { p as X, d as B, s as J, D as H, a as Q, S as Z, b as F, c as I } from "./styles-6aaf32cf-18e7fcf4.mjs";
import { G as tt } from "./graph-506000a3.mjs";
import { a1 as E, X as g, a0 as x, aj as et, a2 as ot, a4 as w } from "./lib-abebf4b0.mjs";
import { r as st } from "./index-3862675e-e4df1fd4.mjs";
import "./layout-419b364f.mjs";
import "vue";
import "./clone-50ddce3b.mjs";
import "./edges-e0da2a9e-785d6ef8.mjs";
import "./createText-2e5e7dd3-9711772c.mjs";
import "./line-3d01b1e8.mjs";
import "./array-2ff2c7a6.mjs";
import "./path-428ebac9.mjs";
const h = "rect", C = "rectWithTitle", nt = "start", it = "end", ct = "divider", rt = "roundedWithTitle", at = "note", lt = "noteGroup", _ = "statediagram", dt = "state", Et = `${_}-${dt}`, U = "transition", St = "note", Tt = "note-edge", pt = `${U} ${Tt}`, _t = `${_}-${St}`, ut = "cluster", Dt = `${_}-${ut}`, bt = "cluster-alt", ft = `${_}-${bt}`, V = "parent", Y = "note", At = "state", N = "----", ht = `${N}${Y}`, M = `${N}${V}`, m = "fill:none", W = "fill: #333", z = "c", j = "text", q = "normal";
let y = {}, d = 0;
const yt = function(t) {
const n = Object.keys(t);
for (const e of n)
t[e];
}, gt = function(t, n) {
return n.db.extract(n.db.getRootDocV2()), n.db.getClasses();
};
function $t(t) {
return t == null ? "" : t.classes ? t.classes.join(" ") : "";
}
function R(t = "", n = 0, e = "", i = N) {
const c = e !== null && e.length > 0 ? `${i}${e}` : "";
return `${At}-${t}${c}-${n}`;
}
const A = (t, n, e, i, c, r) => {
const o = e.id, u = $t(i[o]);
if (o !== "root") {
let T = h;
e.start === !0 && (T = nt), e.start === !1 && (T = it), e.type !== H && (T = e.type), y[o] || (y[o] = {
id: o,
shape: T,
description: w.sanitizeText(o, g()),
classes: `${u} ${Et}`
});
const s = y[o];
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 === Q ? ct : rt, s.classes = s.classes + " " + Dt + " " + (r ? ft : ""));
const p = {
labelStyle: "",
shape: s.shape,
labelText: s.description,
// typeof newNode.description === 'object'
// ? newNode.description[0]
// : newNode.description,
classes: s.classes,
style: "",
//styles.style,
id: o,
dir: s.dir,
domId: R(o, d),
type: s.type,
padding: 15
//getConfig().flowchart.padding
};
if (p.centerLabel = !0, e.note) {
const a = {
labelStyle: "",
shape: at,
labelText: e.note.text,
classes: _t,
// useHtmlLabels: false,
style: "",
// styles.style,
id: o + ht + "-" + d,
domId: R(o, d, Y),
type: s.type,
padding: 15
//getConfig().flowchart.padding
}, l = {
labelStyle: "",
shape: lt,
labelText: e.note.text,
classes: s.classes,
style: "",
// styles.style,
id: o + M,
domId: R(o, d, V),
type: "group",
padding: 0
//getConfig().flowchart.padding
};
d++;
const D = o + M;
t.setNode(D, l), t.setNode(a.id, a), t.setNode(o, p), t.setParent(o, D), t.setParent(a.id, D);
let S = o, b = a.id;
e.note.position === "left of" && (S = a.id, b = o), t.setEdge(S, b, {
arrowhead: "none",
arrowType: "",
style: m,
labelStyle: "",
classes: pt,
arrowheadStyle: W,
labelpos: z,
labelType: j,
thickness: q
});
} else
t.setNode(o, p);
}
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 "), xt(t, e, e.doc, i, c, !r));
}, xt = (t, n, e, i, c, r) => {
E.trace("items", e), e.forEach((o) => {
switch (o.stmt) {
case F:
A(t, n, o, i, c, r);
break;
case H:
A(t, n, o, i, c, r);
break;
case Z:
{
A(t, n, o.state1, i, c, r), A(t, n, o.state2, i, c, r);
const u = {
id: "edge" + d,
arrowhead: "normal",
arrowTypeEnd: "arrow_barb",
style: m,
labelStyle: "",
label: w.sanitizeText(o.description, g()),
arrowheadStyle: W,
labelpos: z,
labelType: j,
thickness: q,
classes: U
};
t.setEdge(o.state1.id, o.state2.id, u, d), d++;
}
break;
}
});
}, G = (t, n = I) => {
let e = n;
if (t.doc)
for (let i = 0; i < t.doc.length; i++) {
const c = t.doc[i];
c.stmt === "dir" && (e = c.value);
}
return e;
}, Ct = async function(t, n, e, i) {
E.info("Drawing state diagram (v2)", n), y = {}, i.db.getDirection();
const { securityLevel: c, state: r } = g(), o = r.nodeSpacing || 50, u = r.rankSpacing || 50;
E.info(i.db.getRootDocV2()), i.db.extract(i.db.getRootDocV2()), E.info(i.db.getRootDocV2());
const T = i.db.getStates(), s = new tt({
multigraph: !0,
compound: !0
}).setGraph({
rankdir: G(i.db.getRootDocV2()),
nodesep: o,
ranksep: u,
marginx: 8,
marginy: 8
}).setDefaultEdgeLabel(function() {
return {};
});
A(s, void 0, i.db.getRootDocV2(), T, i.db, !0);
let p;
c === "sandbox" && (p = x("#i" + n));
const a = c === "sandbox" ? x(p.nodes()[0].contentDocument.body) : x("body"), l = a.select(`[id="${n}"]`), D = a.select("#" + n + " g");
await st(D, s, ["barb"], _, n);
const S = 8;
et.insertTitle(l, "statediagramTitleText", r.titleTopMargin, i.db.getDiagramTitle());
const b = l.node().getBBox(), L = b.width + S * 2, P = b.height + S * 2;
l.attr("class", _);
const O = l.node().getBBox();
ot(l, P, L, r.useMaxWidth);
const k = `${O.x - S} ${O.y - S} ${L} ${P}`;
E.debug(`viewBox ${k}`), l.attr("viewBox", k);
const K = document.querySelectorAll('[id="' + n + '"] .edgeLabel .label');
for (const $ of K) {
const v = $.getBBox(), f = document.createElementNS("http://www.w3.org/2000/svg", h);
f.setAttribute("rx", 0), f.setAttribute("ry", 0), f.setAttribute("width", v.width), f.setAttribute("height", v.height), $.insertBefore(f, $.firstChild);
}
}, Rt = {
setConf: yt,
getClasses: gt,
draw: Ct
}, Vt = {
parser: X,
db: B,
renderer: Rt,
styles: J,
init: (t) => {
t.state || (t.state = {}), t.state.arrowMarkerAbsolute = t.arrowMarkerAbsolute, B.clear();
}
};
export {
Vt as diagram
};