2 lines
5.7 KiB
JavaScript
2 lines
5.7 KiB
JavaScript
var e=Object.defineProperty,t=Object.defineProperties,a=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable,i=(t,a,o)=>a in t?e(t,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[a]=o,n=(e,t)=>{for(var a in t||(t={}))r.call(t,a)&&i(e,a,t[a]);if(o)for(var a of o(t))s.call(t,a)&&i(e,a,t[a]);return e},c=(e,o)=>t(e,a(o));import{a4 as l,a5 as d,C as p,a6 as u,Z as m,a7 as f,a8 as g,S as h,i as y,s as w,e as b,c as v,a as S,d as O,b as E,N as j,f as T,F as D,G as _,H as x,z as L,a3 as $,J as I,a9 as P}from"./vendor-7d1c6ef4.js";import{_ as C}from"./preload-helper-9f12a5fd.js";let J;let N;const k={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},A=l(p(k),d(),"codeStore"),H=u([A],(([e],t)=>{t(m(JSON.stringify(e),!0))})),R=e=>{A.update((t=>n(n({},t),e)))};let V=!1;const U=(e,t,a=!1)=>{var o;o=e,J&&(clearTimeout(N),N=setTimeout((function(){const e=o.replace(/^\s*%%.*\n/g,"\n").trimStart().split(" ")[0];console.debug("ga:","send","event","render",e),J.track("render",{graphType:e})}),5e3));if((e.match(/\n/g)||"").length+1>50&&!V&&f(A).autoSync){const e=confirm("Long diagram deteced. Turn off Auto Sync? Click the sync logo to manually sync.");V=!0,e&&R({autoSync:!1})}A.update((o=>c(n({},o),{code:e,updateEditor:t,updateDiagram:a})))},G=(e,t)=>{A.update((a=>c(n({},a),{mermaid:e,updateEditor:t})))},M=()=>JSON.stringify(f(A)),z=p(void 0);function B(e){let t,a;return{c(){t=b("div"),a=b("div"),this.h()},l(e){t=v(e,"DIV",{id:!0,class:!0});var o=S(t);a=v(o,"DIV",{id:!0,class:!0}),S(a).forEach(O),o.forEach(O),this.h()},h(){E(a,"id","container"),E(a,"class","flex-1 overflow-auto"),E(t,"id","view"),E(t,"class","p-2 svelte-5ndy2s"),j(t,"error",e[1]),j(t,"outOfSync",e[2])},m(o,r){T(o,t,r),D(t,a),e[3](a)},p(e,[a]){2&a&&j(t,"error",e[1]),4&a&&j(t,"outOfSync",e[2])},i:_,o:_,d(a){a&&O(t),e[3](null)}}}function F(e,t,a){let o;x(e,A,(e=>a(6,o=e)));const r=window.mermaid;let s,i="",n=!1,c=!1,l=!0;return L((()=>{A.subscribe((e=>{try{if(s&&e&&(e.updateDiagram||e.autoSync)){e.autoSync||$(A,o.updateDiagram=!1,o),a(2,c=!1),l=!0,i=e.code;const t=s.parentElement.parentElement.parentElement.scrollTop;a(0,s.innerHTML=i,s),delete s.dataset.processed,r.initialize(Object.assign({},JSON.parse(e.mermaid))),r.render("graph-div",i,(e=>{a(0,s.innerHTML=e,s)})),a(0,s.parentElement.parentElement.parentElement.scrollTop=t,s),a(1,n=!1)}else l?l=!1:a(2,c=!0)}catch(t){console.log("view fail",t),a(1,n=!0)}})),z.subscribe((e=>{void 0===e?a(1,n=!1):(a(1,n=!0),console.log("Error: ",e))}))})),[s,n,c,function(e){I[e?"unshift":"push"]((()=>{s=e,a(0,s)}))}]}class Z extends h{constructor(e){super(),y(this,e,F,B,w,{})}}const q=l(p("manual"),d(),"autoHistoryMode"),K=l(p([]),d(),"autoHistoryStore"),Q=l(p([]),d(),"manualHistoryStore"),W=p([]),X=u([q,K,Q,W],(([e,t,a,o],r)=>{r("auto"===e?t:"manual"===e?a:"loader"===e?o:t)})),Y=e=>{"loader"!==e.type?(e.name=P(2),"auto"===e.type?K.update((t=>(30===t.length&&t.pop(),[e,...t]))):Q.update((t=>[e,...t]))):W.update((t=>[e,...t]))},ee=e=>{("auto"===f(q)?K:Q).update((t=>("loader"!==f(q)&&(t=t.filter((t=>e&&t.time!=e))),t)))},te=e=>{const t=f(e?K:Q);return t.length>0?JSON.stringify(t[0].state):""},ae=async e=>e.truncated?await(await fetch(e.raw_url)).text():e.content,oe=async e=>{const[t,a,o,r]=e.split("github.com").pop().split("/"),{html_url:s,files:i,history:n}=await(await fetch(`https://api.github.com/gists/${o}${r?"/"+r:""}`)).json();if((e=>"code.mmd"in e)(i)){const e=await ae(i["code.mmd"]);let t;"config.json"in i&&(t=await ae(i["config.json"]));const a=n[0];return{url:`${s}/${a.version}`,code:e,config:t,author:a.user.login,time:new Date(a.committed_at).getTime(),version:a.version.slice(-7)}}throw"Invalid gist provided"},re=e=>{const t=c(n({},k),{code:e.code});return e.config&&(t.mermaid=e.config),t},se={gist:async e=>{try{const[t,a,o,r]=e.split("github.com").pop().split("/"),{history:s}=await(await fetch(`https://api.github.com/gists/${o}${r?"/"+r:""}`)).json(),i=[];for(const e of s){const t=await oe(e.url).catch((()=>{}));t&&i.push(t)}if(0===i.length)throw"Invalid gist provided";i.reverse();const n=re(i.slice(-1).pop());for(const e of i)Y({state:re(e),time:e.time,type:"loader",url:e.url,name:`${e.author} v${e.version}`});return n}catch(t){console.error(t)}}},ie=()=>{(e=>{let t;try{const a=g(e);console.log(`Tring to load state: ${a}`),t=JSON.parse(a),"string"!=typeof t.mermaid&&(t.mermaid=JSON.stringify(t.mermaid,null,2))}catch(a){e&&console.error("Init error",a),t=f(A),console.log(t)}R(c(n({},t),{updateEditor:!0}))})(window.location.hash.slice(1))},ne=()=>{R({updateDiagram:!0})},ce=async()=>{ie(),await(async()=>{const e=new URLSearchParams(window.location.search);let t,a,o;const r=e.get("code"),s=e.get("config");if(r&&(a=await(await fetch(r)).text()),o=s?await(await fetch(s)).text():k.mermaid,a)t={code:a,mermaid:o,autoSync:!0,updateDiagram:!0,updateEditor:!0,loader:{type:"files",config:{codeURL:r,configURL:s}}};else for(const[i,n]of e.entries())if(i in se){t=await se[i](n);break}R(t)})().catch(console.error),ne(),H.subscribe((e=>{history.replaceState(void 0,void 0,`#${e}`)})),await(async()=>{if(!J)try{const{Analytics:e}=await C((()=>import("./analytics.browser.es-eaddcc60.js")),void 0),t=await C((()=>import("./analytics-plugin-ga.browser.es-1cdb0512.js")),void 0);J=e({app:"mermaid-live-editor",plugins:[t.init({trackingId:"UA-153180559-1"})]})}catch{console.info("Analytics blocked ;)")}})(),null==J||J.page()};export{Z as V,J as a,X as b,A as c,te as d,Y as e,ee as f,M as g,q as h,H as i,z as j,ce as k,W as l,G as m,ne as s,U as u};
|