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