fix
This commit is contained in:
@@ -1,2 +1,231 @@
|
||||
import{p as M,d as _,s as R}from"./styles-b83b31c9-3870ca04.js";import{l as d,c,h as w,y as B,t as G,o as D,q as E,n as C,j as A}from"./index-0e3b96e2.js";import{G as q}from"./graph-39d39682.js";import{r as z}from"./index-01f381cb-66b06431.js";import"./layout-004a3162.js";import"./index-9c042f98.js";import"./_plugin-vue_export-helper-c27b6911.js";import"./clone-def30bb2.js";import"./edges-066a5561-0489abec.js";import"./createText-ca0c5216-c3320e7a.js";import"./line-0981dc5a.js";import"./array-9f3ba611.js";import"./path-53f90ab3.js";const S=s=>A.sanitizeText(s,c());let k={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const P=function(s,e,y,a){const t=Object.keys(s);d.info("keys:",t),d.info(s),t.forEach(function(i){var o,r;const l=s[i],p={shape:"rect",id:l.id,domId:l.domId,labelText:S(l.id),labelStyle:"",style:"fill: none; stroke: black",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};e.setNode(l.id,p),$(l.classes,e,y,a,l.id),d.info("setNode",p)})},$=function(s,e,y,a,t){const i=Object.keys(s);d.info("keys:",i),d.info(s),i.filter(o=>s[o].parent==t).forEach(function(o){var r,l;const n=s[o],p=n.cssClasses.join(" "),f=D(n.styles),h=n.label??n.id,b=0,m="class_box",u={labelStyle:f.labelStyle,shape:m,labelText:S(h),classData:n,rx:b,ry:b,class:p,style:f.style,id:n.id,domId:n.domId,tooltip:a.db.getTooltip(n.id,t)||"",haveCallback:n.haveCallback,link:n.link,width:n.type==="group"?500:void 0,type:n.type,padding:((r=c().flowchart)==null?void 0:r.padding)??((l=c().class)==null?void 0:l.padding)};e.setNode(n.id,u),t&&e.setParent(n.id,t),d.info("setNode",u)})},F=function(s,e,y,a){d.info(s),s.forEach(function(t,i){var o,r;const l=t,n="",p={labelStyle:"",style:""},f=l.text,h=0,b="note",m={labelStyle:p.labelStyle,shape:b,labelText:S(f),noteData:l,rx:h,ry:h,class:n,style:p.style,id:l.id,domId:l.id,tooltip:"",type:"note",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};if(e.setNode(l.id,m),d.info("setNode",m),!l.class||!(l.class in a))return;const u=y+i,x={id:`edgeNote${u}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:E(k.curve,C)};e.setEdge(l.id,l.class,x,u)})},H=function(s,e){const y=c().flowchart;let a=0;s.forEach(function(t){var i;a++;const o={classes:"relation",pattern:t.relation.lineType==1?"dashed":"solid",id:`id_${t.id1}_${t.id2}_${a}`,arrowhead:t.type==="arrow_open"?"none":"normal",startLabelRight:t.relationTitle1==="none"?"":t.relationTitle1,endLabelLeft:t.relationTitle2==="none"?"":t.relationTitle2,arrowTypeStart:N(t.relation.type1),arrowTypeEnd:N(t.relation.type2),style:"fill:none",labelStyle:"",curve:E(y==null?void 0:y.curve,C)};if(d.info(o,t),t.style!==void 0){const r=D(t.style);o.style=r.style,o.labelStyle=r.labelStyle}t.text=t.title,t.text===void 0?t.style!==void 0&&(o.arrowheadStyle="fill: #333"):(o.arrowheadStyle="fill: #333",o.labelpos="c",((i=c().flowchart)==null?void 0:i.htmlLabels)??c().htmlLabels?(o.labelType="html",o.label='<span class="edgeLabel">'+t.text+"</span>"):(o.labelType="text",o.label=t.text.replace(A.lineBreakRegex,`
|
||||
`),t.style===void 0&&(o.style=o.style||"stroke: #333; stroke-width: 1.5px;fill:none"),o.labelStyle=o.labelStyle.replace("color:","fill:"))),e.setEdge(t.id1,t.id2,o,a)})},V=function(s){k={...k,...s}},W=async function(s,e,y,a){d.info("Drawing class - ",e);const t=c().flowchart??c().class,i=c().securityLevel;d.info("config:",t);const o=(t==null?void 0:t.nodeSpacing)??50,r=(t==null?void 0:t.rankSpacing)??50,l=new q({multigraph:!0,compound:!0}).setGraph({rankdir:a.db.getDirection(),nodesep:o,ranksep:r,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=a.db.getNamespaces(),p=a.db.getClasses(),f=a.db.getRelations(),h=a.db.getNotes();d.info(f),P(n,l,e,a),$(p,l,e,a),H(f,l),F(h,l,f.length+1,p);let b;i==="sandbox"&&(b=w("#i"+e));const m=i==="sandbox"?w(b.nodes()[0].contentDocument.body):w("body"),u=m.select(`[id="${e}"]`),x=m.select("#"+e+" g");if(await z(x,l,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",e),B.insertTitle(u,"classTitleText",(t==null?void 0:t.titleTopMargin)??5,a.db.getDiagramTitle()),G(l,u,t==null?void 0:t.diagramPadding,t==null?void 0:t.useMaxWidth),!(t!=null&&t.htmlLabels)){const T=i==="sandbox"?b.nodes()[0].contentDocument:document,I=T.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const g of I){const L=g.getBBox(),v=T.createElementNS("http://www.w3.org/2000/svg","rect");v.setAttribute("rx",0),v.setAttribute("ry",0),v.setAttribute("width",L.width),v.setAttribute("height",L.height),g.insertBefore(v,g.firstChild)}}};function N(s){let e;switch(s){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}const J={setConf:V,draw:W},nt={parser:M,db:_,renderer:J,styles:R,init:s=>{s.class||(s.class={}),s.class.arrowMarkerAbsolute=s.arrowMarkerAbsolute,_.clear()}};export{nt as diagram};
|
||||
import { p as M, d as _, s as R } from './styles-b83b31c9-3870ca04.js';
|
||||
import { l as d, c, h as w, y as B, t as G, o as D, q as E, n as C, j as A } from './index-0e3b96e2.js';
|
||||
import { G as q } from './graph-39d39682.js';
|
||||
import { r as z } from './index-01f381cb-66b06431.js';
|
||||
import './layout-004a3162.js';
|
||||
import './index-9c042f98.js';
|
||||
import './_plugin-vue_export-helper-c27b6911.js';
|
||||
import './clone-def30bb2.js';
|
||||
import './edges-066a5561-0489abec.js';
|
||||
import './createText-ca0c5216-c3320e7a.js';
|
||||
import './line-0981dc5a.js';
|
||||
import './array-9f3ba611.js';
|
||||
import './path-53f90ab3.js';
|
||||
const S = (s) => A.sanitizeText(s, c());
|
||||
let k = { dividerMargin: 10, padding: 5, textHeight: 10, curve: void 0 };
|
||||
const P = function (s, e, y, a) {
|
||||
const t = Object.keys(s);
|
||||
d.info('keys:', t),
|
||||
d.info(s),
|
||||
t.forEach(function (i) {
|
||||
var o, r;
|
||||
const l = s[i],
|
||||
p = {
|
||||
shape: 'rect',
|
||||
id: l.id,
|
||||
domId: l.domId,
|
||||
labelText: S(l.id),
|
||||
labelStyle: '',
|
||||
style: 'fill: none; stroke: black',
|
||||
padding: ((o = c().flowchart) == null ? void 0 : o.padding) ?? ((r = c().class) == null ? void 0 : r.padding),
|
||||
};
|
||||
e.setNode(l.id, p), $(l.classes, e, y, a, l.id), d.info('setNode', p);
|
||||
});
|
||||
},
|
||||
$ = function (s, e, y, a, t) {
|
||||
const i = Object.keys(s);
|
||||
d.info('keys:', i),
|
||||
d.info(s),
|
||||
i
|
||||
.filter((o) => s[o].parent == t)
|
||||
.forEach(function (o) {
|
||||
var r, l;
|
||||
const n = s[o],
|
||||
p = n.cssClasses.join(' '),
|
||||
f = D(n.styles),
|
||||
h = n.label ?? n.id,
|
||||
b = 0,
|
||||
m = 'class_box',
|
||||
u = {
|
||||
labelStyle: f.labelStyle,
|
||||
shape: m,
|
||||
labelText: S(h),
|
||||
classData: n,
|
||||
rx: b,
|
||||
ry: b,
|
||||
class: p,
|
||||
style: f.style,
|
||||
id: n.id,
|
||||
domId: n.domId,
|
||||
tooltip: a.db.getTooltip(n.id, t) || '',
|
||||
haveCallback: n.haveCallback,
|
||||
link: n.link,
|
||||
width: n.type === 'group' ? 500 : void 0,
|
||||
type: n.type,
|
||||
padding: ((r = c().flowchart) == null ? void 0 : r.padding) ?? ((l = c().class) == null ? void 0 : l.padding),
|
||||
};
|
||||
e.setNode(n.id, u), t && e.setParent(n.id, t), d.info('setNode', u);
|
||||
});
|
||||
},
|
||||
F = function (s, e, y, a) {
|
||||
d.info(s),
|
||||
s.forEach(function (t, i) {
|
||||
var o, r;
|
||||
const l = t,
|
||||
n = '',
|
||||
p = { labelStyle: '', style: '' },
|
||||
f = l.text,
|
||||
h = 0,
|
||||
b = 'note',
|
||||
m = {
|
||||
labelStyle: p.labelStyle,
|
||||
shape: b,
|
||||
labelText: S(f),
|
||||
noteData: l,
|
||||
rx: h,
|
||||
ry: h,
|
||||
class: n,
|
||||
style: p.style,
|
||||
id: l.id,
|
||||
domId: l.id,
|
||||
tooltip: '',
|
||||
type: 'note',
|
||||
padding: ((o = c().flowchart) == null ? void 0 : o.padding) ?? ((r = c().class) == null ? void 0 : r.padding),
|
||||
};
|
||||
if ((e.setNode(l.id, m), d.info('setNode', m), !l.class || !(l.class in a))) return;
|
||||
const u = y + i,
|
||||
x = {
|
||||
id: `edgeNote${u}`,
|
||||
classes: 'relation',
|
||||
pattern: 'dotted',
|
||||
arrowhead: 'none',
|
||||
startLabelRight: '',
|
||||
endLabelLeft: '',
|
||||
arrowTypeStart: 'none',
|
||||
arrowTypeEnd: 'none',
|
||||
style: 'fill:none',
|
||||
labelStyle: '',
|
||||
curve: E(k.curve, C),
|
||||
};
|
||||
e.setEdge(l.id, l.class, x, u);
|
||||
});
|
||||
},
|
||||
H = function (s, e) {
|
||||
const y = c().flowchart;
|
||||
let a = 0;
|
||||
s.forEach(function (t) {
|
||||
var i;
|
||||
a++;
|
||||
const o = {
|
||||
classes: 'relation',
|
||||
pattern: t.relation.lineType == 1 ? 'dashed' : 'solid',
|
||||
id: `id_${t.id1}_${t.id2}_${a}`,
|
||||
arrowhead: t.type === 'arrow_open' ? 'none' : 'normal',
|
||||
startLabelRight: t.relationTitle1 === 'none' ? '' : t.relationTitle1,
|
||||
endLabelLeft: t.relationTitle2 === 'none' ? '' : t.relationTitle2,
|
||||
arrowTypeStart: N(t.relation.type1),
|
||||
arrowTypeEnd: N(t.relation.type2),
|
||||
style: 'fill:none',
|
||||
labelStyle: '',
|
||||
curve: E(y == null ? void 0 : y.curve, C),
|
||||
};
|
||||
if ((d.info(o, t), t.style !== void 0)) {
|
||||
const r = D(t.style);
|
||||
(o.style = r.style), (o.labelStyle = r.labelStyle);
|
||||
}
|
||||
(t.text = t.title),
|
||||
t.text === void 0
|
||||
? t.style !== void 0 && (o.arrowheadStyle = 'fill: #333')
|
||||
: ((o.arrowheadStyle = 'fill: #333'),
|
||||
(o.labelpos = 'c'),
|
||||
((i = c().flowchart) == null ? void 0 : i.htmlLabels) ?? c().htmlLabels
|
||||
? ((o.labelType = 'html'), (o.label = '<span class="edgeLabel">' + t.text + '</span>'))
|
||||
: ((o.labelType = 'text'),
|
||||
(o.label = t.text.replace(
|
||||
A.lineBreakRegex,
|
||||
`
|
||||
`
|
||||
)),
|
||||
t.style === void 0 && (o.style = o.style || 'stroke: #333; stroke-width: 1.5px;fill:none'),
|
||||
(o.labelStyle = o.labelStyle.replace('color:', 'fill:')))),
|
||||
e.setEdge(t.id1, t.id2, o, a);
|
||||
});
|
||||
},
|
||||
V = function (s) {
|
||||
k = { ...k, ...s };
|
||||
},
|
||||
W = async function (s, e, y, a) {
|
||||
d.info('Drawing class - ', e);
|
||||
const t = c().flowchart ?? c().class,
|
||||
i = c().securityLevel;
|
||||
d.info('config:', t);
|
||||
const o = (t == null ? void 0 : t.nodeSpacing) ?? 50,
|
||||
r = (t == null ? void 0 : t.rankSpacing) ?? 50,
|
||||
l = new q({ multigraph: !0, compound: !0 })
|
||||
.setGraph({ rankdir: a.db.getDirection(), nodesep: o, ranksep: r, marginx: 8, marginy: 8 })
|
||||
.setDefaultEdgeLabel(function () {
|
||||
return {};
|
||||
}),
|
||||
n = a.db.getNamespaces(),
|
||||
p = a.db.getClasses(),
|
||||
f = a.db.getRelations(),
|
||||
h = a.db.getNotes();
|
||||
d.info(f), P(n, l, e, a), $(p, l, e, a), H(f, l), F(h, l, f.length + 1, p);
|
||||
let b;
|
||||
i === 'sandbox' && (b = w('#i' + e));
|
||||
const m = i === 'sandbox' ? w(b.nodes()[0].contentDocument.body) : w('body'),
|
||||
u = m.select(`[id="${e}"]`),
|
||||
x = m.select('#' + e + ' g');
|
||||
if (
|
||||
(await z(x, l, ['aggregation', 'extension', 'composition', 'dependency', 'lollipop'], 'classDiagram', e),
|
||||
B.insertTitle(u, 'classTitleText', (t == null ? void 0 : t.titleTopMargin) ?? 5, a.db.getDiagramTitle()),
|
||||
G(l, u, t == null ? void 0 : t.diagramPadding, t == null ? void 0 : t.useMaxWidth),
|
||||
!(t != null && t.htmlLabels))
|
||||
) {
|
||||
const T = i === 'sandbox' ? b.nodes()[0].contentDocument : document,
|
||||
I = T.querySelectorAll('[id="' + e + '"] .edgeLabel .label');
|
||||
for (const g of I) {
|
||||
const L = g.getBBox(),
|
||||
v = T.createElementNS('http://www.w3.org/2000/svg', 'rect');
|
||||
v.setAttribute('rx', 0),
|
||||
v.setAttribute('ry', 0),
|
||||
v.setAttribute('width', L.width),
|
||||
v.setAttribute('height', L.height),
|
||||
g.insertBefore(v, g.firstChild);
|
||||
}
|
||||
}
|
||||
};
|
||||
function N(s) {
|
||||
let e;
|
||||
switch (s) {
|
||||
case 0:
|
||||
e = 'aggregation';
|
||||
break;
|
||||
case 1:
|
||||
e = 'extension';
|
||||
break;
|
||||
case 2:
|
||||
e = 'composition';
|
||||
break;
|
||||
case 3:
|
||||
e = 'dependency';
|
||||
break;
|
||||
case 4:
|
||||
e = 'lollipop';
|
||||
break;
|
||||
default:
|
||||
e = 'none';
|
||||
}
|
||||
return e;
|
||||
}
|
||||
const J = { setConf: V, draw: W },
|
||||
nt = {
|
||||
parser: M,
|
||||
db: _,
|
||||
renderer: J,
|
||||
styles: R,
|
||||
init: (s) => {
|
||||
s.class || (s.class = {}), (s.class.arrowMarkerAbsolute = s.arrowMarkerAbsolute), _.clear();
|
||||
},
|
||||
};
|
||||
export { nt as diagram };
|
||||
|
||||
Reference in New Issue
Block a user