-
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathMindMap.razor.js
More file actions
110 lines (94 loc) · 2.55 KB
/
MindMap.razor.js
File metadata and controls
110 lines (94 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import MindMap from "./simpleMindMap.esm.min.js"
import Themes from "./themes.esm.min.js"
import Data from '../BootstrapBlazor/modules/data.js'
if (window.BootstrapBlazor === void 0) {
window.BootstrapBlazor = {};
}
export async function init(id, invoke, data, options) {
const el = document.getElementById(id);
if (el === null) {
return;
}
Themes.init(MindMap);
options = options || {};
options.el = el;
const d = JSON.parse(data);
if (d.root === null) {
options.data = d;
}
const mindMap = new MindMap(options);
if (d.root) {
mindMap.setFullData(d)
}
const observer = new ResizeObserver(() => {
mindMap.resize();
});
observer.observe(el);
Data.set(id, { el, invoke, mindMap, observer });
}
export function update(id, options) {
const mm = Data.get(id);
const { mindMap } = mm;
const { layout, theme } = options;
if (layout !== mindMap.opt.layout) {
mindMap.setLayout(layout);
}
if (theme !== mindMap.opt.theme) {
mindMap.setTheme(theme);
}
}
export function execute(id, method, args) {
const mm = Data.get(id);
const { mindMap } = mm;
const fn = BootstrapBlazor.MindMap && BootstrapBlazor.MindMap.callbacks[method] || mindMap[method];
if (fn) {
fn.apply(mindMap, args);
}
}
export function getData(id, withConfig = false) {
const mm = Data.get(id);
const { mindMap } = mm;
const data = mindMap.getData(withConfig);
return JSON.stringify(data);
}
export function setData(id, jsondata) {
const mm = Data.get(id);
const { mindMap } = mm;
let data = JSON.parse(jsondata)
if (data.root) {
mindMap.setFullData(data)
}
else {
mindMap.setData(data)
}
mindMap.view.reset()
}
export function exportAs(id, type = 'png', isDownload = true, fileName = 'mindMap', withConfig = true) {
const mm = Data.get(id);
const { mindMap } = mm;
return mindMap.export(type, isDownload, fileName, withConfig)
}
export function reset(id) {
const mm = Data.get(id);
const { mindMap } = mm;
mindMap.view.reset()
}
export function fit(id) {
const mm = Data.get(id);
const { mindMap } = mm;
mindMap.view.fit()
}
export function scale(id, scale, cx, cy) {
const mm = Data.get(id);
const { mindMap } = mm;
mindMap.view.setScale(scale, cx, cy)
}
export function dispose(id) {
const mm = Data.get(id);
Data.remove(id);
const { observer } = mm;
if (observer) {
observer.disconnect();
delete mm.observer;
}
}