UNPKG

smart-chat-asp

Version:

smartChat component

192 lines (191 loc) 6.93 kB
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-ca3715f6-794a6748.mjs"; import { G as tt } from "./graph-86735f1b.mjs"; import { a1 as E, X as g, a0 as x, aj as et, a2 as ot, a4 as w } from "./lib-85d3a8f7.mjs"; import { r as st } from "./index-5325376f-52173ac4.mjs"; import "./layout-b0de2b3b.mjs"; import "vue"; import "./clone-d6f133a3.mjs"; import "./edges-96097737-38553af3.mjs"; import "./createText-1719965b-f10f4fe4.mjs"; import "./line-1e7c607e.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 };