Files
mermaid-live-editor/beta/_app/chunks/util-5eb94eb8.js
T

2 lines
4.4 KiB
JavaScript

var e=Object.defineProperty,a=Object.defineProperties,t=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable,s=(a,t,o)=>t in a?e(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,i=(e,a)=>{for(var t in a||(a={}))r.call(a,t)&&s(e,t,a[t]);if(o)for(var t of o(a))n.call(a,t)&&s(e,t,a[t]);return e},c=(e,o)=>a(e,t(o));import{a2 as l,a3 as d,C as p,a4 as u,Z as f,a6 as m,a9 as g,S as h,i as y,s as w,e as b,c as v,a as O,d as S,b as E,N as j,f as T,F as D,G as _,H as x,z as P,a8 as C,J as I}from"./vendor-d6e43078.js";import{_ as L}from"./preload-helper-9f12a5fd.js";let A;let J;const N=l(p({code:"graph TD\n A[Christmas] --\x3e|Get money| B(Go shopping)\n B --\x3e C{Let me think}\n C --\x3e|One| D[Laptop]\n C --\x3e|Two| E[iPhone]\n C --\x3e|Three| F[fa:fa-car Car]\n ",mermaid:JSON.stringify({theme:"default"},null,2),updateEditor:!1,autoSync:!0,updateDiagram:!0}),d(),"codeStore"),k=u([N],(([e],a)=>{a(f(JSON.stringify(e),!0))})),V=e=>{N.update((a=>i(i({},a),e)))};let G=!1;const H=(e,a,t=!1)=>{var o;o=e,A&&(clearTimeout(J),J=setTimeout((function(){const e=o.replace(/^\s*%%.*\n/g,"\n").trimStart().split(" ")[0];console.debug("ga:","send","event","render",e),A.track("render",{graphType:e})}),5e3));if((e.match(/\n/g)||"").length+1>50&&!G&&m(N).autoSync){const e=confirm("Long diagram deteced. Turn off Auto Sync? Click the sync logo to manually sync.");G=!0,e&&V({autoSync:!1})}N.update((o=>c(i({},o),{code:e,updateEditor:a,updateDiagram:t})))},R=(e,a)=>{N.update((t=>c(i({},t),{mermaid:e,updateEditor:a})))},$=()=>JSON.stringify(m(N)),z=p(void 0);function B(e){let a,t;return{c(){a=b("div"),t=b("div"),this.h()},l(e){a=v(e,"DIV",{id:!0,class:!0});var o=O(a);t=v(o,"DIV",{id:!0,class:!0}),O(t).forEach(S),o.forEach(S),this.h()},h(){E(t,"id","container"),E(t,"class","flex-1 overflow-auto"),E(a,"id","view"),E(a,"class","p-2 svelte-5ndy2s"),j(a,"error",e[1]),j(a,"outOfSync",e[2])},m(o,r){T(o,a,r),D(a,t),e[3](t)},p(e,[t]){2&t&&j(a,"error",e[1]),4&t&&j(a,"outOfSync",e[2])},i:_,o:_,d(t){t&&S(a),e[3](null)}}}function F(e,a,t){let o;x(e,N,(e=>t(6,o=e)));const r=window.mermaid;let n,s="",i=!1,c=!1,l=!0;return P((()=>{N.subscribe((e=>{try{if(n&&e&&(e.updateDiagram||e.autoSync)){e.autoSync||C(N,o.updateDiagram=!1,o),t(2,c=!1),l=!0,s=e.code;const a=n.parentElement.parentElement.parentElement.scrollTop;t(0,n.innerHTML=s,n),delete n.dataset.processed,r.initialize(Object.assign({},JSON.parse(e.mermaid))),r.render("graph-div",s,(e=>{t(0,n.innerHTML=e,n)})),t(0,n.parentElement.parentElement.parentElement.scrollTop=a,n),t(1,i=!1)}else l?l=!1:t(2,c=!0)}catch(a){console.log("view fail",a),t(1,i=!0)}})),z.subscribe((e=>{void 0===e?t(1,i=!1):(t(1,i=!0),console.log("Error: ",e))}))})),[n,i,c,function(e){I[e?"unshift":"push"]((()=>{n=e,t(0,n)}))}]}class M extends h{constructor(e){super(),y(this,e,F,B,w,{})}}const U=async e=>e.truncated?await(await fetch(e.raw_url)).text():e.content,Z={gist:async e=>{const a=e.split("/").pop(),{files:t}=await(await fetch(`https://api.github.com/gists/${a}`)).json();if((e=>"code.mmd"in e)(t)){const e=await U(t["code.mmd"]);if(!("config.json"in t))return{code:e};return{config:await U(t["config.json"]),code:e}}throw"Invalid gist provided"}},q=()=>{(e=>{let a;try{const t=g(e);console.log(`Tring to load state: ${t}`),a=JSON.parse(t),"string"!=typeof a.mermaid&&(a.mermaid=JSON.stringify(a.mermaid,null,2))}catch(t){e&&console.error("Init error",t),a=m(N),console.log(a)}V(c(i({},a),{updateEditor:!0}))})(window.location.hash.slice(1))},K=()=>{V({updateDiagram:!0})},Q=async()=>{q(),await(async()=>{const e=new URLSearchParams(window.location.search);let a,t;if(e.has("code")&&(a=await(await fetch(e.get("code"))).text()),e.has("config")&&(t=await(await fetch(e.get("config"))).text()),!a)for(const[o,r]of e.entries())if(o in Z){({code:a,config:t}=await Z[o](r));break}a&&H(a,!0,!0),t&&R(t,!0)})().catch(console.error),K(),k.subscribe((e=>{history.replaceState(void 0,void 0,`#${e}`)})),await(async()=>{if(!A)try{const{Analytics:e}=await L((()=>import("./analytics.browser.es-eaddcc60.js")),void 0),a=await L((()=>import("./analytics-plugin-ga.browser.es-1cdb0512.js")),void 0);A=e({app:"mermaid-live-editor",plugins:[a.init({trackingId:"UA-153180559-1"})]})}catch{console.info("Analytics blocked ;)")}})(),null==A||A.page()};export{M as V,A as a,k as b,N as c,R as d,z as e,$ as g,Q as i,K as s,H as u};