@diplodoc/mermaid-extension 1.2.1 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/plugin/index.js +1 -1
- package/plugin/index.js.map +2 -2
- package/runtime/index.js +1 -1
- package/runtime/index.js.map +3 -3
package/package.json
CHANGED
package/plugin/index.js
CHANGED
|
@@ -98,7 +98,7 @@ function transform(options = {}) {
|
|
|
98
98
|
});
|
|
99
99
|
md.renderer.rules.mermaid = (tokens, idx) => {
|
|
100
100
|
const token = tokens[idx];
|
|
101
|
-
const code = encodeURIComponent(token.content.
|
|
101
|
+
const code = encodeURIComponent(token.content.trimStart());
|
|
102
102
|
return `<div class="mermaid" data-content="${code}"></div>`;
|
|
103
103
|
};
|
|
104
104
|
};
|
package/plugin/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/plugin/index.ts", "../src/plugin/transform.ts"],
|
|
4
|
-
"sourcesContent": ["export {transform} from './transform';\n", "import type MarkdownIt from 'markdown-it';\nimport type {\n MarkdownItPluginCb,\n MarkdownItPluginOpts,\n} from '@diplodoc/transform/lib/plugins/typings';\nimport type ParserCore from 'markdown-it/lib/parser_core';\nimport type Token from 'markdown-it/lib/token';\n\nexport type PluginOptions = {\n runtime: string;\n classes: string;\n bundle: boolean;\n};\n\nfunction isMermaidBlock(token: Token) {\n return token.type === 'fence' && token.info.match(/^\\s*mermaid(\\s*|$)/);\n}\n\nfunction hidden<B extends Record<string | symbol, unknown>, F extends string | symbol, V>(\n box: B,\n field: F,\n value: V,\n) {\n if (!(field in box)) {\n Object.defineProperty(box, field, {\n enumerable: false,\n value: value,\n });\n }\n\n return box as B & {[P in F]: V};\n}\n\nfunction copy(from: string, to: string) {\n const {mkdirSync, copyFileSync} = dynrequire('node:fs');\n const {dirname} = dynrequire('node:path');\n\n mkdirSync(dirname(to), {recursive: true});\n copyFileSync(from, to);\n}\n\n/*\n * Runtime require hidden for builders.\n * Used for nodejs api\n */\nfunction dynrequire(module: string) {\n return eval(`require('${module}')`);\n}\n\nconst registerTransforms = (\n md: MarkdownIt,\n {\n classes,\n runtime,\n bundle,\n output,\n updateTokens,\n }: PluginOptions & {\n output: string;\n updateTokens: boolean;\n },\n) => {\n const applyTransforms: ParserCore.RuleCore = ({tokens, env}) => {\n hidden(env, 'bundled', new Set<string>());\n\n const blocks = tokens.filter(isMermaidBlock);\n\n if (updateTokens && blocks.length) {\n blocks.forEach((token) => {\n token.type = 'mermaid';\n token.attrSet('class', `mermaid ${classes}`);\n });\n }\n\n if (blocks.length) {\n env.meta = env.meta || {};\n env.meta.script = env.meta.script || [];\n env.meta.script.push(runtime);\n\n if (bundle) {\n const {join} = dynrequire('node:path');\n const file = join(PACKAGE, 'runtime');\n if (!env.bundled.has(file)) {\n env.bundled.add(file);\n\n copy(require.resolve(file), join(output, runtime));\n }\n }\n }\n };\n\n try {\n md.core.ruler.after('fence', 'mermaid', applyTransforms);\n } catch (e) {\n md.core.ruler.push('mermaid', applyTransforms);\n }\n};\n\ntype InputOptions = MarkdownItPluginOpts & {\n destRoot: string;\n};\n\nexport function transform(options: Partial<PluginOptions> = {}) {\n const {\n runtime = '_assets/mermaid-extension.js',\n classes = 'yfm-mermaid',\n bundle = true,\n } = options;\n\n const plugin: MarkdownItPluginCb<{output: string}> = function (md: MarkdownIt, {output = '.'}) {\n registerTransforms(md, {\n classes,\n runtime,\n bundle,\n output,\n updateTokens: true,\n });\n\n md.renderer.rules.mermaid = (tokens, idx) => {\n const token = tokens[idx];\n const code = encodeURIComponent(token.content.
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACcA,SAAS,eAAe,OAAc;AAClC,SAAO,MAAM,SAAS,WAAW,MAAM,KAAK,MAAM,oBAAoB;AAC1E;AAEA,SAAS,OACL,KACA,OACA,OACF;AACE,MAAI,EAAE,SAAS,MAAM;AACjB,WAAO,eAAe,KAAK,OAAO;AAAA,MAC9B,YAAY;AAAA,MACZ;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,SAAO;AACX;AAEA,SAAS,KAAK,MAAc,IAAY;AACpC,QAAM,EAAC,WAAW,aAAY,IAAI,WAAW,SAAS;AACtD,QAAM,EAAC,QAAO,IAAI,WAAW,WAAW;AAExC,YAAU,QAAQ,EAAE,GAAG,EAAC,WAAW,KAAI,CAAC;AACxC,eAAa,MAAM,EAAE;AACzB;AAMA,SAAS,WAAW,QAAgB;AAChC,SAAO,KAAK,YAAY,MAAM,IAAI;AACtC;AAEA,IAAM,qBAAqB,CACvB,IACA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAIC;AACD,QAAM,kBAAuC,CAAC,EAAC,QAAQ,IAAG,MAAM;AAC5D,WAAO,KAAK,WAAW,oBAAI,IAAY,CAAC;AAExC,UAAM,SAAS,OAAO,OAAO,cAAc;AAE3C,QAAI,gBAAgB,OAAO,QAAQ;AAC/B,aAAO,QAAQ,CAAC,UAAU;AACtB,cAAM,OAAO;AACb,cAAM,QAAQ,SAAS,WAAW,OAAO,EAAE;AAAA,MAC/C,CAAC;AAAA,IACL;AAEA,QAAI,OAAO,QAAQ;AACf,UAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,UAAI,KAAK,SAAS,IAAI,KAAK,UAAU,CAAC;AACtC,UAAI,KAAK,OAAO,KAAK,OAAO;AAE5B,UAAI,QAAQ;AACR,cAAM,EAAC,KAAI,IAAI,WAAW,WAAW;AACrC,cAAM,OAAO,KAAK,+BAAS,SAAS;AACpC,YAAI,CAAC,IAAI,QAAQ,IAAI,IAAI,GAAG;AACxB,cAAI,QAAQ,IAAI,IAAI;AAEpB,eAAK,QAAQ,QAAQ,IAAI,GAAG,KAAK,QAAQ,OAAO,CAAC;AAAA,QACrD;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI;AACA,OAAG,KAAK,MAAM,MAAM,SAAS,WAAW,eAAe;AAAA,EAC3D,SAAS,GAAG;AACR,OAAG,KAAK,MAAM,KAAK,WAAW,eAAe;AAAA,EACjD;AACJ;AAMO,SAAS,UAAU,UAAkC,CAAC,GAAG;AAC5D,QAAM;AAAA,IACF,UAAU;AAAA,IACV,UAAU;AAAA,IACV,SAAS;AAAA,EACb,IAAI;AAEJ,QAAM,SAA+C,SAAU,IAAgB,EAAC,SAAS,IAAG,GAAG;AAC3F,uBAAmB,IAAI;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,IAClB,CAAC;AAED,OAAG,SAAS,MAAM,UAAU,CAAC,QAAQ,QAAQ;AACzC,YAAM,QAAQ,OAAO,GAAG;AACxB,YAAM,OAAO,mBAAmB,MAAM,QAAQ,
|
|
4
|
+
"sourcesContent": ["export {transform} from './transform';\n", "import type MarkdownIt from 'markdown-it';\nimport type {\n MarkdownItPluginCb,\n MarkdownItPluginOpts,\n} from '@diplodoc/transform/lib/plugins/typings';\nimport type ParserCore from 'markdown-it/lib/parser_core';\nimport type Token from 'markdown-it/lib/token';\n\nexport type PluginOptions = {\n runtime: string;\n classes: string;\n bundle: boolean;\n};\n\nfunction isMermaidBlock(token: Token) {\n return token.type === 'fence' && token.info.match(/^\\s*mermaid(\\s*|$)/);\n}\n\nfunction hidden<B extends Record<string | symbol, unknown>, F extends string | symbol, V>(\n box: B,\n field: F,\n value: V,\n) {\n if (!(field in box)) {\n Object.defineProperty(box, field, {\n enumerable: false,\n value: value,\n });\n }\n\n return box as B & {[P in F]: V};\n}\n\nfunction copy(from: string, to: string) {\n const {mkdirSync, copyFileSync} = dynrequire('node:fs');\n const {dirname} = dynrequire('node:path');\n\n mkdirSync(dirname(to), {recursive: true});\n copyFileSync(from, to);\n}\n\n/*\n * Runtime require hidden for builders.\n * Used for nodejs api\n */\nfunction dynrequire(module: string) {\n return eval(`require('${module}')`);\n}\n\nconst registerTransforms = (\n md: MarkdownIt,\n {\n classes,\n runtime,\n bundle,\n output,\n updateTokens,\n }: PluginOptions & {\n output: string;\n updateTokens: boolean;\n },\n) => {\n const applyTransforms: ParserCore.RuleCore = ({tokens, env}) => {\n hidden(env, 'bundled', new Set<string>());\n\n const blocks = tokens.filter(isMermaidBlock);\n\n if (updateTokens && blocks.length) {\n blocks.forEach((token) => {\n token.type = 'mermaid';\n token.attrSet('class', `mermaid ${classes}`);\n });\n }\n\n if (blocks.length) {\n env.meta = env.meta || {};\n env.meta.script = env.meta.script || [];\n env.meta.script.push(runtime);\n\n if (bundle) {\n const {join} = dynrequire('node:path');\n const file = join(PACKAGE, 'runtime');\n if (!env.bundled.has(file)) {\n env.bundled.add(file);\n\n copy(require.resolve(file), join(output, runtime));\n }\n }\n }\n };\n\n try {\n md.core.ruler.after('fence', 'mermaid', applyTransforms);\n } catch (e) {\n md.core.ruler.push('mermaid', applyTransforms);\n }\n};\n\ntype InputOptions = MarkdownItPluginOpts & {\n destRoot: string;\n};\n\nexport function transform(options: Partial<PluginOptions> = {}) {\n const {\n runtime = '_assets/mermaid-extension.js',\n classes = 'yfm-mermaid',\n bundle = true,\n } = options;\n\n const plugin: MarkdownItPluginCb<{output: string}> = function (md: MarkdownIt, {output = '.'}) {\n registerTransforms(md, {\n classes,\n runtime,\n bundle,\n output,\n updateTokens: true,\n });\n\n md.renderer.rules.mermaid = (tokens, idx) => {\n const token = tokens[idx];\n const code = encodeURIComponent(token.content.trimStart());\n\n return `<div class=\"mermaid\" data-content=\"${code}\"></div>`;\n };\n };\n\n Object.assign(plugin, {\n collect(input: string, {destRoot}: InputOptions) {\n const MdIt = dynrequire('markdown-it');\n const md = new MdIt().use((md: MarkdownIt) => {\n registerTransforms(md, {\n classes,\n runtime,\n bundle,\n output: destRoot,\n updateTokens: false,\n });\n });\n\n md.parse(input, {});\n },\n });\n\n return plugin;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["md"]
|
|
7
7
|
}
|
package/runtime/index.js
CHANGED
|
@@ -1640,7 +1640,7 @@ ${i.themeCSS}`),i.fontFamily!==void 0&&(p+=`
|
|
|
1640
1640
|
${y}
|
|
1641
1641
|
</div>
|
|
1642
1642
|
</div>
|
|
1643
|
-
`;let v=b.firstElementChild,C=null,S=()=>{m.delete(C),C=null,document.removeEventListener("mouseup",S,!0)},D=async F=>{F.detail>1&&F.preventDefault();let N=F.target.closest(".mermaid-zoom-menu-control");N&&(C=N.dataset.action,m.add(C),document.addEventListener("mouseup",S,!0))};return v.addEventListener("mousedown",D),i.appendChild(v),()=>{S(),i.removeChild(v),v.removeEventListener("mousedown",D)}};function Cje(i){if(typeof document<"u"){var s=document.createElement("style"),l=document.createTextNode(i);s.appendChild(l),document.head.appendChild(s)}}Cje(':root{--mermaid-zoom-control-size: 20px;--mermaid-zoom-control-pad: 5px;--mermaid-zoom-control-color: #000}[data-mermaid-zoom-enabled="1"]{position:relative}[data-mermaid-zoom-enabled="1"]>svg{outline:solid 1px var(--mermaid-zoom-control-color)}@keyframes mermaid-zoom-menu-controls-fadein{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.mermaid-zoom-menu{position:absolute;position:sticky;top:0;height:calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);overflow:hidden}.mermaid-zoom-menu-controls{position:absolute;right:0;top:0;height:calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);width:calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);animation:mermaid-zoom-menu-controls-fadein ease .2s}.mermaid-zoom-menu-control{position:absolute;width:var(--mermaid-zoom-control-size);height:var(--mermaid-zoom-control-size);pointer-events:all;cursor:pointer;transition:all .2s}.mermaid-zoom-menu-control:hover{transform:scale(1.3)}.mermaid-zoom-menu-control:active{transform:scale(1)}.mermaid-zoom-menu-control[data-action=up]{right:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);bottom:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3)}.mermaid-zoom-menu-control[data-action=down]{right:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);bottom:var(--mermaid-zoom-control-pad)}.mermaid-zoom-menu-control[data-action=reset]{right:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);bottom:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2)}.mermaid-zoom-menu-control[data-action=left]{right:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);bottom:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2)}.mermaid-zoom-menu-control[data-action=right]{right:var(--mermaid-zoom-control-pad);bottom:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2)}.mermaid-zoom-menu-control[data-action=zoomout]{right:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);bottom:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3)}.mermaid-zoom-menu-control[data-action=zoomin]{right:var(--mermaid-zoom-control-pad);bottom:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3)}.mermaid-zoom-menu-control svg{color:var(--mermaid-zoom-control-color);width:var(--mermaid-zoom-control-size);height:var(--mermaid-zoom-control-size)}');var Aje="mermaidZoom";function Lje(i){return i.replace(/^(.)/,(s,l)=>l.toUpperCase())}function ojt(i,s,l){i[Aje+Lje(s)]=String(l)}function EX(i,s){return i[Aje+Lje(s)]}var CHn=i=>{let s=document.createElement("div"),{width:l,height:p}=i.getBoundingClientRect(),m=`top: 0; left: 0; width: ${l}px; height: ${p}px; position: absolute; pointer-events: none;`;return s.innerHTML=`<div class="mermaid-zoom-interaction" style="${m}"></div>`,s.firstElementChild},SHn=(i,s)=>{let l=i.querySelector("svg"),{maximumScale:p}=s,m=[],b=Dn(l);if(!l.querySelector("g.zoom-layer")){let S=document.createElementNS("http://www.w3.org/2000/svg","g");S.setAttribute("class","zoom-layer"),Array.from(l.childNodes).forEach(D=>{S.appendChild(D)}),l.appendChild(S)}let y=b.select("g.zoom-layer"),v=CHn(l),C=qOt().on("zoom",S=>y.attr("transform",S.transform)).scaleExtent([1,p]);return b.call(C),m.push(()=>b.on(".zoom",null)),s.resetOnBlur&&m.push(()=>{b.call(C.transform,px)}),s.showMenu&&m.push(_je(v,b,y,C)),s.bindKeys&&m.push(Tje(b,y,C)),i.appendChild(v),m.push(()=>i.removeChild(v)),()=>m.forEach(S=>S())};function AHn(i){return i.closest('[data-mermaid-zoom-allowed="1"]')}function LHn(i){return i.closest('[data-mermaid-zoom-allowed="1"] > svg')}function MHn(i){return i.closest('[data-mermaid-zoom-enabled="1"] > svg')}function IHn(i){return i.closest('[data-mermaid-zoom-enabled="1"] > .mermaid-zoom-interaction')}function Sje(i,s){ojt(i.dataset,"allowed",s)}function DHn(i){return EX(i.dataset,"enabled")==="1"}function sjt(i,s){ojt(i.dataset,"enabled",s)}function cjt(i){let s=AHn(i.target),l=LHn(i.target);if(!s||!l||DHn(s))return;sjt(s,"1");let p=OHn(s),m=SHn(s,p),b=y=>{let v=y.target;!MHn(v)&&!IHn(v)&&(m(),sjt(s,"0"),document.removeEventListener("mousedown",b,!0))};document.addEventListener("mousedown",b,!0)}function OHn(i){return{maximumScale:Number(EX(i.dataset,"maximumScale")),resetOnBlur:EX(i.dataset,"resetOnBlur")==="true",showMenu:EX(i.dataset,"showMenu")==="true",bindKeys:EX(i.dataset,"bindKeys")==="true"}}function Mje(i,s){let l=Object.assign({maximumScale:5,resetOnBlur:!1,showMenu:!1,bindKeys:!1},s);if(s===!1){Sje(i,"0"),sjt(i,"0");return}Sje(i,"1");for(let p of Object.keys(l))ojt(i.dataset,p,l[p])}bd.initialize({startOnLoad:!1,theme:"forest"});var ujt=window.mermaidJsonp=window.mermaidJsonp||[],ljt=ujt.splice(0,ujt.length);ujt.push=function(...i){return i.forEach(s=>{ljt.push(s),Ije()}),ljt.length};var fjt=!1;function Ije(){fjt||Dje()}async function Dje(){fjt=!0;let i=ljt.shift();if(i)return await i({run:async({querySelector:s=".mermaid",nodes:l}={})=>{let p=Array.from(l||document.querySelectorAll(s)),{zoom:m=!1}=bd.mermaidAPI.getConfig();for(let b of p){let y=`mermaid-${Date.now()}`,v=b.getAttribute("data-content")||"",C=s4e(
|
|
1643
|
+
`;let v=b.firstElementChild,C=null,S=()=>{m.delete(C),C=null,document.removeEventListener("mouseup",S,!0)},D=async F=>{F.detail>1&&F.preventDefault();let N=F.target.closest(".mermaid-zoom-menu-control");N&&(C=N.dataset.action,m.add(C),document.addEventListener("mouseup",S,!0))};return v.addEventListener("mousedown",D),i.appendChild(v),()=>{S(),i.removeChild(v),v.removeEventListener("mousedown",D)}};function Cje(i){if(typeof document<"u"){var s=document.createElement("style"),l=document.createTextNode(i);s.appendChild(l),document.head.appendChild(s)}}Cje(':root{--mermaid-zoom-control-size: 20px;--mermaid-zoom-control-pad: 5px;--mermaid-zoom-control-color: #000}[data-mermaid-zoom-enabled="1"]{position:relative}[data-mermaid-zoom-enabled="1"]>svg{outline:solid 1px var(--mermaid-zoom-control-color)}@keyframes mermaid-zoom-menu-controls-fadein{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.mermaid-zoom-menu{position:absolute;position:sticky;top:0;height:calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);overflow:hidden}.mermaid-zoom-menu-controls{position:absolute;right:0;top:0;height:calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);width:calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);animation:mermaid-zoom-menu-controls-fadein ease .2s}.mermaid-zoom-menu-control{position:absolute;width:var(--mermaid-zoom-control-size);height:var(--mermaid-zoom-control-size);pointer-events:all;cursor:pointer;transition:all .2s}.mermaid-zoom-menu-control:hover{transform:scale(1.3)}.mermaid-zoom-menu-control:active{transform:scale(1)}.mermaid-zoom-menu-control[data-action=up]{right:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);bottom:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3)}.mermaid-zoom-menu-control[data-action=down]{right:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);bottom:var(--mermaid-zoom-control-pad)}.mermaid-zoom-menu-control[data-action=reset]{right:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);bottom:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2)}.mermaid-zoom-menu-control[data-action=left]{right:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);bottom:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2)}.mermaid-zoom-menu-control[data-action=right]{right:var(--mermaid-zoom-control-pad);bottom:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2)}.mermaid-zoom-menu-control[data-action=zoomout]{right:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);bottom:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3)}.mermaid-zoom-menu-control[data-action=zoomin]{right:var(--mermaid-zoom-control-pad);bottom:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3)}.mermaid-zoom-menu-control svg{color:var(--mermaid-zoom-control-color);width:var(--mermaid-zoom-control-size);height:var(--mermaid-zoom-control-size)}');var Aje="mermaidZoom";function Lje(i){return i.replace(/^(.)/,(s,l)=>l.toUpperCase())}function ojt(i,s,l){i[Aje+Lje(s)]=String(l)}function EX(i,s){return i[Aje+Lje(s)]}var CHn=i=>{let s=document.createElement("div"),{width:l,height:p}=i.getBoundingClientRect(),m=`top: 0; left: 0; width: ${l}px; height: ${p}px; position: absolute; pointer-events: none;`;return s.innerHTML=`<div class="mermaid-zoom-interaction" style="${m}"></div>`,s.firstElementChild},SHn=(i,s)=>{let l=i.querySelector("svg"),{maximumScale:p}=s,m=[],b=Dn(l);if(!l.querySelector("g.zoom-layer")){let S=document.createElementNS("http://www.w3.org/2000/svg","g");S.setAttribute("class","zoom-layer"),Array.from(l.childNodes).forEach(D=>{S.appendChild(D)}),l.appendChild(S)}let y=b.select("g.zoom-layer"),v=CHn(l),C=qOt().on("zoom",S=>y.attr("transform",S.transform)).scaleExtent([1,p]);return b.call(C),m.push(()=>b.on(".zoom",null)),s.resetOnBlur&&m.push(()=>{b.call(C.transform,px)}),s.showMenu&&m.push(_je(v,b,y,C)),s.bindKeys&&m.push(Tje(b,y,C)),i.appendChild(v),m.push(()=>i.removeChild(v)),()=>m.forEach(S=>S())};function AHn(i){return i.closest('[data-mermaid-zoom-allowed="1"]')}function LHn(i){return i.closest('[data-mermaid-zoom-allowed="1"] > svg')}function MHn(i){return i.closest('[data-mermaid-zoom-enabled="1"] > svg')}function IHn(i){return i.closest('[data-mermaid-zoom-enabled="1"] > .mermaid-zoom-interaction')}function Sje(i,s){ojt(i.dataset,"allowed",s)}function DHn(i){return EX(i.dataset,"enabled")==="1"}function sjt(i,s){ojt(i.dataset,"enabled",s)}function cjt(i){let s=AHn(i.target),l=LHn(i.target);if(!s||!l||DHn(s))return;sjt(s,"1");let p=OHn(s),m=SHn(s,p),b=y=>{let v=y.target;!MHn(v)&&!IHn(v)&&(m(),sjt(s,"0"),document.removeEventListener("mousedown",b,!0))};document.addEventListener("mousedown",b,!0)}function OHn(i){return{maximumScale:Number(EX(i.dataset,"maximumScale")),resetOnBlur:EX(i.dataset,"resetOnBlur")==="true",showMenu:EX(i.dataset,"showMenu")==="true",bindKeys:EX(i.dataset,"bindKeys")==="true"}}function Mje(i,s){let l=Object.assign({maximumScale:5,resetOnBlur:!1,showMenu:!1,bindKeys:!1},s);if(s===!1){Sje(i,"0"),sjt(i,"0");return}Sje(i,"1");for(let p of Object.keys(l))ojt(i.dataset,p,l[p])}bd.initialize({startOnLoad:!1,theme:"forest"});var ujt=window.mermaidJsonp=window.mermaidJsonp||[],ljt=ujt.splice(0,ujt.length);ujt.push=function(...i){return i.forEach(s=>{ljt.push(s),Ije()}),ljt.length};var fjt=!1;function Ije(){fjt||Dje()}async function Dje(){fjt=!0;let i=ljt.shift();if(i)return await i({run:async({querySelector:s=".mermaid",nodes:l}={})=>{let p=Array.from(l||document.querySelectorAll(s)),{zoom:m=!1}=bd.mermaidAPI.getConfig();for(let b of p){let y=`mermaid-${Date.now()}`,v=decodeURIComponent(b.getAttribute("data-content")||""),C=s4e(v);v.replace(/\n*$/,"").endsWith(" ")&&(C+=" ");let S=C.trimStart().replace(/<br\s*\/?>/gi,"<br/>"),{svg:D,bindFunctions:F}=await bd.render(y,S,b);b.innerHTML=D,F&&F(b),Mje(b,m)}},initialize:s=>{bd.initialize({startOnLoad:!1,...s});let{zoom:l}=bd.mermaidAPI.getConfig();document.removeEventListener("click",cjt),l&&document.addEventListener("click",cjt)},render:bd.render,parseError:bd.parseError,parse:bd.parse,setParseErrorHandler:bd.setParseErrorHandler}),Dje();fjt=!1}Ije();})();
|
|
1644
1644
|
/*! Bundled license information:
|
|
1645
1645
|
|
|
1646
1646
|
dompurify/dist/purify.js:
|