UNPKG

@eventcatalogtest/studio

Version:

A drag and drop UI for distributed systems that keeps your diagrams where they belong – in your repo

24 lines 11.4 kB
"use strict";exports.id=3504,exports.ids=[3504],exports.modules={23386:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(32892),e=(0,d.K2)((a,b,c,e)=>{a.attr("class",c);let{width:h,height:i,x:j,y:k}=f(a,b);(0,d.a$)(a,i,h,e);let l=g(j,k,h,i,b);a.attr("viewBox",l),d.Rm.debug(`viewBox configured: ${l} with padding: ${b}`)},"setupViewPortForSVG"),f=(0,d.K2)((a,b)=>{let c=a.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:c.width+2*b,height:c.height+2*b,x:c.x,y:c.y}},"calculateDimensionsWithPadding"),g=(0,d.K2)((a,b,c,d,e)=>`${a-e} ${b-e} ${c} ${d}`,"createViewBox")},73504:(a,b,c)=>{c.d(b,{diagram:()=>t});var d=c(23386),e=c(8688),f=c(87124),g=c(65299),h=c(58210),i=c(32892),j=c(66689),k=c(38073),l=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=i.SV,this.getAccTitle=i.iN,this.setDiagramTitle=i.ke,this.getDiagramTitle=i.ab,this.getAccDescription=i.m7,this.setAccDescription=i.EI}static{(0,i.K2)(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){let a=i.UI,b=(0,i.zj)();return(0,g.$t)({...a.treemap,...b.treemap??{}})}addNode(a,b){this.nodes.push(a),this.levels.set(a,b),0===b&&(this.outerNodes.push(a),this.root??=a)}getRoot(){return{name:"",children:this.outerNodes}}addClass(a,b){let c=this.classes.get(a)??{id:a,styles:[],textStyles:[]},d=b.replace(/\\,/g,"\xa7\xa7\xa7").replace(/,/g,";").replace(/§§§/g,",").split(";");d&&d.forEach(a=>{(0,e.KX)(a)&&(c?.textStyles?c.textStyles.push(a):c.textStyles=[a]),c?.styles?c.styles.push(a):c.styles=[a]}),this.classes.set(a,c)}getClasses(){return this.classes}getStylesForClass(a){return this.classes.get(a)?.styles??[]}clear(){(0,i.IU)(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function m(a){if(!a.length)return[];let b=[],c=[];return a.forEach(a=>{let d={name:a.name,children:"Leaf"===a.type?void 0:[]};for(d.classSelector=a?.classSelector,a?.cssCompiledStyles&&(d.cssCompiledStyles=[a.cssCompiledStyles]),"Leaf"===a.type&&void 0!==a.value&&(d.value=a.value);c.length>0&&c[c.length-1].level>=a.level;)c.pop();if(0===c.length)b.push(d);else{let a=c[c.length-1].node;a.children?a.children.push(d):a.children=[d]}"Leaf"!==a.type&&c.push({node:d,level:a.level})}),b}(0,i.K2)(m,"buildHierarchy");var n=(0,i.K2)((a,b)=>{(0,f.S)(a,b);let c=[];for(let c of a.TreemapRows??[])"ClassDefStatement"===c.$type&&b.addClass(c.className??"",c.styleText??"");for(let d of a.TreemapRows??[]){let a=d.item;if(!a)continue;let e=d.indent?parseInt(d.indent):0,f=o(a),g=a.classSelector?b.getStylesForClass(a.classSelector):[],h=g.length>0?g.join(";"):void 0,i={level:e,name:f,type:a.$type,value:a.value,classSelector:a.classSelector,cssCompiledStyles:h};c.push(i)}let d=m(c),e=(0,i.K2)((a,c)=>{for(let d of a)b.addNode(d,c),d.children&&d.children.length>0&&e(d.children,c+1)},"addNodesRecursively");e(d,0)},"populate"),o=(0,i.K2)(a=>a.name?String(a.name):"","getItemName"),p={parser:{yy:void 0},parse:(0,i.K2)(async a=>{try{let b=j.qg,c=await b("treemap",a);i.Rm.debug("Treemap AST:",c);let d=p.parser?.yy;if(!(d instanceof l))throw Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");n(c,d)}catch(a){throw i.Rm.error("Error parsing treemap:",a),a}},"parse")},q=(0,i.K2)((a,b,c,f)=>{let g,j=f.db,l=j.getConfig(),m=l.padding??10,n=j.getDiagramTitle(),o=j.getRoot(),{themeVariables:p}=(0,i.zj)();if(!o)return;let q=30*!!n,r=(0,h.D)(b),s=l.nodeWidth?10*l.nodeWidth:960,t=l.nodeHeight?10*l.nodeHeight:500,u=t+q;r.attr("viewBox",`0 0 ${s} ${u}`),(0,i.a$)(r,u,s,l.useMaxWidth);try{let a=l.valueFormat||",";if("$0,0"===a)g=(0,i.K2)(a=>"$"+(0,k.GPZ)(",")(a),"valueFormat");else if(a.startsWith("$")&&a.includes(",")){let b=/\.\d+/.exec(a),c=b?b[0]:"";g=(0,i.K2)(a=>"$"+(0,k.GPZ)(","+c)(a),"valueFormat")}else if(a.startsWith("$")){let b=a.substring(1);g=(0,i.K2)(a=>"$"+(0,k.GPZ)(b||"")(a),"valueFormat")}else g=(0,k.GPZ)(a)}catch(a){i.Rm.error("Error creating format function:",a),g=(0,k.GPZ)(",")}let v=(0,k.UMr)().range(["transparent",p.cScale0,p.cScale1,p.cScale2,p.cScale3,p.cScale4,p.cScale5,p.cScale6,p.cScale7,p.cScale8,p.cScale9,p.cScale10,p.cScale11]),w=(0,k.UMr)().range(["transparent",p.cScalePeer0,p.cScalePeer1,p.cScalePeer2,p.cScalePeer3,p.cScalePeer4,p.cScalePeer5,p.cScalePeer6,p.cScalePeer7,p.cScalePeer8,p.cScalePeer9,p.cScalePeer10,p.cScalePeer11]),x=(0,k.UMr)().range([p.cScaleLabel0,p.cScaleLabel1,p.cScaleLabel2,p.cScaleLabel3,p.cScaleLabel4,p.cScaleLabel5,p.cScaleLabel6,p.cScaleLabel7,p.cScaleLabel8,p.cScaleLabel9,p.cScaleLabel10,p.cScaleLabel11]);n&&r.append("text").attr("x",s/2).attr("y",q/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(n);let y=r.append("g").attr("transform",`translate(0, ${q})`).attr("class","treemapContainer"),z=(0,k.Sk5)(o).sum(a=>a.value??0).sort((a,b)=>(b.value??0)-(a.value??0)),A=(0,k.hkb)().size([s,t]).paddingTop(a=>a.children&&a.children.length>0?35:0).paddingInner(m).paddingLeft(a=>a.children&&a.children.length>0?10:0).paddingRight(a=>a.children&&a.children.length>0?10:0).paddingBottom(a=>a.children&&a.children.length>0?10:0).round(!0)(z),B=A.descendants().filter(a=>a.children&&a.children.length>0),C=y.selectAll(".treemapSection").data(B).enter().append("g").attr("class","treemapSection").attr("transform",a=>`translate(${a.x0},${a.y0})`);C.append("rect").attr("width",a=>a.x1-a.x0).attr("height",25).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",a=>0===a.depth?"display: none;":""),C.append("clipPath").attr("id",(a,c)=>`clip-section-${b}-${c}`).append("rect").attr("width",a=>Math.max(0,a.x1-a.x0-12)).attr("height",25),C.append("rect").attr("width",a=>a.x1-a.x0).attr("height",a=>a.y1-a.y0).attr("class",(a,b)=>`treemapSection section${b}`).attr("fill",a=>v(a.data.name)).attr("fill-opacity",.6).attr("stroke",a=>w(a.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",a=>{if(0===a.depth)return"display: none;";let b=(0,e.GX)({cssCompiledStyles:a.data.cssCompiledStyles});return b.nodeStyles+";"+b.borderStyles.join(";")}),C.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",12.5).attr("dominant-baseline","middle").text(a=>0===a.depth?"":a.data.name).attr("font-weight","bold").attr("style",a=>0===a.depth?"display: none;":"dominant-baseline: middle; font-size: 12px; fill:"+x(a.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+(0,e.GX)({cssCompiledStyles:a.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).each(function(a){if(0===a.depth)return;let b=(0,k.Ltv)(this),c=a.data.name;b.text(c);let d=a.x1-a.x0,e=Math.max(15,!1!==l.showValues&&a.value?d-10-30-10-6:d-6-6),f=b.node();if(f.getComputedTextLength()>e){let a=c;for(;a.length>0;){if(0===(a=c.substring(0,a.length-1)).length){b.text("..."),f.getComputedTextLength()>e&&b.text("");break}if(b.text(a+"..."),f.getComputedTextLength()<=e)break}}}),!1!==l.showValues&&C.append("text").attr("class","treemapSectionValue").attr("x",a=>a.x1-a.x0-10).attr("y",12.5).attr("text-anchor","end").attr("dominant-baseline","middle").text(a=>a.value?g(a.value):"").attr("font-style","italic").attr("style",a=>0===a.depth?"display: none;":"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+x(a.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+(0,e.GX)({cssCompiledStyles:a.data.cssCompiledStyles}).labelStyles.replace("color:","fill:"));let D=A.leaves(),E=y.selectAll(".treemapLeafGroup").data(D).enter().append("g").attr("class",(a,b)=>`treemapNode treemapLeafGroup leaf${b}${a.data.classSelector?` ${a.data.classSelector}`:""}x`).attr("transform",a=>`translate(${a.x0},${a.y0})`);E.append("rect").attr("width",a=>a.x1-a.x0).attr("height",a=>a.y1-a.y0).attr("class","treemapLeaf").attr("fill",a=>a.parent?v(a.parent.data.name):v(a.data.name)).attr("style",a=>(0,e.GX)({cssCompiledStyles:a.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",a=>a.parent?v(a.parent.data.name):v(a.data.name)).attr("stroke-width",3),E.append("clipPath").attr("id",(a,c)=>`clip-${b}-${c}`).append("rect").attr("width",a=>Math.max(0,a.x1-a.x0-4)).attr("height",a=>Math.max(0,a.y1-a.y0-4)),E.append("text").attr("class","treemapLabel").attr("x",a=>(a.x1-a.x0)/2).attr("y",a=>(a.y1-a.y0)/2).attr("style",a=>"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+x(a.data.name)+";"+(0,e.GX)({cssCompiledStyles:a.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(a,c)=>`url(#clip-${b}-${c})`).text(a=>a.data.name).each(function(a){let b=(0,k.Ltv)(this),c=a.x1-a.x0,d=a.y1-a.y0,e=b.node(),f=c-8,g=d-8;if(f<10||g<10)return void b.style("display","none");let h=parseInt(b.style("font-size"),10);for(;e.getComputedTextLength()>f&&h>8;)h--,b.style("font-size",`${h}px`);let i=Math.max(6,Math.min(28,Math.round(.6*h))),j=h+2+i;for(;j>g&&h>8&&(!((i=Math.max(6,Math.min(28,Math.round(.6*--h))))<6)||8!==h);)b.style("font-size",`${h}px`),j=h+2+i;b.style("font-size",`${h}px`),(e.getComputedTextLength()>f||h<8||g<h)&&b.style("display","none")}),!1!==l.showValues&&E.append("text").attr("class","treemapValue").attr("x",a=>(a.x1-a.x0)/2).attr("y",function(a){return(a.y1-a.y0)/2}).attr("style",a=>"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+x(a.data.name)+";"+(0,e.GX)({cssCompiledStyles:a.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(a,c)=>`url(#clip-${b}-${c})`).text(a=>a.value?g(a.value):"").each(function(a){let b=(0,k.Ltv)(this),c=this.parentNode;if(!c)return void b.style("display","none");let d=(0,k.Ltv)(c).select(".treemapLabel");if(d.empty()||"none"===d.style("display"))return void b.style("display","none");let e=parseFloat(d.style("font-size")),f=Math.max(6,Math.min(28,Math.round(.6*e)));b.style("font-size",`${f}px`);let g=(a.y1-a.y0)/2+e/2+2;b.attr("y",g);let h=a.x1-a.x0,i=a.y1-a.y0;b.node().getComputedTextLength()>h-8||g+f>i-4||f<6?b.style("display","none"):b.style("display",null)});let F=l.diagramPadding??8;(0,d.P)(r,F,"flowchart",l?.useMaxWidth||!1)},"draw"),r=(0,i.K2)(function(a,b){return b.db.getClasses()},"getClasses"),s={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},t={parser:p,get db(){return new l},renderer:{draw:q,getClasses:r},styles:(0,i.K2)(({treemap:a}={})=>{let b=(0,g.$t)(s,a);return` .treemapNode.section { stroke: ${b.sectionStrokeColor}; stroke-width: ${b.sectionStrokeWidth}; fill: ${b.sectionFillColor}; } .treemapNode.leaf { stroke: ${b.leafStrokeColor}; stroke-width: ${b.leafStrokeWidth}; fill: ${b.leafFillColor}; } .treemapLabel { fill: ${b.labelColor}; font-size: ${b.labelFontSize}; } .treemapValue { fill: ${b.valueColor}; font-size: ${b.valueFontSize}; } .treemapTitle { fill: ${b.titleColor}; font-size: ${b.titleFontSize}; } `},"getStyles")}},87124:(a,b,c)=>{function d(a,b){a.accDescr&&b.setAccDescription?.(a.accDescr),a.accTitle&&b.setAccTitle?.(a.accTitle),a.title&&b.setDiagramTitle?.(a.title)}c.d(b,{S:()=>d}),(0,c(32892).K2)(d,"populateCommonDb")}};