mind-elixir
Version:
Mind elixir is a free open source mind map core.
2 lines (1 loc) • 3.22 kB
JavaScript
var LayoutSsr=(function(p){"use strict";const T={LHS:"lhs",RHS:"rhs"},j=s=>`<div class="map-container"><div class="map-canvas">${s}</div></div>`,v=function(s,c={}){const{direction:a=2}=c,o=e=>{const n={id:e.id,topic:e.topic,direction:e.direction,style:e.style,tags:e.tags,icons:e.icons,hyperLink:e.hyperLink,expanded:e.expanded,image:e.image,branchColor:e.branchColor,dangerouslySetInnerHTML:e.dangerouslySetInnerHTML,note:e.note};return e.children&&e.children.length>0&&(n.children=e.children.map(o)),n},u=o(s),g=s.children||[],m=[],f=[];if(a===2){let e=0,n=0;g.forEach(t=>{const l=o(t);t.direction===0?(l.direction=0,m.push(l),e+=1):t.direction===1?(l.direction=1,f.push(l),n+=1):e<=n?(l.direction=0,m.push(l),e+=1):(l.direction=1,f.push(l),n+=1)})}else a===0?g.forEach(e=>{const n=o(e);n.direction=0,m.push(n)}):g.forEach(e=>{const n=o(e);n.direction=1,f.push(n)});return{root:u,leftNodes:m,rightNodes:f,direction:a}},R=function(s,c={}){const{className:a=""}=c,o=(t,l=!1)=>{const M=`me${t.id}`,W="me-tpc";let L="";if(t.style){const r=[];t.style.color&&r.push(`color: ${t.style.color}`),t.style.background&&r.push(`background: ${t.style.background}`),t.style.fontSize&&r.push(`font-size: ${t.style.fontSize}px`),t.style.fontWeight&&r.push(`font-weight: ${t.style.fontWeight}`),r.length>0&&(L=` style="${r.join("; ")}"`)}let h="";if(t.dangerouslySetInnerHTML)h=t.dangerouslySetInnerHTML;else{if(h=$(t.topic),t.tags&&t.tags.length>0){const r=t.tags.map(i=>{if(typeof i=="string")return`<span class="me-tag">${$(i)}</span>`;{let y="me-tag";i.className&&(y+=` ${i.className}`);let S="";if(i.style){const H=Object.entries(i.style).filter(([I,d])=>d!=null&&d!=="").map(([I,d])=>`${I.replace(/([A-Z])/g,"-$1").toLowerCase()}: ${d}`);H.length>0&&(S=` style="${H.join("; ")}"`)}return`<span class="${y}"${S}>${$(i.text)}</span>`}}).join("");h+=r}if(t.icons&&t.icons.length>0){const r=t.icons.map(i=>`<span class="me-icon">${i}</span>`).join("");h+=r}if(t.image){const{url:r,width:i,height:y,fit:S="cover"}=t.image,H=c.imageProxy?c.imageProxy(r):r;h+=`<img src="${$(H)}" width="${i}" height="${y}" style="object-fit: ${S}" alt="" />`}}const N=`<me-tpc class="${W}" data-nodeid="${M}"${L}>${h}</me-tpc>`;if(l)return`<me-root>${N}</me-root>`;let E="";return t.children&&t.children.length>0&&t.expanded!==!1&&(E=`<me-children>${t.children.map(i=>u(i)).join("")}</me-children>`),`<me-wrapper>${`<me-parent>${N}</me-parent>`}${E}</me-wrapper>`},u=t=>o(t,!1),g=o(s.root,!0),m=s.leftNodes.map(t=>u(t)).join(""),f=s.rightNodes.map(t=>u(t)).join(""),e=`<me-main class="${T.LHS}">${m}</me-main>`,n=`<me-main class="${T.RHS}">${f}</me-main>`;return j(`<me-nodes class="${a}">${e}${g}${n}</me-nodes>`)};function $(s){const c=typeof document<"u"?document.createElement("div"):null;return c?(c.textContent=s,c.innerHTML):s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}const b=function(s){return JSON.stringify(s,null,2)},D=function(s,c,a={}){return{nodeData:s,layoutResult:c,options:{direction:c.direction,...a},timestamp:Date.now()}};return p.getHydrationData=D,p.getSSRData=b,p.layoutSSR=v,p.renderSSRHTML=R,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"}),p})({});