Merge pull request #60 from sidharthv96/develop

Develop
This commit is contained in:
Sidharth Vinod
2021-06-03 01:45:53 +05:30
committed by GitHub
41 changed files with 103 additions and 344 deletions
+21 -4
View File
@@ -1,16 +1,31 @@
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
// 'plugin:@typescript-eslint/recommended-requiring-type-checking',
'prettier'
],
plugins: ['svelte3', 'tailwindcss', '@typescript-eslint'],
ignorePatterns: ['docs/*', '*.cjs', 'snapshots.js'],
ignorePatterns: [
'docs/*',
'*.cjs',
'snapshots.js',
'svelte.config.js',
'package.json',
'README.md'
],
overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }],
settings: {
'svelte3/typescript': () => require('typescript')
},
parserOptions: {
sourceType: 'module',
ecmaVersion: 2019
ecmaVersion: 2019,
tsconfigRootDir: __dirname,
project: ['./tsconfig.json'],
extraFileExtensions: ['.svelte']
},
env: {
browser: true,
@@ -23,6 +38,8 @@ module.exports = {
{
'ts-ignore': 'allow-with-description'
}
]
],
'@typescript-eslint/no-unsafe-member-access': 'warn',
'@typescript-eslint/no-unsafe-assignment': 'warn'
}
};
+6 -2
View File
@@ -1,6 +1,10 @@
name: Cypress Tests
on: [push]
on:
push:
pull_request:
branches:
- master
jobs:
cypress-run:
@@ -31,7 +35,7 @@ jobs:
start: yarn preview
wait-on: 'http://localhost:3000'
wait-on-timeout: 120
record: true
# record: true
headless: true
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
+13 -7
View File
@@ -3,6 +3,9 @@ on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
@@ -27,16 +30,19 @@ jobs:
run: |
npm i -g yarn
export DEPLOY=true
rm -rf docs/_app
[ "$GITHUB_EVENT_NAME" == "pull_request" ] && export BETA=true && rm -rf docs/beta/
[ "$GITHUB_EVENT_NAME" != "pull_request" ] && rm -rf docs/_app/
yarn install
# yarn run lint
yarn run lint
version=$(yarn version --patch --no-git-tag-version | grep "New version" | cut -d':' -f 2)
yarn build
cd bin
./fix-path
cd ..
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Release $version"
git push
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs
keep_files: true
+1 -1
View File
@@ -1,6 +1,6 @@
[![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE)
# Contributors are welcome
# Contributors are welcome!
If you want to speed up the progress for mermaid-live-editor, join the slack channel and contact knsv.
+2 -2
View File
@@ -4,10 +4,10 @@ module.exports = {
"1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":true,\"autoSync\":true,\"updateDiagram\":true}"
},
"Check Redirect from old URL": {
"1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":false}"
"1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":true,\"autoSync\":true,\"updateDiagram\":true}"
}
},
"__version": "7.3.0",
"__version": "7.4.0",
"Auto sync tests": {
"should dim diagram when code is edited": {
"1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Test\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":false,\"updateDiagram\":false}"
View File
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
#menu-toggle.svelte-qevfgi:checked+#menu.svelte-qevfgi{display:block}header.svelte-qevfgi.svelte-qevfgi{z-index:10000}.icon.svelte-1qkpo3v{transition-duration:.5s}.isOpen.svelte-1qkpo3v{transform:rotate(90deg)}#resizeHandler.svelte-ub8fux{cursor:col-resize;padding:0 2px}#resizeHandler.svelte-ub8fux:after{background-color:#ccc;content:"";height:100%;margin-left:-1px;position:absolute;top:0;width:2px}#resizeHandler.svelte-ub8fux:hover:after{background-color:#818cf8;margin-left:-2px;width:4px}@media screen and (max-width:768px){#resizeHandler.svelte-ub8fux{display:none}}
-1
View File
@@ -1 +0,0 @@
#svelte-announcer.svelte-1pdgbjn{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap;width:1px}
-1
View File
@@ -1 +0,0 @@
#view.svelte-7vvt6c{border:1px #8b0000;flex:1}.error.svelte-7vvt6c,.outOfSync.svelte-7vvt6c{opacity:.5}
@@ -1 +0,0 @@
function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function t(t){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{},i=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(a).filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable})))),i.forEach((function(n){e(t,n,a[n])}))}return t}var n={trackingId:null,debug:!1,anonymizeIp:!1,customDimensions:{},resetCustomDimensionsOnPage:[],setCustomDimensionsToPage:!0},a={};function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=!1,u=r(e),d=u.instanceName,p=u.instancePrefix;return{name:"google-analytics",config:t({},n,e),initialize:function(e){var n=e.config,i=e.instance;if(!n.trackingId)throw new Error("No GA trackingId defined");var r,c,s,u,g,f,v,m=n.customScriptSrc||"https://www.google-analytics.com/analytics.js";if(o(m)&&(r=window,c=document,s="script",u=m,g="ga",r.GoogleAnalyticsObject=g,r.ga=r.ga||function(){(r.ga.q=r.ga.q||[]).push(arguments)},r.ga.l=1*new Date,f=c.createElement(s),v=c.getElementsByTagName(s)[0],f.async=1,f.src=u,v.parentNode.insertBefore(f,v)),!a[d]){var y=t({cookieDomain:n.domain||"auto",siteSpeedSampleRate:n.siteSpeedSampleRate||1,sampleRate:n.sampleRate||100,allowLinker:!0},n.cookieConfig);if(d&&(y.name=d),ga("create",n.trackingId,y),n.debug&&(ga("".concat(p,"set"),"sendHitTask",null),window.ga_debug={trace:!0}),n.anonymizeIp&&ga("".concat(p,"set"),"anonymizeIp",!0),n.tasks){["customTask","previewTask","checkProtocolTask","validationTask","checkStorageTask","historyImportTask","samplerTask","buildHitTask","sendHitTask","timingTask","displayFeaturesTask"].forEach((function(e){if(n.tasks.hasOwnProperty(e)){var t=n.tasks[e];"function"==typeof t?ga(n.tasks[e]):null===t&&ga("".concat(p,"set"),e,t)}}))}var k=(i.user()||{}).traits||{};if(Object.keys(k).length){var h=l(k,n);ga("".concat(p,"set"),h)}a[d]=!0}},page:function(e){var n=e.payload,a=e.config,r=e.instance,c=n.properties,l=a.resetCustomDimensionsOnPage,u=a.customDimensions,f=r.getState("context.campaign");if(!o()){if(l&&l.length){var d=l.reduce((function(e,t){return u[t]&&(e[u[t]]=null),e}),{});Object.keys(d).length&&ga("".concat(p,"set"),d)}var v=c.path||document.location.pathname,m={page:v,title:c.title,location:c.url},y={page:v,title:c.title};c.referrer!==document.referrer&&(y.referrer=c.referrer);var k=t({},m,s(f),g(c,a,p));ga("".concat(p,"set"),y),i&&delete k.location,ga("".concat(p,"send"),"pageview",k),i=!0}},track:function(e){var t=e.payload,n=e.config,a=e.instance,i=t.properties,o=t.event,r=i.label,s=i.value;c({hitType:"event",event:o,label:r,category:i.category||"All",value:s,nonInteraction:i.nonInteraction,campaign:a.getState("context.campaign")},n,t)},identify:function(e){var t=e.payload,n=e.config;f(t.userId,t.traits,n)},loaded:function(){return!!window.gaplugins}}}function o(e){return e?!function(e){var t=document.querySelectorAll("script[src]");return!!Object.keys(t).filter((function(n){return(t[n].src||"")===e})).length}(e):"undefined"==typeof ga}function r(e){var t=e.instanceName;return{instancePrefix:t?"".concat(t,"."):"",instanceName:t}}function c(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0;if(!o()){var i=r(n),c=i.instancePrefix,l={hitType:e.hitType||"event",eventAction:e.event,eventLabel:e.label,eventCategory:e.category||"All",nonInteraction:void 0!==e.nonInteraction&&!!e.nonInteraction};e.value&&(l.eventValue=d(e.value));var u=s(e),f=g(a.properties,n,c),p=t({},l,u,f);return ga("".concat(c,"send"),"event",p),p}}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={},n=e.name,a=e.source,i=e.medium,o=e.content,r=e.keyword;return n&&(t.campaignName=n),a&&(t.campaignSource=a),i&&(t.campaignMedium=i),o&&(t.campaignContent=o),r&&(t.campaignKeyword=r),t}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.customDimensions;return Object.keys(n).reduce((function(t,a){var i=n[a],o=u(e,a)||e[a];return"boolean"==typeof o&&(o=o.toString()),o||0===o?(t[i]=o,t):t}),{})}function u(e,t,n,a,i){for(t=t.split?t.split("."):t,a=0;a<t.length;a++)e=e?e[t[a]]:i;return e===i?n:e}function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,a=l(e,t);return Object.keys(a).length?t.setCustomDimensionsToPage?(ga("".concat(n,"set"),a),{}):a:{}}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!o()){var a=r(n),i=a.instancePrefix;if(e&&ga("".concat(i,"set"),"userId",e),Object.keys(t).length){var c=l(t,n);ga("".concat(i,"set"),c)}}}function d(e){return!e||e<0?0:Math.round(e)}var p=i,v=i,m=void 0,y=void 0,k=c,h=f;export default p;export{h as identify,v as init,m as initialize,y as page,k as track};
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
let s="",a="/.";function e(e){({base:s,assets:a}=e)}export{s as b,e as s};
@@ -1 +0,0 @@
let e;const r={},t=function(t,n){if(!n)return t();if(void 0===e){const r=document.createElement("link").relList;e=r&&r.supports&&r.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(n.map((t=>{if(t in r)return;r[t]=!0;const n=t.endsWith(".css"),o=n?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${t}"]${o}`))return;const s=document.createElement("link");return s.rel=n?"stylesheet":e,n||(s.as="script",s.crossOrigin=""),s.href=t,document.head.appendChild(s),n?new Promise(((e,r)=>{s.addEventListener("load",e),s.addEventListener("error",r)})):void 0}))).then((()=>t()))};export{t as _};
-1
View File
@@ -1 +0,0 @@
let t;function a(a){t=a}export{a as i,t as r};
-1
View File
@@ -1 +0,0 @@
var e=Object.defineProperty,a=Object.defineProperties,t=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,s=(a,t,r)=>t in a?e(a,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[t]=r,i=(e,a)=>{for(var t in a||(a={}))n.call(a,t)&&s(e,t,a[t]);if(r)for(var t of r(a))o.call(a,t)&&s(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,a0 as m,a6 as f,a9 as y,S as g,i as h,s as v,e as b,c as w,a as O,d as E,b as S,N as T,f as _,F as D,G as j,H as x,z as P,a8 as C,J as A}from"./vendor-de807e42.js";import{_ as I}from"./preload-helper-9f12a5fd.js";let J;let N;const L=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([L],(([e],a)=>{a(m(JSON.stringify(e),!0))})),V=e=>{L.update((a=>i(i({},a),e)))};let G=!1;const z=(e,a,t=!1)=>{var r;r=e,J&&(clearTimeout(N),N=setTimeout((function(){const e=r.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&&!G&&f(L).autoSync){const e=confirm("Long diagram deteced. Turn off Auto Sync? Click the sync logo to manually sync.");G=!0,e&&V({autoSync:!1})}L.update((r=>c(i({},r),{code:e,updateEditor:a,updateDiagram:t})))},B=(e,a)=>{L.update((t=>c(i({},t),{mermaid:e,updateEditor:a})))},F=()=>JSON.stringify(f(L)),H=p(void 0);function R(e){let a,t;return{c(){a=b("div"),t=b("div"),this.h()},l(e){a=w(e,"DIV",{id:!0,class:!0});var r=O(a);t=w(r,"DIV",{id:!0,class:!0}),O(t).forEach(E),r.forEach(E),this.h()},h(){S(t,"id","container"),S(t,"class","flex-1 overflow-auto"),S(a,"id","view"),S(a,"class","p-2 svelte-7vvt6c"),T(a,"error",e[1]),T(a,"outOfSync",e[2])},m(r,n){_(r,a,n),D(a,t),e[3](t)},p(e,[t]){2&t&&T(a,"error",e[1]),4&t&&T(a,"outOfSync",e[2])},i:j,o:j,d(t){t&&E(a),e[3](null)}}}function $(e,a,t){let r;x(e,L,(e=>t(6,r=e)));var n=this&&this.__awaiter||function(e,a,t,r){return new(t||(t=Promise))((function(n,o){function s(e){try{c(r.next(e))}catch(a){o(a)}}function i(e){try{c(r.throw(e))}catch(a){o(a)}}function c(e){var a;e.done?n(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(s,i)}c((r=r.apply(e,a||[])).next())}))};const o=window.mermaid;let s,i="",c=!1,l=!1,d=!0;return P((()=>n(void 0,void 0,void 0,(function*(){L.subscribe((e=>{try{if(s&&e&&(e.updateDiagram||e.autoSync)){e.autoSync||C(L,r.updateDiagram=!1,r),t(2,l=!1),d=!0,i=e.code;const a=s.parentElement.parentElement.parentElement.scrollTop;t(0,s.innerHTML=i,s),delete s.dataset.processed,o.initialize(Object.assign({},JSON.parse(e.mermaid))),o.init(s),o.render("graph-div",i),t(0,s.parentElement.parentElement.parentElement.scrollTop=a,s)}else d?d=!1:t(2,l=!0)}catch(a){console.log("view fail",a),t(1,c=!0)}})),H.subscribe((e=>{void 0===e?t(1,c=!1):(t(1,c=!0),console.log("Error: ",e))}))})))),[s,c,l,function(e){A[e?"unshift":"push"]((()=>{s=e,t(0,s)}))}]}class M extends g{constructor(e){super(),h(this,e,$,R,v,{})}}const U=()=>{(e=>{let a;try{const t=y(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=f(L),console.log(a)}V(c(i({},a),{updateEditor:!0}))})(window.location.hash.slice(1))},q=()=>{V({updateDiagram:!0})},K=async()=>{U(),q(),k.subscribe((e=>{history.replaceState(void 0,void 0,`#${e}`)})),await(async()=>{if(!J)try{const{Analytics:e}=await I((()=>import("./analytics.browser.es-eaddcc60.js")),void 0),a=await I((()=>import("./analytics-plugin-ga.browser.es-9bc8c1dc.js")),void 0);J=e({app:"mermaid-live-editor",plugins:[a.init({trackingId:"UA-153180559-1"})]})}catch{console.info("Analytics blocked ;)")}})(),null==J||J.page()};export{M as V,J as a,k as b,L as c,B as d,H as e,F as g,K as i,q as s,z as u};
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
import{S as s,i as r,s as a,e as t,t as e,c as o,a as n,g as c,d as u,f as p,F as l,h as d,k as f,l as i,n as m,G as h}from"./chunks/vendor-de807e42.js";function k(s){let r,a,f=s[1].stack+"";return{c(){r=t("pre"),a=e(f)},l(s){r=o(s,"PRE",{});var t=n(r);a=c(t,f),t.forEach(u)},m(s,t){p(s,r,t),l(r,a)},p(s,r){2&r&&f!==(f=s[1].stack+"")&&d(a,f)},d(s){s&&u(r)}}}function v(s){let r,a,v,E,g,x,P,$=s[1].message+"",j=s[1].stack&&k(s);return{c(){r=t("h1"),a=e(s[0]),v=f(),E=t("p"),g=e($),x=f(),j&&j.c(),P=i()},l(t){r=o(t,"H1",{});var e=n(r);a=c(e,s[0]),e.forEach(u),v=m(t),E=o(t,"P",{});var p=n(E);g=c(p,$),p.forEach(u),x=m(t),j&&j.l(t),P=i()},m(s,t){p(s,r,t),l(r,a),p(s,v,t),p(s,E,t),l(E,g),p(s,x,t),j&&j.m(s,t),p(s,P,t)},p(s,[r]){1&r&&d(a,s[0]),2&r&&$!==($=s[1].message+"")&&d(g,$),s[1].stack?j?j.p(s,r):(j=k(s),j.c(),j.m(P.parentNode,P)):j&&(j.d(1),j=null)},i:h,o:h,d(s){s&&u(r),s&&u(v),s&&u(E),s&&u(x),j&&j.d(s),s&&u(P)}}}function E({error:s,status:r}){return{props:{error:s,status:r}}}function g(s,r,a){let{status:t}=r,{error:e}=r;return s.$$set=s=>{"status"in s&&a(0,t=s.status),"error"in s&&a(1,e=s.error)},[t,e]}export default class extends s{constructor(s){super(),r(this,s,g,v,a,{status:0,error:1})}}export{E as load};
@@ -1 +0,0 @@
import{S as s,i as e,s as r,D as o,e as a,c,a as t,d as n,b as i,f as l,E as u,v as h,r as p,z as f}from"../chunks/vendor-de807e42.js";import{b as $}from"../chunks/paths-45dac81d.js";function d(s){let e,r;const f=s[1].default,$=o(f,s,s[0],null);return{c(){e=a("main"),$&&$.c(),this.h()},l(s){e=c(s,"MAIN",{class:!0});var r=t(e);$&&$.l(r),r.forEach(n),this.h()},h(){i(e,"class","h-screen")},m(s,o){l(s,e,o),$&&$.m(e,null),r=!0},p(s,[e]){$&&$.p&&(!r||1&e)&&u($,f,s,s[0],e,null,null)},i(s){r||(h($,s),r=!0)},o(s){p($,s),r=!1},d(s){s&&n(e),$&&$.d(s)}}}function v(s,e,r){let{$$slots:o={},$$scope:a}=e;return f((()=>{"serviceWorker"in navigator&&navigator.serviceWorker.register(`${$}/service-worker.js`,{scope:`${$}/`}).then((function(s){console.log("Registration successful, scope is:",s.scope)})).catch((function(s){console.log("Service worker registration failed, error:",s)}))})),s.$$set=s=>{"$$scope"in s&&r(0,a=s.$$scope)},[a,o]}export default class extends s{constructor(s){super(),e(this,s,v,d,r,{})}}
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
import{S as t,i as n,s as o,z as s}from"../chunks/vendor-de807e42.js";import{r as e}from"../chunks/singletons-bb9012b7.js";import{b as i}from"../chunks/paths-45dac81d.js";const c=async function(t,n){return e.goto(t,n,[])};function r(t){var n=this&&this.__awaiter||function(t,n,o,s){return new(o||(o=Promise))((function(e,i){function c(t){try{a(s.next(t))}catch(n){i(n)}}function r(t){try{a(s.throw(t))}catch(n){i(n)}}function a(t){var n;t.done?e(t.value):(n=t.value,n instanceof o?n:new o((function(t){t(n)}))).then(c,r)}a((s=s.apply(t,n||[])).next())}))};return s((()=>n(void 0,void 0,void 0,(function*(){const t=window.location.hash.split("/");let n="edit";t.length>2&&(n=`${t[1]}#${t[2]}`),yield c(`${i}/${n}`,{replaceState:!0})})))),[]}export default class extends t{constructor(t){super(),n(this,t,r,null,o,{})}}
-1
View File
@@ -1 +0,0 @@
import{S as s,i as a,s as r,j as e,m as t,o as n,G as o,v as f,r as m,w as u,z as c}from"../chunks/vendor-de807e42.js";import{V as i,i as p}from"../chunks/util-1700c988.js";import"../chunks/preload-helper-9f12a5fd.js";function $(s){let a,r;return a=new i({}),{c(){e(a.$$.fragment)},l(s){t(a.$$.fragment,s)},m(s,e){n(a,s,e),r=!0},p:o,i(s){r||(f(a.$$.fragment,s),r=!0)},o(s){m(a.$$.fragment,s),r=!1},d(s){u(a,s)}}}function d(s){return c(p),[]}export default class extends s{constructor(s){super(),a(this,s,d,$,r,{})}}
File diff suppressed because one or more lines are too long
-89
View File
@@ -1,89 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Online FlowChart &amp; Diagrams Editor - Mermaid Live Editor</title>
<meta
name="og:image"
content="https://github.com/mermaid-js/mermaid/raw/develop/img/header.png"
/>
<link rel="canonical" href="https://mermaid-js.github.io/mermaid-live-editor/" />
<meta
name="description"
content="Simplify documentation and avoid heavy tools. Open source Visio Alternative. Commonly used for explaining your code! Mermaid is a simple markdown-like script language for generating charts from text via javascript."
/>
<link rel="icon" type="image/png" href="/mermaid-live-editor/favicon.png" />
<link rel="manifest" href="/mermaid-live-editor/manifest.json" />
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css"
/>
<script
src="https://cdn.jsdelivr.net/npm/mermaid@8.10.1/dist/mermaid.min.js"
integrity="sha256-aQCGsx3/OLAXwNyOUrAedielIQAjIrMFkcWdXMlIkGc="
crossorigin="anonymous"
></script>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/editor/editor.main.min.css"
integrity="sha512-RhnuJxgda82cBylRysVDqdpwnBcSkMzxz1+BxGwBPNMzBJlvaOjHz7P2kXELC0bdNxazsNSyJb7KAww0T5iUdQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<script>
var require = {
paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs' }
};
</script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/loader.min.js"
integrity="sha512-+8+MX2hyUZxaUfMJT0ew+rPsrTGiTmCg8oksa6uVE/ZlR/g3SJtyozqcqDGkw/W785xYAvcx1LxXPP+ywD0SNw=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/editor/editor.main.nls.min.js"
integrity="sha512-3aAqsDS5ClTlwyzxufRhW9WMwZlYn3V8GLRl324pMIftp+CA6kvxfjlm8TG7Wi53eBcerEdX0YfXm3QLvf1Pqg=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/editor/editor.main.js"
integrity="sha512-sOJZBKiSvh/6vxIimdXkjO45Nd3v2n3ZYtrwktgj5SJh0+PCqNQ5oqzxEr6c/o4ULczn1Wo2yh1qrz+ghduDUA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<link rel="modulepreload" href="/mermaid-live-editor/_app/start-81c55f65.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/vendor-de807e42.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/preload-helper-9f12a5fd.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/singletons-bb9012b7.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/paths-45dac81d.js">
<link rel="stylesheet" href="/mermaid-live-editor/_app/assets/start-0826e215.css">
<script type="module">
import { start } from "/mermaid-live-editor/_app/start-81c55f65.js";
start({
target: document.querySelector("#svelte"),
paths: {"base":"/mermaid-live-editor","assets":"/mermaid-live-editor"},
session: {},
host: location.host,
route: true,
spa: true,
trailing_slash: "ignore",
hydrate: null
});
</script>
</head>
<body>
<div id="svelte">
</div>
</body>
</html>
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

-89
View File
@@ -1,89 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Online FlowChart &amp; Diagrams Editor - Mermaid Live Editor</title>
<meta
name="og:image"
content="https://github.com/mermaid-js/mermaid/raw/develop/img/header.png"
/>
<link rel="canonical" href="https://mermaid-js.github.io/mermaid-live-editor/" />
<meta
name="description"
content="Simplify documentation and avoid heavy tools. Open source Visio Alternative. Commonly used for explaining your code! Mermaid is a simple markdown-like script language for generating charts from text via javascript."
/>
<link rel="icon" type="image/png" href="/mermaid-live-editor/favicon.png" />
<link rel="manifest" href="/mermaid-live-editor/manifest.json" />
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css"
/>
<script
src="https://cdn.jsdelivr.net/npm/mermaid@8.10.1/dist/mermaid.min.js"
integrity="sha256-aQCGsx3/OLAXwNyOUrAedielIQAjIrMFkcWdXMlIkGc="
crossorigin="anonymous"
></script>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/editor/editor.main.min.css"
integrity="sha512-RhnuJxgda82cBylRysVDqdpwnBcSkMzxz1+BxGwBPNMzBJlvaOjHz7P2kXELC0bdNxazsNSyJb7KAww0T5iUdQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<script>
var require = {
paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs' }
};
</script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/loader.min.js"
integrity="sha512-+8+MX2hyUZxaUfMJT0ew+rPsrTGiTmCg8oksa6uVE/ZlR/g3SJtyozqcqDGkw/W785xYAvcx1LxXPP+ywD0SNw=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/editor/editor.main.nls.min.js"
integrity="sha512-3aAqsDS5ClTlwyzxufRhW9WMwZlYn3V8GLRl324pMIftp+CA6kvxfjlm8TG7Wi53eBcerEdX0YfXm3QLvf1Pqg=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/editor/editor.main.js"
integrity="sha512-sOJZBKiSvh/6vxIimdXkjO45Nd3v2n3ZYtrwktgj5SJh0+PCqNQ5oqzxEr6c/o4ULczn1Wo2yh1qrz+ghduDUA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<link rel="modulepreload" href="/mermaid-live-editor/_app/start-81c55f65.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/vendor-de807e42.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/preload-helper-9f12a5fd.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/singletons-bb9012b7.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/paths-45dac81d.js">
<link rel="stylesheet" href="/mermaid-live-editor/_app/assets/start-0826e215.css">
<script type="module">
import { start } from "/mermaid-live-editor/_app/start-81c55f65.js";
start({
target: document.querySelector("#svelte"),
paths: {"base":"/mermaid-live-editor","assets":"/mermaid-live-editor"},
session: {},
host: location.host,
route: true,
spa: true,
trailing_slash: "ignore",
hydrate: null
});
</script>
</head>
<body>
<div id="svelte">
</div>
</body>
</html>
-1
View File
@@ -1 +0,0 @@
{"short_name":"Mermaid","name":"Mermaid Live Editor","icons":[{"src":"/mermaid-live-editor/icon-192.png","type":"image/png","sizes":"192x192"},{"src":"/mermaid-live-editor/icon-512.png","type":"image/png","sizes":"512x512"}],"start_url":"/mermaid-live-editor/edit/","background_color":"#6366F1","display":"standalone","scope":"/mermaid-live-editor/edit/","theme_color":"#6366F1","description":"FlowChart & Diagrams Editor.","orientation":"landscape"}
-3
View File
@@ -1,3 +0,0 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:
-2
View File
@@ -1,2 +0,0 @@
// eslint-disable-next-line @typescript-eslint/no-empty-function
self.addEventListener('fetch', (e) => {});
-89
View File
@@ -1,89 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Online FlowChart &amp; Diagrams Editor - Mermaid Live Editor</title>
<meta
name="og:image"
content="https://github.com/mermaid-js/mermaid/raw/develop/img/header.png"
/>
<link rel="canonical" href="https://mermaid-js.github.io/mermaid-live-editor/" />
<meta
name="description"
content="Simplify documentation and avoid heavy tools. Open source Visio Alternative. Commonly used for explaining your code! Mermaid is a simple markdown-like script language for generating charts from text via javascript."
/>
<link rel="icon" type="image/png" href="/mermaid-live-editor/favicon.png" />
<link rel="manifest" href="/mermaid-live-editor/manifest.json" />
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css"
/>
<script
src="https://cdn.jsdelivr.net/npm/mermaid@8.10.1/dist/mermaid.min.js"
integrity="sha256-aQCGsx3/OLAXwNyOUrAedielIQAjIrMFkcWdXMlIkGc="
crossorigin="anonymous"
></script>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/editor/editor.main.min.css"
integrity="sha512-RhnuJxgda82cBylRysVDqdpwnBcSkMzxz1+BxGwBPNMzBJlvaOjHz7P2kXELC0bdNxazsNSyJb7KAww0T5iUdQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<script>
var require = {
paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs' }
};
</script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/loader.min.js"
integrity="sha512-+8+MX2hyUZxaUfMJT0ew+rPsrTGiTmCg8oksa6uVE/ZlR/g3SJtyozqcqDGkw/W785xYAvcx1LxXPP+ywD0SNw=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/editor/editor.main.nls.min.js"
integrity="sha512-3aAqsDS5ClTlwyzxufRhW9WMwZlYn3V8GLRl324pMIftp+CA6kvxfjlm8TG7Wi53eBcerEdX0YfXm3QLvf1Pqg=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.23.0/min/vs/editor/editor.main.js"
integrity="sha512-sOJZBKiSvh/6vxIimdXkjO45Nd3v2n3ZYtrwktgj5SJh0+PCqNQ5oqzxEr6c/o4ULczn1Wo2yh1qrz+ghduDUA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<link rel="modulepreload" href="/mermaid-live-editor/_app/start-81c55f65.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/vendor-de807e42.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/preload-helper-9f12a5fd.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/singletons-bb9012b7.js">
<link rel="modulepreload" href="/mermaid-live-editor/_app/chunks/paths-45dac81d.js">
<link rel="stylesheet" href="/mermaid-live-editor/_app/assets/start-0826e215.css">
<script type="module">
import { start } from "/mermaid-live-editor/_app/start-81c55f65.js";
start({
target: document.querySelector("#svelte"),
paths: {"base":"/mermaid-live-editor","assets":"/mermaid-live-editor"},
session: {},
host: location.host,
route: true,
spa: true,
trailing_slash: "ignore",
hydrate: null
});
</script>
</head>
<body>
<div id="svelte">
</div>
</body>
</html>
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "mermaid-live-editor",
"version": "2.0.64",
"version": "2.0.67",
"scripts": {
"dev": "svelte-kit dev",
"build": "svelte-kit build",
+12 -6
View File
@@ -1,6 +1,7 @@
<script lang="ts">
import Card from '$lib/components/card/card.svelte';
import { base64State } from '$lib/util/state';
import type { State } from '$lib/types';
import { base64State, codeStore } from '$lib/util/state';
import { toBase64 } from 'js-base64';
import moment from 'moment';
@@ -62,8 +63,8 @@
};
};
const isClipboardAvailable = () => {
return Object.prototype.hasOwnProperty.call(window, 'ClipboardItem');
const isClipboardAvailable = (): boolean => {
return Object.prototype.hasOwnProperty.call(window, 'ClipboardItem') as boolean;
};
const clipboardCopy: Exporter = (context, image) => {
@@ -102,7 +103,7 @@
);
};
const onCopyMarkdown = (event) => {
const onCopyMarkdown = (event: Event) => {
event.target.select();
document.execCommand('Copy');
};
@@ -113,10 +114,15 @@
let imagemodeselected = 'auto';
let userimagesize = 1080;
base64State.subscribe((b64Code) => {
codeStore.subscribe((state: State) => {
const stateCopy = JSON.parse(JSON.stringify(state));
if (typeof stateCopy.mermaid === 'string') {
stateCopy.mermaid = JSON.parse(stateCopy.mermaid);
}
const b64Code = toBase64(JSON.stringify(stateCopy), true);
iUrl = `https://mermaid.ink/img/${b64Code}`;
svgUrl = `https://mermaid.ink/svg/${b64Code}`;
mdCode = `[![](${iUrl})](${window.location.protocol}//${window.location.host}${window.location.pathname}/edit#${b64Code})`;
mdCode = `[![](${iUrl})](${window.location.protocol}//${window.location.host}${window.location.pathname}#${window.location.hash})`;
});
</script>
+17 -7
View File
@@ -23,7 +23,7 @@
};
export let errorMarkers: monaco.editor.IMarkerData[] = [];
let oldText = text;
$: Monaco?.editor.setModelLanguage(editor.getModel(), language);
$: editor && Monaco?.editor.setModelLanguage(editor.getModel(), language);
$: {
if (text !== oldText) {
if ($codeStore.updateEditor) {
@@ -31,18 +31,28 @@
}
oldText = text;
}
Monaco?.editor.setModelMarkers(editor.getModel(), 'test', errorMarkers);
editor && Monaco?.editor.setModelMarkers(editor.getModel(), 'test', errorMarkers);
}
const dispatch = createEventDispatcher<EditorEvents>();
const loadMonaco = async () => {
let i = 0;
while (i++ < 10) {
try {
//@ts-ignore : This is a hack to handle a svelte-kit error when importing monaco.
Monaco = monaco;
return;
} catch {
await new Promise((r) => setTimeout(r, 500));
}
}
alert('Loading Monaco Editor failed. Please try refreshing the page.');
};
onMount(async () => {
//@ts-ignore : This is a hack to handle a svelte-kit error when importing monaco.
Monaco = monaco;
await loadMonaco(); // Fix https://github.com/mermaid-js/mermaid-live-editor/issues/175
initEditor(Monaco);
editor = Monaco.editor.create(divEl, editorOptions);
editor.onDidChangeModelContent(async () => {
editor.onDidChangeModelContent(() => {
text = editor.getValue();
dispatch('update', {
text
+1 -1
View File
@@ -49,7 +49,7 @@
width="20"
height="20"
viewBox="0 0 20 20"
><title>menu</title><path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z" /></svg
><title>Menu</title><path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z" /></svg
></label>
<input class="hidden" type="checkbox" id="menu-toggle" />
+5 -3
View File
@@ -11,7 +11,7 @@
let error = false;
let outOfSync = false;
let manualUpdate = true;
onMount(async () => {
onMount(() => {
codeStore.subscribe((state) => {
try {
if (container && state && (state.updateDiagram || state.autoSync)) {
@@ -26,9 +26,11 @@
container.innerHTML = code;
delete container.dataset.processed;
mermaid.initialize(Object.assign({}, JSON.parse(state.mermaid)));
mermaid.init(container);
mermaid.render('graph-div', code);
mermaid.render('graph-div', code, (svgCode) => {
container.innerHTML = svgCode;
});
container.parentElement.parentElement.parentElement.scrollTop = scroll;
error = false;
} else if (manualUpdate) {
manualUpdate = false;
} else {
+6 -2
View File
@@ -1,15 +1,19 @@
import { browser } from '$app/env';
import type { AnalyticsInstance } from 'analytics';
export let analytics;
export let analytics: AnalyticsInstance;
export const initAnalytics = async (): Promise<void> => {
if (browser && !analytics) {
try {
const { Analytics } = await import('analytics');
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const googleAnalytics = await import('@analytics/google-analytics');
analytics = Analytics({
app: 'mermaid-live-editor',
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
plugins: [
// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
googleAnalytics.init({
trackingId: 'UA-153180559-1'
})
@@ -37,7 +41,7 @@ export const saveStatistcs = (graph: string): void => {
timeout = setTimeout(function () {
const graphType = detectType(graph);
console.debug('ga:', 'send', 'event', 'render', graphType);
analytics.track('render', {
void analytics.track('render', {
graphType
});
}, 5000);
+7 -7
View File
@@ -56,7 +56,7 @@
}
];
const handleCodeUpdate = async (code: string): Promise<void> => {
const handleCodeUpdate = (code: string): void => {
mermaid.parse(code);
updateCode(code, false);
};
@@ -66,10 +66,10 @@
updateConfig(config, false);
};
const updateHandler = async (message: CustomEvent<EditorUpdateEvent>) => {
const updateHandler = (message: CustomEvent<EditorUpdateEvent>) => {
try {
if (selectedMode === 'code') {
await handleCodeUpdate(message.detail.text);
handleCodeUpdate(message.detail.text);
} else {
handleConfigUpdate(message.detail.text);
}
@@ -96,18 +96,18 @@
}
};
const viewDiagram = async () => {
const viewDiagram = () => {
window.open(`${base}/view#${$base64State}`, '_blank').focus();
};
onMount(() => {
initHandler();
onMount(async () => {
await initHandler();
const resizer = document.getElementById('resizeHandler');
const element = document.getElementById('editorPane');
const resize = (e) => {
const newWidth = e.pageX - element.getBoundingClientRect().left;
if (newWidth > 50) {
element.style.width = newWidth + 'px';
element.style.width = `${newWidth}px`;
}
};
+2 -2
View File
@@ -13,11 +13,11 @@ const config = {
kit: {
adapter: adapter({
pages: 'docs'
pages: `docs${process.env['BETA'] ? '/beta' : ''}`
}),
paths: process.env['DEPLOY']
? {
base: '/mermaid-live-editor'
base: `/mermaid-live-editor${process.env['BETA'] ? '/beta' : ''}`
}
: {},
ssr: false,
+9 -1
View File
@@ -26,5 +26,13 @@
"$lib/*": ["src/lib/*"]
}
},
"include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"]
"include": [
"src/**/*.d.ts",
"src/**/*.js",
"src/**/*.ts",
"src/**/*.svelte",
"cypress/**/*.ts",
"cypress/**/*.js",
"static/**/*.js"
]
}