@diplodoc/mermaid-extension 1.2.3 → 1.3.1
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/build/plugin/index-node.d.ts +1 -0
- package/{plugin/index.js → build/plugin/index-node.js} +41 -24
- package/build/plugin/index-node.js.map +7 -0
- package/build/plugin/index.js +86 -0
- package/build/plugin/index.js.map +7 -0
- package/build/plugin/transform-node.d.ts +4 -0
- package/{plugin → build/plugin}/transform.d.ts +1 -5
- package/build/plugin/types.d.ts +8 -0
- package/{react → build/react}/index.d.ts +1 -1
- package/{react → build/react}/index.js +6 -9
- package/build/react/index.js.map +7 -0
- package/build/runtime/index-node.js +1684 -0
- package/{runtime/index.js.map → build/runtime/index-node.js.map} +4 -4
- package/build/runtime/index.js +362 -0
- package/build/runtime/index.js.map +7 -0
- package/build/types.d.ts +40 -0
- package/package.json +46 -24
- package/plugin/index.js.map +0 -7
- package/react/index.js.map +0 -7
- package/runtime/index.js +0 -1683
- /package/{plugin → build/plugin}/index.d.ts +0 -0
- /package/{runtime → build/runtime}/index.d.ts +0 -0
- /package/{runtime → build/runtime}/zoom-control.d.ts +0 -0
- /package/{runtime → build/runtime}/zoom.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { transform } from './transform-node';
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,16 +17,29 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
|
-
// src/plugin/index.ts
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
23
|
-
transform: () =>
|
|
30
|
+
// src/plugin/index-node.ts
|
|
31
|
+
var index_node_exports = {};
|
|
32
|
+
__export(index_node_exports, {
|
|
33
|
+
transform: () => transform2
|
|
24
34
|
});
|
|
25
|
-
module.exports = __toCommonJS(
|
|
35
|
+
module.exports = __toCommonJS(index_node_exports);
|
|
36
|
+
|
|
37
|
+
// src/plugin/transform-node.ts
|
|
38
|
+
var import_node_fs = require("node:fs");
|
|
39
|
+
var import_node_path = require("node:path");
|
|
26
40
|
|
|
27
41
|
// src/plugin/transform.ts
|
|
42
|
+
var import_markdown_it = __toESM(require("markdown-it"));
|
|
28
43
|
function isMermaidBlock(token) {
|
|
29
44
|
return token.type === "fence" && token.info.match(/^\s*mermaid(\s*|$)/);
|
|
30
45
|
}
|
|
@@ -37,18 +52,10 @@ function hidden(box, field, value) {
|
|
|
37
52
|
}
|
|
38
53
|
return box;
|
|
39
54
|
}
|
|
40
|
-
function copy(from, to) {
|
|
41
|
-
const { mkdirSync, copyFileSync } = dynrequire("node:fs");
|
|
42
|
-
const { dirname } = dynrequire("node:path");
|
|
43
|
-
mkdirSync(dirname(to), { recursive: true });
|
|
44
|
-
copyFileSync(from, to);
|
|
45
|
-
}
|
|
46
|
-
function dynrequire(module) {
|
|
47
|
-
return eval(`require('${module}')`);
|
|
48
|
-
}
|
|
49
55
|
var registerTransforms = (md, {
|
|
50
56
|
classes,
|
|
51
57
|
runtime,
|
|
58
|
+
onBundle: onBundle2,
|
|
52
59
|
bundle,
|
|
53
60
|
output,
|
|
54
61
|
updateTokens
|
|
@@ -66,13 +73,8 @@ var registerTransforms = (md, {
|
|
|
66
73
|
env.meta = env.meta || {};
|
|
67
74
|
env.meta.script = env.meta.script || [];
|
|
68
75
|
env.meta.script.push(runtime);
|
|
69
|
-
if (bundle) {
|
|
70
|
-
|
|
71
|
-
const file = join("@diplodoc/mermaid-extension", "runtime");
|
|
72
|
-
if (!env.bundled.has(file)) {
|
|
73
|
-
env.bundled.add(file);
|
|
74
|
-
copy(require.resolve(file), join(output, runtime));
|
|
75
|
-
}
|
|
76
|
+
if (bundle && onBundle2) {
|
|
77
|
+
onBundle2(env, output, runtime);
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
80
|
};
|
|
@@ -104,8 +106,7 @@ function transform(options = {}) {
|
|
|
104
106
|
};
|
|
105
107
|
Object.assign(plugin, {
|
|
106
108
|
collect(input, { destRoot }) {
|
|
107
|
-
const
|
|
108
|
-
const md = new MdIt().use((md2) => {
|
|
109
|
+
const md = new import_markdown_it.default().use((md2) => {
|
|
109
110
|
registerTransforms(md2, {
|
|
110
111
|
classes,
|
|
111
112
|
runtime,
|
|
@@ -119,8 +120,24 @@ function transform(options = {}) {
|
|
|
119
120
|
});
|
|
120
121
|
return plugin;
|
|
121
122
|
}
|
|
123
|
+
|
|
124
|
+
// src/plugin/transform-node.ts
|
|
125
|
+
function copy(from, to) {
|
|
126
|
+
(0, import_node_fs.mkdirSync)((0, import_node_path.dirname)(to), { recursive: true });
|
|
127
|
+
(0, import_node_fs.copyFileSync)(from, to);
|
|
128
|
+
}
|
|
129
|
+
var onBundle = (env, output, runtime) => {
|
|
130
|
+
const file = (0, import_node_path.join)("@diplodoc/mermaid-extension", "runtime");
|
|
131
|
+
if (!env.bundled.has(file)) {
|
|
132
|
+
env.bundled.add(file);
|
|
133
|
+
copy(require.resolve(file), (0, import_node_path.join)(output, runtime));
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
var transform2 = (options) => {
|
|
137
|
+
return transform({ ...options, onBundle });
|
|
138
|
+
};
|
|
122
139
|
// Annotate the CommonJS export names for ESM import in node:
|
|
123
140
|
0 && (module.exports = {
|
|
124
141
|
transform
|
|
125
142
|
});
|
|
126
|
-
//# sourceMappingURL=index.js.map
|
|
143
|
+
//# sourceMappingURL=index-node.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/plugin/index-node.ts", "../../src/plugin/transform-node.ts", "../../src/plugin/transform.ts"],
|
|
4
|
+
"sourcesContent": ["export {transform} from './transform-node';\n", "import {copyFileSync, mkdirSync} from 'node:fs';\nimport {dirname, join} from 'node:path';\n\nimport {transform as baseTransform} from './transform';\nimport {PluginOptions} from './types';\n\nfunction copy(from: string, to: string) {\n mkdirSync(dirname(to), {recursive: true});\n copyFileSync(from, to);\n}\n\nconst onBundle = (env: {bundled: Set<string>}, output: string, runtime: string) => {\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\nexport const transform = (options: Partial<Omit<PluginOptions, 'onBundle'>>) => {\n return baseTransform({...options, onBundle});\n};\n", "import 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\nimport MarkdownIt from 'markdown-it';\n\nimport {PluginOptions} from './types';\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\nconst registerTransforms = (\n md: MarkdownIt,\n {\n classes,\n runtime,\n onBundle,\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 && onBundle) {\n onBundle(env, output, runtime);\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 md = new MarkdownIt().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
|
+
"names": ["transform", "onBundle", "MarkdownIt", "md", "transform"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// src/plugin/transform.ts
|
|
2
|
+
import MarkdownIt from "markdown-it";
|
|
3
|
+
function isMermaidBlock(token) {
|
|
4
|
+
return token.type === "fence" && token.info.match(/^\s*mermaid(\s*|$)/);
|
|
5
|
+
}
|
|
6
|
+
function hidden(box, field, value) {
|
|
7
|
+
if (!(field in box)) {
|
|
8
|
+
Object.defineProperty(box, field, {
|
|
9
|
+
enumerable: false,
|
|
10
|
+
value
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return box;
|
|
14
|
+
}
|
|
15
|
+
var registerTransforms = (md, {
|
|
16
|
+
classes,
|
|
17
|
+
runtime,
|
|
18
|
+
onBundle,
|
|
19
|
+
bundle,
|
|
20
|
+
output,
|
|
21
|
+
updateTokens
|
|
22
|
+
}) => {
|
|
23
|
+
const applyTransforms = ({ tokens, env }) => {
|
|
24
|
+
hidden(env, "bundled", /* @__PURE__ */ new Set());
|
|
25
|
+
const blocks = tokens.filter(isMermaidBlock);
|
|
26
|
+
if (updateTokens && blocks.length) {
|
|
27
|
+
blocks.forEach((token) => {
|
|
28
|
+
token.type = "mermaid";
|
|
29
|
+
token.attrSet("class", `mermaid ${classes}`);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (blocks.length) {
|
|
33
|
+
env.meta = env.meta || {};
|
|
34
|
+
env.meta.script = env.meta.script || [];
|
|
35
|
+
env.meta.script.push(runtime);
|
|
36
|
+
if (bundle && onBundle) {
|
|
37
|
+
onBundle(env, output, runtime);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
try {
|
|
42
|
+
md.core.ruler.after("fence", "mermaid", applyTransforms);
|
|
43
|
+
} catch (e) {
|
|
44
|
+
md.core.ruler.push("mermaid", applyTransforms);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
function transform(options = {}) {
|
|
48
|
+
const {
|
|
49
|
+
runtime = "_assets/mermaid-extension.js",
|
|
50
|
+
classes = "yfm-mermaid",
|
|
51
|
+
bundle = true
|
|
52
|
+
} = options;
|
|
53
|
+
const plugin = function(md, { output = "." }) {
|
|
54
|
+
registerTransforms(md, {
|
|
55
|
+
classes,
|
|
56
|
+
runtime,
|
|
57
|
+
bundle,
|
|
58
|
+
output,
|
|
59
|
+
updateTokens: true
|
|
60
|
+
});
|
|
61
|
+
md.renderer.rules.mermaid = (tokens, idx) => {
|
|
62
|
+
const token = tokens[idx];
|
|
63
|
+
const code = encodeURIComponent(token.content.trimStart());
|
|
64
|
+
return `<div class="mermaid" data-content="${code}"></div>`;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
Object.assign(plugin, {
|
|
68
|
+
collect(input, { destRoot }) {
|
|
69
|
+
const md = new MarkdownIt().use((md2) => {
|
|
70
|
+
registerTransforms(md2, {
|
|
71
|
+
classes,
|
|
72
|
+
runtime,
|
|
73
|
+
bundle,
|
|
74
|
+
output: destRoot,
|
|
75
|
+
updateTokens: false
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
md.parse(input, {});
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return plugin;
|
|
82
|
+
}
|
|
83
|
+
export {
|
|
84
|
+
transform
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/plugin/transform.ts"],
|
|
4
|
+
"sourcesContent": ["import 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\nimport MarkdownIt from 'markdown-it';\n\nimport {PluginOptions} from './types';\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\nconst registerTransforms = (\n md: MarkdownIt,\n {\n classes,\n runtime,\n onBundle,\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 && onBundle) {\n onBundle(env, output, runtime);\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 md = new MarkdownIt().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": ";AAOA,OAAO,gBAAgB;AAIvB,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,IAAM,qBAAqB,CACvB,IACA;AAAA,EACI;AAAA,EACA;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,UAAU,UAAU;AACpB,iBAAS,KAAK,QAAQ,OAAO;AAAA,MACjC;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,UAAU,CAAC;AAEzD,aAAO,sCAAsC,IAAI;AAAA,IACrD;AAAA,EACJ;AAEA,SAAO,OAAO,QAAQ;AAAA,IAClB,QAAQ,OAAe,EAAC,SAAQ,GAAiB;AAC7C,YAAM,KAAK,IAAI,WAAW,EAAE,IAAI,CAACA,QAAmB;AAChD,2BAAmBA,KAAI;AAAA,UACnB;AAAA,UACA;AAAA,UACA;AAAA,UACA,QAAQ;AAAA,UACR,cAAc;AAAA,QAClB,CAAC;AAAA,MACL,CAAC;AAED,SAAG,MAAM,OAAO,CAAC,CAAC;AAAA,IACtB;AAAA,EACJ,CAAC;AAED,SAAO;AACX;",
|
|
6
|
+
"names": ["md"]
|
|
7
|
+
}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import type { MarkdownItPluginCb } from '@diplodoc/transform/lib/plugins/typings';
|
|
2
|
-
|
|
3
|
-
runtime: string;
|
|
4
|
-
classes: string;
|
|
5
|
-
bundle: boolean;
|
|
6
|
-
};
|
|
2
|
+
import { PluginOptions } from './types';
|
|
7
3
|
export declare function transform(options?: Partial<PluginOptions>): MarkdownItPluginCb<{
|
|
8
4
|
output: string;
|
|
9
5
|
}>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { InitConfig, RunOptions } from '../types';
|
|
2
2
|
export type RuntimeOptions = {
|
|
3
|
-
onError?: (error:
|
|
3
|
+
onError?: (error: unknown) => void;
|
|
4
4
|
};
|
|
5
5
|
export declare function MermaidRuntime(props: InitConfig & RunOptions & RuntimeOptions): null;
|
|
6
6
|
export declare function useMermaid(): (config: InitConfig, options?: RunOptions) => Promise<void>;
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
// src/react/index.ts
|
|
2
2
|
import { useCallback, useEffect, useState } from "react";
|
|
3
3
|
function pick(object, props) {
|
|
4
|
-
return Object.keys(object).reduce(
|
|
5
|
-
(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
{}
|
|
12
|
-
);
|
|
4
|
+
return Object.keys(object).reduce((acc, key) => {
|
|
5
|
+
if (props.includes(key)) {
|
|
6
|
+
acc[key] = object[key];
|
|
7
|
+
}
|
|
8
|
+
return acc;
|
|
9
|
+
}, {});
|
|
13
10
|
}
|
|
14
11
|
function omit(object, props) {
|
|
15
12
|
return Object.keys(object).reduce(
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/react/index.ts"],
|
|
4
|
+
"sourcesContent": ["import type {InitConfig, RunOptions} from '../types';\n\nimport {useCallback, useEffect, useState} from 'react';\n\nexport type RuntimeOptions = {\n onError?: (error: unknown) => void;\n};\n\nfunction pick<\n O extends Hash,\n P extends string,\n R extends {\n [K in P]: O[K];\n },\n>(object: O, props: readonly P[]): R {\n return Object.keys(object).reduce((acc, key) => {\n if ((props as readonly string[]).includes(key)) {\n acc[key] = object[key];\n }\n\n return acc;\n }, {} as Hash) as R;\n}\n\nfunction omit<\n O extends Hash,\n P extends string,\n R extends {\n [K in keyof Omit<O, P>]: O[K];\n },\n>(object: O, props: readonly P[]): R {\n return Object.keys(object).reduce(\n (acc, key) => {\n if (!(props as readonly string[]).includes(key)) {\n acc[key] = object[key];\n }\n\n return acc;\n },\n {} as Record<string, unknown>,\n ) as R;\n}\n\nexport function MermaidRuntime(props: InitConfig & RunOptions & RuntimeOptions) {\n const renderMermaid = useMermaid();\n const config = omit(props as Hash, ['querySelector', 'nodes', 'onError']);\n const options = pick(props as Hash, ['querySelector', 'nodes']);\n\n useEffect(() => {\n renderMermaid(config, options as Hash).catch(props.onError || (() => {}));\n });\n\n return null;\n}\n\nexport function useMermaid() {\n const [mermaid, setMermaid] = useState<Parameters<Callback>[0] | null>(null);\n const render = useCallback(\n async (config: InitConfig, options?: RunOptions) => {\n if (mermaid) {\n mermaid.initialize(config);\n return mermaid.run(options);\n }\n },\n [mermaid],\n );\n\n useEffect(() => {\n (window.mermaidJsonp = window.mermaidJsonp || []).push(setMermaid);\n\n return () => {\n const index = window.mermaidJsonp.indexOf(setMermaid);\n if (index > -1) {\n window.mermaidJsonp.splice(index, 1);\n }\n };\n }, []);\n\n return render;\n}\n"],
|
|
5
|
+
"mappings": ";AAEA,SAAQ,aAAa,WAAW,gBAAe;AAM/C,SAAS,KAMP,QAAW,OAAwB;AACjC,SAAO,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,KAAK,QAAQ;AAC5C,QAAK,MAA4B,SAAS,GAAG,GAAG;AAC5C,UAAI,GAAG,IAAI,OAAO,GAAG;AAAA,IACzB;AAEA,WAAO;AAAA,EACX,GAAG,CAAC,CAAS;AACjB;AAEA,SAAS,KAMP,QAAW,OAAwB;AACjC,SAAO,OAAO,KAAK,MAAM,EAAE;AAAA,IACvB,CAAC,KAAK,QAAQ;AACV,UAAI,CAAE,MAA4B,SAAS,GAAG,GAAG;AAC7C,YAAI,GAAG,IAAI,OAAO,GAAG;AAAA,MACzB;AAEA,aAAO;AAAA,IACX;AAAA,IACA,CAAC;AAAA,EACL;AACJ;AAEO,SAAS,eAAe,OAAiD;AAC5E,QAAM,gBAAgB,WAAW;AACjC,QAAM,SAAS,KAAK,OAAe,CAAC,iBAAiB,SAAS,SAAS,CAAC;AACxE,QAAM,UAAU,KAAK,OAAe,CAAC,iBAAiB,OAAO,CAAC;AAE9D,YAAU,MAAM;AACZ,kBAAc,QAAQ,OAAe,EAAE,MAAM,MAAM,YAAY,MAAM;AAAA,IAAC,EAAE;AAAA,EAC5E,CAAC;AAED,SAAO;AACX;AAEO,SAAS,aAAa;AACzB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAyC,IAAI;AAC3E,QAAM,SAAS;AAAA,IACX,OAAO,QAAoB,YAAyB;AAChD,UAAI,SAAS;AACT,gBAAQ,WAAW,MAAM;AACzB,eAAO,QAAQ,IAAI,OAAO;AAAA,MAC9B;AAAA,IACJ;AAAA,IACA,CAAC,OAAO;AAAA,EACZ;AAEA,YAAU,MAAM;AACZ,KAAC,OAAO,eAAe,OAAO,gBAAgB,CAAC,GAAG,KAAK,UAAU;AAEjE,WAAO,MAAM;AACT,YAAM,QAAQ,OAAO,aAAa,QAAQ,UAAU;AACpD,UAAI,QAAQ,IAAI;AACZ,eAAO,aAAa,OAAO,OAAO,CAAC;AAAA,MACvC;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,CAAC;AAEL,SAAO;AACX;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|