UNPKG

mermaid

Version:

Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.

2 lines (1 loc) • 6.32 kB
import{B as M,u as G}from"./chunk-VLFMOWSA.mjs";import{b as h}from"./chunk-NXZFCOWJ.mjs";import{a as i}from"./chunk-V3YWWTDH.mjs";var H=Object.freeze({left:0,top:0,width:16,height:16}),g=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),T=Object.freeze({...H,...g}),L=Object.freeze({...T,body:"",hidden:!1});var B=Object.freeze({width:null,height:null}),z=Object.freeze({...B,...g});var E=i((t,e,n,r="")=>{let o=t.split(":");if(t.slice(0,1)==="@"){if(o.length<2||o.length>3)return null;r=o.shift().slice(1)}if(o.length>3||!o.length)return null;if(o.length>1){let f=o.pop(),m=o.pop(),p={provider:o.length>0?o[0]:r,prefix:m,name:f};return e&&!x(p)?null:p}let c=o[0],s=c.split("-");if(s.length>1){let f={provider:r,prefix:s.shift(),name:s.join("-")};return e&&!x(f)?null:f}if(n&&r===""){let f={provider:r,prefix:"",name:c};return e&&!x(f,n)?null:f}return null},"stringToIcon"),x=i((t,e)=>t?!!((e&&t.prefix===""||t.prefix)&&t.name):!1,"validateIconName");function A(t,e){let n={};!t.hFlip!=!e.hFlip&&(n.hFlip=!0),!t.vFlip!=!e.vFlip&&(n.vFlip=!0);let r=((t.rotate||0)+(e.rotate||0))%4;return r&&(n.rotate=r),n}i(A,"mergeIconTransformations");function b(t,e){let n=A(t,e);for(let r in L)r in g?r in t&&!(r in n)&&(n[r]=g[r]):r in e?n[r]=e[r]:r in t&&(n[r]=t[r]);return n}i(b,"mergeIconData");function U(t,e){let n=t.icons,r=t.aliases||Object.create(null),o=Object.create(null);function c(s){if(n[s])return o[s]=[];if(!(s in o)){o[s]=null;let f=r[s]&&r[s].parent,m=f&&c(f);m&&(o[s]=[f].concat(m))}return o[s]}return i(c,"resolve"),(e||Object.keys(n).concat(Object.keys(r))).forEach(c),o}i(U,"getIconsTree");function $(t,e,n){let r=t.icons,o=t.aliases||Object.create(null),c={};function s(f){c=b(r[f]||o[f],c)}return i(s,"parse"),s(e),n.forEach(s),b(t,c)}i($,"internalGetIconData");function j(t,e){if(t.icons[e])return $(t,e,[]);let n=U(t,[e])[e];return n?$(t,e,n):null}i(j,"getIconData");var J=/(-?[0-9.]*[0-9]+[0-9.]*)/g,K=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function F(t,e,n){if(e===1)return t;if(n=n||100,typeof t=="number")return Math.ceil(t*e*n)/n;if(typeof t!="string")return t;let r=t.split(J);if(r===null||!r.length)return t;let o=[],c=r.shift(),s=K.test(c);for(;;){if(s){let f=parseFloat(c);isNaN(f)?o.push(c):o.push(Math.ceil(f*e*n)/n)}else o.push(c);if(c=r.shift(),c===void 0)return o.join("");s=!s}}i(F,"calculateSize");function W(t,e="defs"){let n="",r=t.indexOf("<"+e);for(;r>=0;){let o=t.indexOf(">",r),c=t.indexOf("</"+e);if(o===-1||c===-1)break;let s=t.indexOf(">",c);if(s===-1)break;n+=t.slice(o+1,c).trim(),t=t.slice(0,r).trim()+t.slice(s+1)}return{defs:n,content:t}}i(W,"splitSVGDefs");function Q(t,e){return t?"<defs>"+t+"</defs>"+e:e}i(Q,"mergeDefsAndContent");function q(t,e,n){let r=W(t);return Q(r.defs,e+r.content+n)}i(q,"wrapSVGContent");var X=i(t=>t==="unset"||t==="undefined"||t==="none","isUnsetKeyword");function C(t,e){let n={...T,...t},r={...z,...e},o={left:n.left,top:n.top,width:n.width,height:n.height},c=n.body;[n,r].forEach(d=>{let a=[],R=d.hFlip,V=d.vFlip,u=d.rotate;R?V?u+=2:(a.push("translate("+(o.width+o.left).toString()+" "+(0-o.top).toString()+")"),a.push("scale(-1 1)"),o.top=o.left=0):V&&(a.push("translate("+(0-o.left).toString()+" "+(o.height+o.top).toString()+")"),a.push("scale(1 -1)"),o.top=o.left=0);let l;switch(u<0&&(u-=Math.floor(u/4)*4),u=u%4,u){case 1:l=o.height/2+o.top,a.unshift("rotate(90 "+l.toString()+" "+l.toString()+")");break;case 2:a.unshift("rotate(180 "+(o.width/2+o.left).toString()+" "+(o.height/2+o.top).toString()+")");break;case 3:l=o.width/2+o.left,a.unshift("rotate(-90 "+l.toString()+" "+l.toString()+")");break}u%2===1&&(o.left!==o.top&&(l=o.left,o.left=o.top,o.top=l),o.width!==o.height&&(l=o.width,o.width=o.height,o.height=l)),a.length&&(c=q(c,'<g transform="'+a.join(" ")+'">',"</g>"))});let s=r.width,f=r.height,m=o.width,p=o.height,I,S;s===null?(S=f===null?"1em":f==="auto"?p:f,I=F(S,m/p)):(I=s==="auto"?m:s,S=f===null?F(I,p/m):f==="auto"?p:f);let y={},k=i((d,a)=>{X(a)||(y[d]=a.toString())},"setAttr");k("width",I),k("height",S);let P=[o.left,o.top,m,p];return y.viewBox=P.join(" "),{attributes:y,viewBox:P,body:c}}i(C,"iconToSVG");var Y=/\sid="(\S+)"/g,Z="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),_=0;function v(t,e=Z){let n=[],r;for(;r=Y.exec(t);)n.push(r[1]);if(!n.length)return t;let o="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(c=>{let s=typeof e=="function"?e(c):e+(_++).toString(),f=c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+f+')([")]|\\.[a-z])',"g"),"$1"+s+o+"$3")}),t=t.replace(new RegExp(o,"g"),""),t}i(v,"replaceIDs");function D(t,e){let n=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let r in e)n+=" "+r+'="'+e[r]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+t+"</svg>"}i(D,"iconToHTML");var tt={body:'<g><rect width="80" height="80" style="fill: #087ebf; stroke-width: 0px;"/><text transform="translate(21.16 64.67)" style="fill: #fff; font-family: ArialMT, Arial; font-size: 67.75px;"><tspan x="0" y="0">?</tspan></text></g>',height:80,width:80},w=new Map,O=new Map,Rt=i(t=>{for(let e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(h.debug("Registering icon pack:",e.name),"loader"in e)O.set(e.name,e.loader);else if("icons"in e)w.set(e.name,e.icons);else throw h.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),Ht=i(t=>w.has(t)||O.has(t),"isIconPackRegistered"),N=i(async(t,e)=>{let n=E(t,!0,e!==void 0);if(!n)throw new Error(`Invalid icon name: ${t}`);let r=n.prefix||e;if(!r)throw new Error(`Icon name must contain a prefix: ${t}`);let o=w.get(r);if(!o){let s=O.get(r);if(!s)throw new Error(`Icon set not found: ${n.prefix}`);try{o={...await s(),prefix:r},w.set(r,o)}catch(f){throw h.error(f),new Error(`Failed to load icon set: ${n.prefix}`)}}let c=j(o,n.name);if(!c)throw new Error(`Icon not found: ${t}`);return c},"getRegisteredIconData"),Bt=i(async t=>{try{return await N(t),!0}catch{return!1}},"isIconAvailable"),Jt=i(async(t,e,n)=>{let r;try{r=await N(t,e?.fallbackPrefix)}catch(s){h.error(s),r=tt}let o=C(r,e),c=D(v(o.body),{...o.attributes,...n});return M(c,G())},"getIconSVG");export{tt as a,Rt as b,Ht as c,Bt as d,Jt as e};