2 lines
4.3 KiB
JavaScript
2 lines
4.3 KiB
JavaScript
var e=Object.defineProperty,a=Object.defineProperties,t=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,n=(a,t,r)=>t in a?e(a,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[t]=r,s=(e,a)=>{for(var t in a||(a={}))o.call(a,t)&&n(e,t,a[t]);if(r)for(var t of r(a))i.call(a,t)&&n(e,t,a[t]);return e},c=(e,r)=>a(e,t(r));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=>s(s({},a),e)))};let G=!1;const H=(e,a,t=!1)=>{var r;r=e,A&&(clearTimeout(J),J=setTimeout((function(){const e=r.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((r=>c(s({},r),{code:e,updateEditor:a,updateDiagram:t})))},R=(e,a)=>{N.update((t=>c(s({},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 r=O(a);t=v(r,"DIV",{id:!0,class:!0}),O(t).forEach(S),r.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(r,o){T(r,a,o),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 r;x(e,N,(e=>t(6,r=e)));const o=window.mermaid;let i,n="",s=!1,c=!1,l=!0;return P((()=>{N.subscribe((e=>{try{if(i&&e&&(e.updateDiagram||e.autoSync)){e.autoSync||C(N,r.updateDiagram=!1,r),t(2,c=!1),l=!0,n=e.code;const a=i.parentElement.parentElement.parentElement.scrollTop;t(0,i.innerHTML=n,i),delete i.dataset.processed,o.initialize(Object.assign({},JSON.parse(e.mermaid))),o.render("graph-div",n,(e=>{t(0,i.innerHTML=e,i)})),t(0,i.parentElement.parentElement.parentElement.scrollTop=a,i),t(1,s=!1)}else l?l=!1:t(2,c=!0)}catch(a){console.log("view fail",a),t(1,s=!0)}})),z.subscribe((e=>{void 0===e?t(1,s=!1):(t(1,s=!0),console.log("Error: ",e))}))})),[i,s,c,function(e){I[e?"unshift":"push"]((()=>{i=e,t(0,i)}))}]}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=>"diagram.mmd"in e)(t)){const e=await U(t["diagram.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(s({},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[r,o]of e.entries())if(r in Z){({code:a,config:t}=await Z[r](o));break}a&&H(a,!0,!0),t&&R(t,!0)})(),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};
|