mind-elixir 5.11.1-beta.0 → 5.11.1-beta.2
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/dist/MindElixir.css +1 -1
- package/dist/MindElixir.iife.js +4 -4
- package/dist/MindElixir.js +698 -663
- package/dist/MindElixirLite.css +1 -1
- package/dist/MindElixirLite.iife.js +4 -4
- package/dist/MindElixirLite.js +547 -508
- package/dist/PlaintextConverter.js +99 -96
- package/dist/types/arrow.d.ts +4 -4
- package/dist/types/docs.d.ts +2 -2
- package/dist/types/index.d.ts +19 -18
- package/dist/types/methods.d.ts +22 -17
- package/dist/types/summary.d.ts +3 -8
- package/dist/types/types/dom.d.ts +6 -3
- package/dist/types/types/index.d.ts +12 -5
- package/dist/types/utils/panHelper.d.ts +3 -1
- package/dist/types/utils/svg.d.ts +2 -2
- package/dist/types/viselect/src/index.d.ts +9 -9
- package/dist/types/viselect/src/types.d.ts +1 -1
- package/dist/types/viselect/src/utils/events.d.ts +1 -1
- package/dist/types/viselect/src/utils/matchesTrigger.d.ts +5 -5
- package/package.json +18 -17
- package/readme/es.md +453 -0
- package/readme/fr.md +437 -0
- package/readme/ja.md +452 -0
- package/readme/ko.md +435 -0
- package/readme/pt.md +436 -0
- package/readme/ru.md +435 -0
- package/readme/zh.md +453 -0
package/dist/MindElixirLite.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const Bn = 0, Wn = 1, Yn = 2, tt = {
|
|
2
2
|
name: "Latte",
|
|
3
3
|
type: "light",
|
|
4
4
|
palette: ["#dd7878", "#ea76cb", "#8839ef", "#e64553", "#fe640b", "#df8e1d", "#40a02b", "#209fb5", "#1e66f5", "#7287fd"],
|
|
@@ -25,7 +25,7 @@ const Yn = 0, Bn = 1, Wn = 2, nt = {
|
|
|
25
25
|
"--panel-border-color": "#eaeaea",
|
|
26
26
|
"--map-padding": "50px 80px"
|
|
27
27
|
}
|
|
28
|
-
},
|
|
28
|
+
}, et = {
|
|
29
29
|
name: "Dark",
|
|
30
30
|
type: "dark",
|
|
31
31
|
palette: ["#848FA0", "#748BE9", "#D2F9FE", "#4145A5", "#789AFA", "#706CF4", "#EF987F", "#775DD5", "#FCEECF", "#DA7FBC"],
|
|
@@ -56,53 +56,53 @@ const Yn = 0, Bn = 1, Wn = 2, nt = {
|
|
|
56
56
|
function Nt(t) {
|
|
57
57
|
return t.replace(/&/g, "&").replace(/</g, "<").replace(/"/g, """);
|
|
58
58
|
}
|
|
59
|
-
const
|
|
59
|
+
const G = function(t, e) {
|
|
60
60
|
if (e.id === t)
|
|
61
61
|
return e;
|
|
62
62
|
if (e.children && e.children.length) {
|
|
63
63
|
for (let n = 0; n < e.children.length; n++) {
|
|
64
|
-
const o =
|
|
64
|
+
const o = G(t, e.children[n]);
|
|
65
65
|
if (o) return o;
|
|
66
66
|
}
|
|
67
67
|
return null;
|
|
68
68
|
} else
|
|
69
69
|
return null;
|
|
70
|
-
},
|
|
70
|
+
}, nt = (t, e) => {
|
|
71
71
|
if (t.parent = e, t.children)
|
|
72
72
|
for (let n = 0; n < t.children.length; n++)
|
|
73
|
-
|
|
73
|
+
nt(t.children[n], t);
|
|
74
74
|
}, wt = (t, e, n) => {
|
|
75
75
|
t.expanded = e, t.children && t.children.forEach((o) => {
|
|
76
76
|
wt(o, e);
|
|
77
77
|
});
|
|
78
78
|
};
|
|
79
|
-
function
|
|
80
|
-
const s = n - t, i = o - e, c = Math.atan2(i, s) * 180 / Math.PI,
|
|
79
|
+
function _(t, e, n, o) {
|
|
80
|
+
const s = n - t, i = o - e, c = Math.atan2(i, s) * 180 / Math.PI, l = 12, a = 30, d = (c + 180 - a) * Math.PI / 180, f = (c + 180 + a) * Math.PI / 180;
|
|
81
81
|
return {
|
|
82
|
-
x1: n + Math.cos(
|
|
83
|
-
y1: o + Math.sin(
|
|
84
|
-
x2: n + Math.cos(f) *
|
|
85
|
-
y2: o + Math.sin(f) *
|
|
82
|
+
x1: n + Math.cos(d) * l,
|
|
83
|
+
y1: o + Math.sin(d) * l,
|
|
84
|
+
x2: n + Math.cos(f) * l,
|
|
85
|
+
y2: o + Math.sin(f) * l
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
|
-
function
|
|
88
|
+
function Y() {
|
|
89
89
|
return ((/* @__PURE__ */ new Date()).getTime().toString(16) + Math.random().toString(16).substring(2)).substring(2, 18);
|
|
90
90
|
}
|
|
91
|
-
const
|
|
92
|
-
const t =
|
|
91
|
+
const At = function() {
|
|
92
|
+
const t = Y();
|
|
93
93
|
return {
|
|
94
94
|
topic: this.newTopicName,
|
|
95
95
|
id: t
|
|
96
96
|
};
|
|
97
|
-
},
|
|
97
|
+
}, M = (t, e) => {
|
|
98
98
|
let n = 0, o = 0;
|
|
99
99
|
for (; e && e !== t; )
|
|
100
100
|
n += e.offsetLeft, o += e.offsetTop, e = e.offsetParent;
|
|
101
101
|
return { offsetLeft: n, offsetTop: o };
|
|
102
|
-
},
|
|
102
|
+
}, D = (t, e) => {
|
|
103
103
|
for (const n in e)
|
|
104
104
|
t.setAttribute(n, e[n]);
|
|
105
|
-
},
|
|
105
|
+
}, J = (t) => t ? t.tagName === "ME-TPC" : !1, ot = (t) => {
|
|
106
106
|
const e = /translate3d\(([^,]+),\s*([^,]+)/, n = t.match(e);
|
|
107
107
|
return n ? { x: parseFloat(n[1]), y: parseFloat(n[2]) } : { x: 0, y: 0 };
|
|
108
108
|
}, vt = function(t) {
|
|
@@ -121,16 +121,16 @@ const Pt = function() {
|
|
|
121
121
|
return Math.sqrt(n * n + o * o);
|
|
122
122
|
}, $t = function(t, e) {
|
|
123
123
|
if (!e)
|
|
124
|
-
return
|
|
124
|
+
return j(t), t;
|
|
125
125
|
let n = t.querySelector(".insert-preview");
|
|
126
126
|
const o = `insert-preview ${e} show`;
|
|
127
127
|
return n || (n = document.createElement("div"), t.appendChild(n)), n.className = o, t;
|
|
128
|
-
},
|
|
128
|
+
}, j = function(t) {
|
|
129
129
|
if (!t) return;
|
|
130
130
|
const e = t.querySelectorAll(".insert-preview");
|
|
131
131
|
for (const n of e || [])
|
|
132
132
|
n.remove();
|
|
133
|
-
},
|
|
133
|
+
}, dt = function(t, e) {
|
|
134
134
|
for (const n of e) {
|
|
135
135
|
const o = n.parentElement.parentElement.contains(t);
|
|
136
136
|
if (!(t && t.tagName === "ME-TPC" && t !== n && !o && t.nodeObj.parent)) return !1;
|
|
@@ -169,11 +169,17 @@ function Ot(t) {
|
|
|
169
169
|
pointerId: null
|
|
170
170
|
};
|
|
171
171
|
}
|
|
172
|
-
const
|
|
173
|
-
function
|
|
172
|
+
const Bt = 5;
|
|
173
|
+
function ft(t, e, n, o = !1) {
|
|
174
174
|
if (t.spacePressed) return !1;
|
|
175
175
|
const s = n.target;
|
|
176
|
-
|
|
176
|
+
if (s?.tagName !== "ME-TPC" || !s.nodeObj.parent) return !1;
|
|
177
|
+
if (e.startX = n.clientX, e.startY = n.clientY, e.pointerId = n.pointerId, t.dragged = t.currentNodes, o) {
|
|
178
|
+
xt(t, e);
|
|
179
|
+
const i = t.container.getBoundingClientRect();
|
|
180
|
+
bt(e.ghost, n.clientX - i.x, n.clientY - i.y);
|
|
181
|
+
}
|
|
182
|
+
return !0;
|
|
177
183
|
}
|
|
178
184
|
function bt(t, e, n) {
|
|
179
185
|
t.style.transform = `translate(${e - 10}px, ${n - 10}px)`, t.style.display = "block";
|
|
@@ -187,54 +193,54 @@ function xt(t, e) {
|
|
|
187
193
|
s.parentElement.parentElement.style.opacity = "0.5";
|
|
188
194
|
t.panHelper.clear();
|
|
189
195
|
}
|
|
190
|
-
function
|
|
196
|
+
function Wt(t, e, n) {
|
|
191
197
|
const { dragged: o } = t;
|
|
192
198
|
if (!o || e.pointerId !== n.pointerId) return;
|
|
193
199
|
const s = n.clientX - e.startX, i = n.clientY - e.startY, r = Math.sqrt(s * s + i * i);
|
|
194
|
-
if (!e.isDragging && r >
|
|
200
|
+
if (!e.isDragging && r > Bt && xt(t, e), !e.isDragging) return;
|
|
195
201
|
const c = t.container.getBoundingClientRect();
|
|
196
|
-
bt(e.ghost, n.clientX - c.x, n.clientY - c.y), n.clientX < c.x + 50 ? e.edgeMoveController.move(1, 0) : n.clientX > c.x + c.width - 50 ? e.edgeMoveController.move(-1, 0) : n.clientY < c.y + 50 ? e.edgeMoveController.move(0, 1) : n.clientY > c.y + c.height - 50 ? e.edgeMoveController.move(0, -1) : e.edgeMoveController.stop(),
|
|
197
|
-
const
|
|
198
|
-
if (
|
|
199
|
-
e.meet =
|
|
200
|
-
const
|
|
201
|
-
n.clientY > f +
|
|
202
|
+
bt(e.ghost, n.clientX - c.x, n.clientY - c.y), n.clientX < c.x + 50 ? e.edgeMoveController.move(1, 0) : n.clientX > c.x + c.width - 50 ? e.edgeMoveController.move(-1, 0) : n.clientY < c.y + 50 ? e.edgeMoveController.move(0, 1) : n.clientY > c.y + c.height - 50 ? e.edgeMoveController.move(0, -1) : e.edgeMoveController.stop(), j(e.meet);
|
|
203
|
+
const l = 12 * t.scaleVal, a = document.elementFromPoint(n.clientX, n.clientY - l);
|
|
204
|
+
if (dt(a, o)) {
|
|
205
|
+
e.meet = a;
|
|
206
|
+
const d = a.getBoundingClientRect(), f = d.y;
|
|
207
|
+
n.clientY > f + d.height ? e.insertType = "after" : e.insertType = "in";
|
|
202
208
|
} else {
|
|
203
|
-
const
|
|
204
|
-
if (
|
|
205
|
-
e.meet =
|
|
206
|
-
const p =
|
|
209
|
+
const d = document.elementFromPoint(n.clientX, n.clientY + l);
|
|
210
|
+
if (dt(d, o)) {
|
|
211
|
+
e.meet = d;
|
|
212
|
+
const p = d.getBoundingClientRect().y;
|
|
207
213
|
n.clientY < p ? e.insertType = "before" : e.insertType = "in";
|
|
208
214
|
} else
|
|
209
215
|
e.insertType = null, e.meet = null;
|
|
210
216
|
}
|
|
211
217
|
e.meet && $t(e.meet, e.insertType);
|
|
212
218
|
}
|
|
213
|
-
function
|
|
219
|
+
function Yt(t, e, n) {
|
|
214
220
|
const { dragged: o } = t;
|
|
215
221
|
if (!(!o || e.pointerId !== n.pointerId)) {
|
|
216
222
|
e.edgeMoveController.stop();
|
|
217
223
|
for (const s of o)
|
|
218
224
|
s.parentElement.parentElement.style.opacity = "1";
|
|
219
|
-
e.ghost.style.display = "none", e.ghost.innerHTML = "", e.isDragging && e.meet && (
|
|
225
|
+
e.ghost.style.display = "none", e.ghost.innerHTML = "", e.isDragging && e.meet && (j(e.meet), e.insertType === "before" ? t.moveNodeBefore(o, e.meet) : e.insertType === "after" ? t.moveNodeAfter(o, e.meet) : e.insertType === "in" && t.moveNodeIn(o, e.meet)), t.dragged = null, e.isDragging = !1, e.insertType = null, e.meet = null, e.pointerId = null;
|
|
220
226
|
}
|
|
221
227
|
}
|
|
222
|
-
function
|
|
228
|
+
function ut(t, e) {
|
|
223
229
|
const { dragged: n } = t;
|
|
224
230
|
if (n) {
|
|
225
231
|
e.edgeMoveController.stop();
|
|
226
232
|
for (const o of n)
|
|
227
233
|
o.parentElement.parentElement.style.opacity = "1";
|
|
228
|
-
e.meet &&
|
|
234
|
+
e.meet && j(e.meet), e.ghost.style.display = "none", e.ghost.innerHTML = "", t.dragged = null, e.isDragging = !1, e.insertType = null, e.meet = null, e.pointerId = null;
|
|
229
235
|
}
|
|
230
236
|
}
|
|
231
|
-
const
|
|
237
|
+
const I = {
|
|
232
238
|
LHS: "lhs",
|
|
233
239
|
RHS: "rhs"
|
|
234
240
|
}, Rt = function() {
|
|
235
241
|
this.nodes.innerHTML = "";
|
|
236
242
|
const t = this.createTopic(this.nodeData);
|
|
237
|
-
|
|
243
|
+
St.call(this, t, this.nodeData), t.draggable = !1;
|
|
238
244
|
const e = document.createElement("me-root");
|
|
239
245
|
e.appendChild(t);
|
|
240
246
|
const n = this.nodeData.children || [];
|
|
@@ -247,9 +253,9 @@ const B = {
|
|
|
247
253
|
Xt(this, n, e);
|
|
248
254
|
}, Xt = function(t, e, n) {
|
|
249
255
|
const o = document.createElement("me-main");
|
|
250
|
-
o.className =
|
|
256
|
+
o.className = I.LHS;
|
|
251
257
|
const s = document.createElement("me-main");
|
|
252
|
-
s.className =
|
|
258
|
+
s.className = I.RHS;
|
|
253
259
|
for (let i = 0; i < e.length; i++) {
|
|
254
260
|
const r = e[i], { grp: c } = t.createWrapper(r);
|
|
255
261
|
t.direction === 2 ? r.direction === 0 ? o.appendChild(c) : s.appendChild(c) : t.direction === 0 ? o.appendChild(c) : s.appendChild(c);
|
|
@@ -266,7 +272,7 @@ const B = {
|
|
|
266
272
|
const o = (this?.el ? this.el : e || document).querySelector(`[data-nodeid="me${t}"]`);
|
|
267
273
|
if (!o) throw new Error(`FindEle: Node ${t} not found, maybe it's collapsed.`);
|
|
268
274
|
return o;
|
|
269
|
-
},
|
|
275
|
+
}, St = function(t, e) {
|
|
270
276
|
if (t.innerHTML = "", e.style) {
|
|
271
277
|
const n = e.style;
|
|
272
278
|
for (const o in n)
|
|
@@ -302,7 +308,7 @@ const B = {
|
|
|
302
308
|
typeof o == "string" ? s.textContent = o : (s.textContent = o.text, o.className && (s.className = o.className), o.style && Object.assign(s.style, o.style)), n.appendChild(s);
|
|
303
309
|
}), t.appendChild(n), t.tags = n;
|
|
304
310
|
} else t.tags && (t.tags = void 0);
|
|
305
|
-
},
|
|
311
|
+
}, zt = function(t, e) {
|
|
306
312
|
const n = document.createElement("me-wrapper"), { p: o, tpc: s } = this.createParent(t);
|
|
307
313
|
if (n.appendChild(o), !e && t.children && t.children.length > 0) {
|
|
308
314
|
const i = jt(t.expanded);
|
|
@@ -312,25 +318,25 @@ const B = {
|
|
|
312
318
|
}
|
|
313
319
|
}
|
|
314
320
|
return { grp: n, top: o, tpc: s };
|
|
315
|
-
}, zt = function(t) {
|
|
316
|
-
const e = document.createElement("me-parent"), n = this.createTopic(t);
|
|
317
|
-
return Et.call(this, n, t), e.appendChild(n), { p: e, tpc: n };
|
|
318
321
|
}, Ft = function(t) {
|
|
322
|
+
const e = document.createElement("me-parent"), n = this.createTopic(t);
|
|
323
|
+
return St.call(this, n, t), e.appendChild(n), { p: e, tpc: n };
|
|
324
|
+
}, Gt = function(t) {
|
|
319
325
|
const e = document.createElement("me-children");
|
|
320
326
|
return e.append(...t), e;
|
|
321
|
-
},
|
|
327
|
+
}, _t = function(t) {
|
|
322
328
|
const e = document.createElement("me-tpc");
|
|
323
329
|
return e.nodeObj = t, e.dataset.nodeid = "me" + t.id, e;
|
|
324
330
|
};
|
|
325
|
-
function
|
|
331
|
+
function Et(t) {
|
|
326
332
|
const e = document.createRange();
|
|
327
333
|
e.selectNodeContents(t);
|
|
328
334
|
const n = window.getSelection();
|
|
329
335
|
n && (n.removeAllRanges(), n.addRange(e));
|
|
330
336
|
}
|
|
331
|
-
const
|
|
337
|
+
const qt = function(t) {
|
|
332
338
|
if (!t) return;
|
|
333
|
-
const e = document.createElement("div"), n = t.nodeObj, o = n.topic, { offsetLeft: s, offsetTop: i } =
|
|
339
|
+
const e = document.createElement("div"), n = t.nodeObj, o = n.topic, { offsetLeft: s, offsetTop: i } = M(this.nodes, t);
|
|
334
340
|
this.nodes.appendChild(e), e.id = "input-box", e.textContent = o, e.contentEditable = "plaintext-only", e.spellcheck = !1;
|
|
335
341
|
const r = getComputedStyle(t);
|
|
336
342
|
e.style.cssText = `
|
|
@@ -343,19 +349,19 @@ const _t = function(t) {
|
|
|
343
349
|
margin:${r.margin};
|
|
344
350
|
background-color:${r.backgroundColor !== "rgba(0, 0, 0, 0)" && r.backgroundColor};
|
|
345
351
|
border: ${r.border};
|
|
346
|
-
border-radius:${r.borderRadius}; `, this.direction === 0 && (e.style.right = "0"),
|
|
352
|
+
border-radius:${r.borderRadius}; `, this.direction === 0 && (e.style.right = "0"), t.style.opacity = "0", Et(e), this.bus.fire("operation", {
|
|
347
353
|
name: "beginEdit",
|
|
348
354
|
obj: t.nodeObj
|
|
349
355
|
}), e.addEventListener("keydown", (c) => {
|
|
350
356
|
c.stopPropagation();
|
|
351
|
-
const
|
|
352
|
-
if (
|
|
357
|
+
const l = c.key;
|
|
358
|
+
if (l === "Enter" || l === "Tab") {
|
|
353
359
|
if (c.shiftKey) return;
|
|
354
360
|
c.preventDefault(), e.blur(), this.container.focus();
|
|
355
|
-
} else
|
|
361
|
+
} else l === "Escape" && (c.preventDefault(), e.textContent = o, e.blur(), this.container.focus());
|
|
356
362
|
}), e.addEventListener("blur", () => {
|
|
357
363
|
if (!e) return;
|
|
358
|
-
e.remove();
|
|
364
|
+
t.style.opacity = "1", e.remove();
|
|
359
365
|
const c = e.innerText?.trim() || "";
|
|
360
366
|
c === o || c === "" || (n.topic = c, this.markdown ? t.text.innerHTML = this.markdown(n.topic, n) : t.text.textContent = c, this.linkDiv(), this.bus.fire("operation", {
|
|
361
367
|
name: "finishEdit",
|
|
@@ -382,8 +388,8 @@ function Kt(t) {
|
|
|
382
388
|
const Jt = function(t) {
|
|
383
389
|
const e = this.container, n = t.getBoundingClientRect(), o = e.getBoundingClientRect();
|
|
384
390
|
if (n.top > o.bottom - 50 || n.bottom < o.top + 50 || n.left > o.right - 50 || n.right < o.left + 50) {
|
|
385
|
-
const i = n.left + n.width / 2, r = n.top + n.height / 2, c = o.left + o.width / 2,
|
|
386
|
-
this.move(-
|
|
391
|
+
const i = n.left + n.width / 2, r = n.top + n.height / 2, c = o.left + o.width / 2, l = o.top + o.height / 2, a = i - c, d = r - l;
|
|
392
|
+
this.move(-a, -d, !0);
|
|
387
393
|
}
|
|
388
394
|
}, Zt = function(t, e, n) {
|
|
389
395
|
this.clearSelection(), this.scrollIntoView(t), this.selection?.select(t), e && this.bus.fire("selectNewNode", t.nodeObj);
|
|
@@ -409,19 +415,19 @@ const Jt = function(t) {
|
|
|
409
415
|
this.editable = !1;
|
|
410
416
|
}, re = function(t, e = { x: 0, y: 0 }) {
|
|
411
417
|
if (t < this.scaleMin && t < this.scaleVal || t > this.scaleMax && t > this.scaleVal) return;
|
|
412
|
-
const n = this.container.getBoundingClientRect(), o = e.x ? e.x - n.left - n.width / 2 : 0, s = e.y ? e.y - n.top - n.height / 2 : 0, { dx: i, dy: r } =
|
|
413
|
-
this.map.style.transform = `translate3d(${
|
|
418
|
+
const n = this.container.getBoundingClientRect(), o = e.x ? e.x - n.left - n.width / 2 : 0, s = e.y ? e.y - n.top - n.height / 2 : 0, { dx: i, dy: r } = st(this), c = this.map.style.transform, { x: l, y: a } = ot(c), d = l - i, f = a - r, p = this.scaleVal, w = (-o + d) * (1 - t / p), y = (-s + f) * (1 - t / p);
|
|
419
|
+
this.map.style.transform = `translate3d(${l - w}px, ${a - y}px, 0) scale(${t})`, this.scaleVal = t, this.bus.fire("scale", t);
|
|
414
420
|
}, ce = function() {
|
|
415
421
|
const t = this.nodes.offsetHeight / this.container.offsetHeight, e = this.nodes.offsetWidth / this.container.offsetWidth, n = 1 / Math.max(1, Math.max(t, e));
|
|
416
422
|
this.scaleVal = n;
|
|
417
|
-
const { dx: o, dy: s } =
|
|
423
|
+
const { dx: o, dy: s } = st(this, !0);
|
|
418
424
|
this.map.style.transform = `translate3d(${o}px, ${s}px, 0) scale(${n})`, this.bus.fire("scale", n);
|
|
419
425
|
}, le = function(t, e, n = !1) {
|
|
420
426
|
const { map: o, scaleVal: s, bus: i, container: r, nodes: c } = this;
|
|
421
427
|
if (n && o.style.transition === "transform 0.3s")
|
|
422
428
|
return;
|
|
423
|
-
const
|
|
424
|
-
let { x:
|
|
429
|
+
const l = o.style.transform;
|
|
430
|
+
let { x: a, y: d } = ot(l);
|
|
425
431
|
const f = r.getBoundingClientRect(), p = c.getBoundingClientRect(), w = p.left < f.right && p.right > f.left, y = p.top < f.bottom && p.bottom > f.top;
|
|
426
432
|
if (w) {
|
|
427
433
|
const u = p.left + t, g = p.right + t;
|
|
@@ -431,25 +437,25 @@ const Jt = function(t) {
|
|
|
431
437
|
const u = p.top + e, g = p.bottom + e;
|
|
432
438
|
(u >= f.bottom || g <= f.top) && (e = 0);
|
|
433
439
|
}
|
|
434
|
-
|
|
440
|
+
a += t, d += e, n && (o.style.transition = "transform 0.3s", setTimeout(() => {
|
|
435
441
|
o.style.transition = "none";
|
|
436
|
-
}, 300)), o.style.transform = `translate3d(${
|
|
437
|
-
},
|
|
442
|
+
}, 300)), o.style.transform = `translate3d(${a}px, ${d}px, 0) scale(${s})`, i.fire("move", { dx: t, dy: e });
|
|
443
|
+
}, st = (t, e = !1) => {
|
|
438
444
|
const { container: n, map: o, nodes: s } = t;
|
|
439
445
|
let i, r;
|
|
440
446
|
if (t.alignment === "nodes" || e)
|
|
441
447
|
i = (n.offsetWidth - s.offsetWidth) / 2, r = (n.offsetHeight - s.offsetHeight) / 2, o.style.transformOrigin = "50% 50%";
|
|
442
448
|
else {
|
|
443
|
-
const c = o.querySelector("me-root"),
|
|
444
|
-
i = n.offsetWidth / 2 -
|
|
449
|
+
const c = o.querySelector("me-root"), l = c.offsetTop, a = c.offsetLeft, d = c.offsetWidth, f = c.offsetHeight;
|
|
450
|
+
i = n.offsetWidth / 2 - a - d / 2, r = n.offsetHeight / 2 - l - f / 2, o.style.transformOrigin = `${a + d / 2}px 50%`;
|
|
445
451
|
}
|
|
446
452
|
return { dx: i, dy: r };
|
|
447
453
|
}, ae = function() {
|
|
448
|
-
const { map: t, container: e } = this, { dx: n, dy: o } =
|
|
454
|
+
const { map: t, container: e } = this, { dx: n, dy: o } = st(this);
|
|
449
455
|
e.scrollTop = 0, e.scrollLeft = 0, t.style.transform = `translate3d(${n}px, ${o}px, 0) scale(${this.scaleVal})`;
|
|
450
|
-
}, de = function(t) {
|
|
451
|
-
t(this);
|
|
452
456
|
}, he = function(t) {
|
|
457
|
+
t(this);
|
|
458
|
+
}, de = function(t) {
|
|
453
459
|
t.nodeObj.parent && (this.clearSelection(), this.tempDirection === null && (this.tempDirection = this.direction), this.isFocusMode || (this.nodeDataBackup = this.nodeData, this.isFocusMode = !0), this.nodeData = t.nodeObj, this.initRight(), this.toCenter());
|
|
454
460
|
}, fe = function() {
|
|
455
461
|
this.isFocusMode = !1, this.tempDirection !== null && (this.nodeData = this.nodeDataBackup, this.direction = this.tempDirection, this.tempDirection = null, this.refresh(), this.toCenter());
|
|
@@ -474,11 +480,11 @@ const Jt = function(t) {
|
|
|
474
480
|
} else
|
|
475
481
|
i.parentNode.children[1].remove();
|
|
476
482
|
this.linkDiv(t.closest("me-main > me-wrapper"));
|
|
477
|
-
const c = t.getBoundingClientRect(),
|
|
483
|
+
const c = t.getBoundingClientRect(), l = {
|
|
478
484
|
x: c.left,
|
|
479
485
|
y: c.top
|
|
480
|
-
},
|
|
481
|
-
this.move(
|
|
486
|
+
}, a = s.x - l.x, d = s.y - l.y;
|
|
487
|
+
this.move(a, d), this.bus.fire("expandNode", n);
|
|
482
488
|
}, ye = function(t, e) {
|
|
483
489
|
const n = t.nodeObj, o = t.getBoundingClientRect(), s = {
|
|
484
490
|
x: o.left,
|
|
@@ -488,10 +494,10 @@ const Jt = function(t) {
|
|
|
488
494
|
const i = this.findEle(n.id).getBoundingClientRect(), r = {
|
|
489
495
|
x: i.left,
|
|
490
496
|
y: i.top
|
|
491
|
-
}, c = s.x - r.x,
|
|
492
|
-
this.move(c,
|
|
497
|
+
}, c = s.x - r.x, l = s.y - r.y;
|
|
498
|
+
this.move(c, l);
|
|
493
499
|
}, we = function(t) {
|
|
494
|
-
this.clearSelection(), t && (t = JSON.parse(JSON.stringify(t)), this.nodeData = t.nodeData, this.arrows = t.arrows || [], this.summaries = t.summaries || [], t.theme && this.changeTheme(t.theme)),
|
|
500
|
+
this.clearSelection(), t && (t = JSON.parse(JSON.stringify(t)), this.nodeData = t.nodeData, this.arrows = t.arrows || [], this.summaries = t.summaries || [], t.theme && this.changeTheme(t.theme)), nt(this.nodeData), this.layout(), this.linkDiv();
|
|
495
501
|
}, ve = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
496
502
|
__proto__: null,
|
|
497
503
|
cancelFocus: fe,
|
|
@@ -500,13 +506,13 @@ const Jt = function(t) {
|
|
|
500
506
|
enableEdit: se,
|
|
501
507
|
expandNode: me,
|
|
502
508
|
expandNodeAll: ye,
|
|
503
|
-
focusNode:
|
|
509
|
+
focusNode: de,
|
|
504
510
|
getData: oe,
|
|
505
511
|
getDataString: ne,
|
|
506
512
|
initLeft: ue,
|
|
507
513
|
initRight: pe,
|
|
508
514
|
initSide: ge,
|
|
509
|
-
install:
|
|
515
|
+
install: he,
|
|
510
516
|
move: le,
|
|
511
517
|
refresh: we,
|
|
512
518
|
scale: re,
|
|
@@ -517,73 +523,104 @@ const Jt = function(t) {
|
|
|
517
523
|
stringifyData: Tt,
|
|
518
524
|
toCenter: ae,
|
|
519
525
|
unselectNodes: te
|
|
520
|
-
}, Symbol.toStringTag, { value: "Module" })), be = 40, xe = 10, Ce = ({ deltaMode: t, deltaY: e, viewportHeight: n }) => t === WheelEvent.DOM_DELTA_LINE ? e * be : t === WheelEvent.DOM_DELTA_PAGE ? e * n : e,
|
|
526
|
+
}, Symbol.toStringTag, { value: "Module" })), be = 40, xe = 10, Ce = ({ deltaMode: t, deltaY: e, viewportHeight: n }) => t === WheelEvent.DOM_DELTA_LINE ? e * be : t === WheelEvent.DOM_DELTA_PAGE ? e * n : e, Se = ({ deltaMode: t, deltaY: e, scaleSensitivity: n, viewportHeight: o }) => {
|
|
521
527
|
const i = -Ce({ deltaMode: t, deltaY: e, viewportHeight: o }) / xe * n;
|
|
522
528
|
return Math.max(-n, Math.min(n, i));
|
|
523
|
-
},
|
|
529
|
+
}, Ee = (t, e, n) => {
|
|
524
530
|
e !== 0 && t.scale(t.scaleVal + e, n);
|
|
525
531
|
}, Te = (t, e) => {
|
|
526
|
-
const n =
|
|
532
|
+
const n = Se({
|
|
527
533
|
deltaMode: e.deltaMode,
|
|
528
534
|
deltaY: e.deltaY,
|
|
529
535
|
scaleSensitivity: t.scaleSensitivity,
|
|
530
536
|
viewportHeight: t.container.clientHeight || window.innerHeight
|
|
531
537
|
});
|
|
532
|
-
|
|
538
|
+
Ee(t, n, { x: e.clientX, y: e.clientY });
|
|
533
539
|
};
|
|
534
|
-
function
|
|
540
|
+
function De(t) {
|
|
535
541
|
const { panHelper: e, container: n } = t;
|
|
536
|
-
let o =
|
|
542
|
+
let o = null;
|
|
537
543
|
t.spacePressed = !1;
|
|
538
|
-
|
|
539
|
-
|
|
544
|
+
const s = {
|
|
545
|
+
lastTap: 0,
|
|
546
|
+
lastTapTarget: null,
|
|
547
|
+
DOUBLE_CLICK_THRESHOLD: 300,
|
|
548
|
+
detect(h, m) {
|
|
549
|
+
const x = (/* @__PURE__ */ new Date()).getTime(), S = x - this.lastTap, E = S < this.DOUBLE_CLICK_THRESHOLD && S > 0 && this.lastTapTarget === h.target;
|
|
550
|
+
this.lastTap = x, this.lastTapTarget = h.target, E && m(h);
|
|
551
|
+
},
|
|
552
|
+
clear() {
|
|
553
|
+
this.lastTap = 0, this.lastTapTarget = null;
|
|
554
|
+
}
|
|
555
|
+
}, i = {
|
|
556
|
+
Idle: 0,
|
|
557
|
+
Pinch: 1,
|
|
558
|
+
DragWait: 2,
|
|
559
|
+
Drag: 3,
|
|
560
|
+
Pan: 4,
|
|
561
|
+
BoxSelect: 5
|
|
562
|
+
};
|
|
563
|
+
t.ptState = i.Idle;
|
|
564
|
+
const r = {
|
|
565
|
+
lastDistance: null,
|
|
566
|
+
activePointers: /* @__PURE__ */ new Map(),
|
|
567
|
+
handlePointerDown(h) {
|
|
568
|
+
if (h.pointerType !== "touch") return !1;
|
|
569
|
+
if (this.activePointers.set(h.pointerId, { x: h.clientX, y: h.clientY }), this.activePointers.size >= 2) {
|
|
570
|
+
const [m, x] = Array.from(this.activePointers.values());
|
|
571
|
+
return this.lastDistance = ht(m, x), !0;
|
|
572
|
+
}
|
|
573
|
+
return !1;
|
|
574
|
+
},
|
|
575
|
+
handlePointerMove(h) {
|
|
576
|
+
if (h.pointerType !== "touch" || !this.activePointers.has(h.pointerId)) return !1;
|
|
577
|
+
if (this.activePointers.set(h.pointerId, { x: h.clientX, y: h.clientY }), this.activePointers.size >= 2) {
|
|
578
|
+
const [m, x] = Array.from(this.activePointers.values()), S = ht(m, x);
|
|
579
|
+
if (this.lastDistance !== null && this.lastDistance > 0) {
|
|
580
|
+
const E = S / this.lastDistance;
|
|
581
|
+
t.scale(t.scaleVal * E, {
|
|
582
|
+
x: (m.x + x.x) / 2,
|
|
583
|
+
y: (m.y + x.y) / 2
|
|
584
|
+
});
|
|
585
|
+
}
|
|
586
|
+
return this.lastDistance = S, !0;
|
|
587
|
+
}
|
|
588
|
+
return !1;
|
|
589
|
+
},
|
|
590
|
+
handlePointerUp(h) {
|
|
591
|
+
h.pointerType === "touch" && (this.activePointers.delete(h.pointerId), this.activePointers.size < 2 && (this.lastDistance = null));
|
|
592
|
+
},
|
|
593
|
+
clear() {
|
|
594
|
+
this.activePointers.clear(), this.lastDistance = null;
|
|
595
|
+
}
|
|
596
|
+
}, c = Ot(t), l = {
|
|
540
597
|
timer: null,
|
|
541
598
|
startPos: null,
|
|
542
|
-
target: null,
|
|
543
599
|
pointerId: null,
|
|
544
600
|
DURATION: 500,
|
|
545
601
|
MOVE_THRESHOLD: 10,
|
|
546
602
|
clear() {
|
|
547
|
-
this.timer !== null && (clearTimeout(this.timer), this.timer = null, this.startPos = null, this.
|
|
603
|
+
this.timer !== null && (clearTimeout(this.timer), this.timer = null, this.startPos = null, this.pointerId = null);
|
|
548
604
|
},
|
|
549
|
-
start(
|
|
605
|
+
start(h, m) {
|
|
550
606
|
this.timer = window.setTimeout(() => {
|
|
551
|
-
m(
|
|
552
|
-
}, this.DURATION), this.startPos = { x:
|
|
607
|
+
m(h), this.timer = null, this.startPos = null, this.pointerId = null;
|
|
608
|
+
}, this.DURATION), this.startPos = { x: h.clientX, y: h.clientY }, this.pointerId = h.pointerId;
|
|
553
609
|
},
|
|
554
|
-
handleMove(
|
|
555
|
-
if (this.timer !== null && this.startPos !== null &&
|
|
556
|
-
const m =
|
|
610
|
+
handleMove(h) {
|
|
611
|
+
if (this.timer !== null && this.startPos !== null && h.pointerId === this.pointerId) {
|
|
612
|
+
const m = h.clientX - this.startPos.x, x = h.clientY - this.startPos.y;
|
|
557
613
|
Math.sqrt(m * m + x * x) > this.MOVE_THRESHOLD && this.clear();
|
|
558
614
|
}
|
|
559
615
|
}
|
|
560
|
-
},
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
if (
|
|
564
|
-
const
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
if (A === "arrow")
|
|
569
|
-
return m ? t.editArrowLabel(H) : t.selectArrow(H), !0;
|
|
570
|
-
if (A === "summary")
|
|
571
|
-
return m ? t.editSummary(H) : t.selectSummary(H), !0;
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
if (l.closest(".topiclinks")) {
|
|
575
|
-
const E = l.closest("g");
|
|
576
|
-
if (E)
|
|
577
|
-
return m ? t.editArrowLabel(E) : t.selectArrow(E), !0;
|
|
578
|
-
}
|
|
579
|
-
if (l.closest(".summary")) {
|
|
580
|
-
const E = l.closest("g");
|
|
581
|
-
if (E)
|
|
582
|
-
return m ? t.editSummary(E) : t.selectSummary(E), !0;
|
|
583
|
-
}
|
|
584
|
-
return !1;
|
|
585
|
-
}, f = (l) => {
|
|
586
|
-
if (l.pointerType === "mouse" && l.button !== 0) return;
|
|
616
|
+
}, a = (h, m) => {
|
|
617
|
+
if (h.closest("#input-box")) return !1;
|
|
618
|
+
const x = h.closest(".svg-label"), S = h.closest(".topiclinks, .summary"), E = x ? { type: x.dataset.type, element: document.getElementById(x.dataset.svgId) } : S ? { type: S.classList.contains("topiclinks") ? "arrow" : "summary", element: h.closest("g") } : null;
|
|
619
|
+
if (!E?.type || !E?.element) return !1;
|
|
620
|
+
const { type: P, element: k } = E;
|
|
621
|
+
return t.clearSelection(), P === "arrow" ? m ? t.editArrowLabel(k) : t.selectArrow(k) : m ? t.editSummary(k) : t.selectSummary(k), !0;
|
|
622
|
+
}, d = (h) => {
|
|
623
|
+
if (h.pointerType === "mouse" && h.button !== 0) return;
|
|
587
624
|
if (t.helper1?.moved) {
|
|
588
625
|
t.helper1.clear();
|
|
589
626
|
return;
|
|
@@ -598,117 +635,97 @@ function Le(t) {
|
|
|
598
635
|
}
|
|
599
636
|
if (c?.isDragging)
|
|
600
637
|
return;
|
|
601
|
-
const m =
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
else if (!t.editable)
|
|
605
|
-
return;
|
|
606
|
-
h(m, !1);
|
|
607
|
-
}, p = (l) => {
|
|
638
|
+
const m = h.target;
|
|
639
|
+
m.tagName === "ME-EPD" && (h.ctrlKey || h.metaKey ? t.expandNodeAll(m.previousSibling) : t.expandNode(m.previousSibling));
|
|
640
|
+
}, f = (h) => {
|
|
608
641
|
if (!t.editable) return;
|
|
609
|
-
const m =
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
const [E, A] = Array.from(r.values());
|
|
614
|
-
i = ht(E, A), a.clear();
|
|
615
|
-
}
|
|
616
|
-
e.moved = !1;
|
|
617
|
-
const m = l.target, x = t.mouseSelectionButton === 0 ? 2 : 0;
|
|
618
|
-
if (t.editable && (l.button === 0 || l.pointerType === "touch") && G(m)) {
|
|
619
|
-
t.selection?.cancel();
|
|
620
|
-
const E = t.currentNodes || [];
|
|
621
|
-
if (l.ctrlKey || l.metaKey)
|
|
622
|
-
if (E.includes(m)) {
|
|
623
|
-
t.selection?.deselect(m);
|
|
624
|
-
return;
|
|
625
|
-
} else
|
|
626
|
-
t.selection?.select(m);
|
|
627
|
-
else E.includes(m) || t.selectNode(m);
|
|
628
|
-
}
|
|
629
|
-
if (t.editable && (l.button === 0 || l.pointerType === "touch")) {
|
|
630
|
-
if (l.pointerType === "touch" && r.size > 1)
|
|
631
|
-
(c.isDragging || c.pointerId !== null) && Q(t, c);
|
|
632
|
-
else if (l.pointerType === "touch" && r.size === 1)
|
|
633
|
-
(G(m) || m.closest("me-tpc")) && a.start(l, (E) => {
|
|
634
|
-
ut(t, c, E, !0) && (a.target && a.target.setPointerCapture(E.pointerId), bt(c.ghost, E.clientX, E.clientY));
|
|
635
|
-
});
|
|
636
|
-
else if (l.pointerType === "mouse" && ut(t, c, l, !1)) {
|
|
637
|
-
m.setPointerCapture(l.pointerId);
|
|
638
|
-
return;
|
|
639
|
-
}
|
|
642
|
+
const m = h.target;
|
|
643
|
+
if (J(m)) {
|
|
644
|
+
t.selectNode(m), t.beginEdit(m);
|
|
645
|
+
return;
|
|
640
646
|
}
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
const [m, x] = Array.from(r.values()), L = ht(m, x);
|
|
646
|
-
if (i == null)
|
|
647
|
-
i = L;
|
|
648
|
-
else {
|
|
649
|
-
if (i > 0) {
|
|
650
|
-
const I = L / i;
|
|
651
|
-
t.scale(t.scaleVal * I, {
|
|
652
|
-
x: (m.x + x.x) / 2,
|
|
653
|
-
y: (m.y + x.y) / 2
|
|
654
|
-
});
|
|
655
|
-
}
|
|
656
|
-
i = L;
|
|
657
|
-
}
|
|
647
|
+
a(m, !0);
|
|
648
|
+
}, p = (h) => {
|
|
649
|
+
if (h.pointerType === "touch" && r.handlePointerDown(h)) {
|
|
650
|
+
t.ptState = i.Pinch, l.clear(), e.clear(), (c.isDragging || c.pointerId !== null) && ut(t, c);
|
|
658
651
|
return;
|
|
659
652
|
}
|
|
660
|
-
if (
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
e.x = l.clientX, e.y = l.clientY;
|
|
653
|
+
if (t.ptState === i.Pinch) return;
|
|
654
|
+
const m = h.target;
|
|
655
|
+
if (m.className === "map-container" && h.button === 0 && h.pointerType === "mouse") {
|
|
656
|
+
t.ptState = i.BoxSelect;
|
|
657
|
+
return;
|
|
666
658
|
}
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
659
|
+
if (e.handlePointerDown(h), e.mousedown && (t.ptState = i.Pan), h.button === 0 || h.pointerType === "touch")
|
|
660
|
+
if (J(m)) {
|
|
661
|
+
t.selection?.cancel();
|
|
662
|
+
const S = t.currentNodes || [];
|
|
663
|
+
h.ctrlKey || h.metaKey || t.mobileMultiSelect ? S.includes(m) ? o = m : ((t.currentArrow || t.currentSummary) && t.clearSelection(), t.selection?.select(m)) : S.includes(m) || t.selectNode(m), h.pointerType === "touch" ? (t.ptState = i.DragWait, l.start(h, (P) => {
|
|
664
|
+
ft(t, c, P, !0) && (t.ptState = i.Drag, m.setPointerCapture(P.pointerId));
|
|
665
|
+
})) : ft(t, c, h, !1) && (t.ptState = i.Drag, m.setPointerCapture(h.pointerId));
|
|
666
|
+
} else
|
|
667
|
+
a(m, !1);
|
|
668
|
+
}, w = (h) => {
|
|
669
|
+
switch (t.ptState) {
|
|
670
|
+
case i.Pinch:
|
|
671
|
+
r.handlePointerMove(h);
|
|
672
|
+
break;
|
|
673
|
+
case i.DragWait:
|
|
674
|
+
l.handleMove(h), l.timer === null && (t.ptState = i.Idle);
|
|
675
|
+
break;
|
|
676
|
+
case i.Drag:
|
|
677
|
+
Wt(t, c, h);
|
|
678
|
+
break;
|
|
679
|
+
case i.Pan:
|
|
680
|
+
e.handlePointerMove(h);
|
|
681
|
+
break;
|
|
672
682
|
}
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
683
|
+
}, y = (h) => {
|
|
684
|
+
h.pointerType === "touch" && r.handlePointerUp(h);
|
|
685
|
+
const m = c.isDragging, x = e.moved;
|
|
686
|
+
switch (t.ptState) {
|
|
687
|
+
case i.DragWait:
|
|
688
|
+
l.clear();
|
|
689
|
+
break;
|
|
690
|
+
case i.Drag:
|
|
691
|
+
Yt(t, c, h);
|
|
692
|
+
break;
|
|
693
|
+
case i.Pan:
|
|
694
|
+
e.handlePointerUp(h);
|
|
695
|
+
break;
|
|
676
696
|
}
|
|
677
|
-
|
|
678
|
-
},
|
|
679
|
-
|
|
680
|
-
},
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
G(m) && !m.classList.contains("selected") && t.selectNode(m), setTimeout(() => {
|
|
686
|
-
t.panHelper.moved || t.bus.fire("showContextMenu", l);
|
|
697
|
+
s.detect(h, f), (t.ptState !== i.Pinch || r.activePointers.size < 2) && (t.ptState = i.Idle), o && (!m && !x && t.selection?.deselect(o), o = null);
|
|
698
|
+
}, u = () => {
|
|
699
|
+
r.clear(), l.clear(), e.clear(), s.clear(), (c.isDragging || c.pointerId !== null) && ut(t, c), t.ptState = i.Idle, o = null;
|
|
700
|
+
}, g = (h) => {
|
|
701
|
+
h.preventDefault(), h.button === 2 && t.editable && setTimeout(() => {
|
|
702
|
+
if (t.panHelper.moved) return;
|
|
703
|
+
const m = h.target;
|
|
704
|
+
J(m) && !m.classList.contains("selected") && t.selectNode(m), t.bus.fire("showContextMenu", h);
|
|
687
705
|
}, 200);
|
|
688
|
-
},
|
|
689
|
-
if (
|
|
690
|
-
if (
|
|
691
|
-
t.move(-
|
|
692
|
-
},
|
|
693
|
-
|
|
694
|
-
},
|
|
695
|
-
|
|
706
|
+
}, b = (h) => {
|
|
707
|
+
if (h.stopPropagation(), h.preventDefault(), h.ctrlKey || h.metaKey) return Te(t, h);
|
|
708
|
+
if (h.shiftKey) return t.move(-h.deltaY, 0);
|
|
709
|
+
t.move(-h.deltaX, -h.deltaY);
|
|
710
|
+
}, v = (h) => {
|
|
711
|
+
h.code === "Space" && (t.spacePressed = !0, t.container.classList.add("space-pressed"));
|
|
712
|
+
}, C = (h) => {
|
|
713
|
+
h.code === "Space" && (t.spacePressed = !1, t.container.classList.remove("space-pressed"));
|
|
696
714
|
};
|
|
697
715
|
return vt([
|
|
698
|
-
{ dom: n, evt: "pointerdown", func:
|
|
699
|
-
{ dom: n, evt: "pointermove", func:
|
|
700
|
-
{ dom: n, evt: "pointerup", func:
|
|
701
|
-
{ dom: n, evt: "pointercancel", func:
|
|
702
|
-
{ dom: n, evt: "click", func:
|
|
703
|
-
{ dom: n, evt: "
|
|
704
|
-
{ dom: n, evt: "
|
|
705
|
-
{ dom: n, evt: "
|
|
706
|
-
{ dom: n, evt: "
|
|
707
|
-
{ dom: n, evt: "
|
|
708
|
-
{ dom: n, evt: "keyup", func: T }
|
|
716
|
+
{ dom: n, evt: "pointerdown", func: p },
|
|
717
|
+
{ dom: n, evt: "pointermove", func: w },
|
|
718
|
+
{ dom: n, evt: "pointerup", func: y },
|
|
719
|
+
{ dom: n, evt: "pointercancel", func: u },
|
|
720
|
+
{ dom: n, evt: "click", func: d },
|
|
721
|
+
{ dom: n, evt: "contextmenu", func: g },
|
|
722
|
+
{ dom: n, evt: "wheel", func: typeof t.handleWheel == "function" ? t.handleWheel : b },
|
|
723
|
+
{ dom: n, evt: "blur", func: u },
|
|
724
|
+
{ dom: n, evt: "keydown", func: v },
|
|
725
|
+
{ dom: n, evt: "keyup", func: C }
|
|
709
726
|
]);
|
|
710
727
|
}
|
|
711
|
-
function
|
|
728
|
+
function Le() {
|
|
712
729
|
return {
|
|
713
730
|
handlers: {},
|
|
714
731
|
addListener: function(t, e) {
|
|
@@ -732,31 +749,31 @@ function De() {
|
|
|
732
749
|
}
|
|
733
750
|
};
|
|
734
751
|
}
|
|
735
|
-
const
|
|
752
|
+
const N = "http://www.w3.org/2000/svg", U = function(t) {
|
|
736
753
|
const e = t.clientWidth, n = t.clientHeight, o = t.dataset, s = Number(o.x), i = Number(o.y), r = o.anchor;
|
|
737
754
|
let c = s;
|
|
738
755
|
r === "middle" ? c = s - e / 2 : r === "end" && (c = s - e), t.style.left = `${c}px`, t.style.top = `${i - n / 2}px`, t.style.visibility = "visible";
|
|
739
|
-
},
|
|
740
|
-
const { anchor: s = "middle", color: i, dataType: r, svgId: c } = o,
|
|
741
|
-
|
|
742
|
-
const
|
|
743
|
-
return
|
|
744
|
-
},
|
|
745
|
-
const o = document.createElementNS(
|
|
746
|
-
return
|
|
756
|
+
}, Q = function(t, e, n, o) {
|
|
757
|
+
const { anchor: s = "middle", color: i, dataType: r, svgId: c } = o, l = document.createElement("div");
|
|
758
|
+
l.className = "svg-label", l.style.color = i || "#666";
|
|
759
|
+
const a = "label-" + c;
|
|
760
|
+
return l.id = a, l.innerHTML = t, l.dataset.type = r, l.dataset.svgId = c, l.dataset.x = e.toString(), l.dataset.y = n.toString(), l.dataset.anchor = s, l;
|
|
761
|
+
}, Dt = function(t, e, n) {
|
|
762
|
+
const o = document.createElementNS(N, "path");
|
|
763
|
+
return D(o, {
|
|
747
764
|
d: t,
|
|
748
765
|
stroke: e || "#666",
|
|
749
766
|
fill: "none",
|
|
750
767
|
"stroke-width": n
|
|
751
768
|
}), o;
|
|
752
769
|
}, W = function(t) {
|
|
753
|
-
const e = document.createElementNS(
|
|
770
|
+
const e = document.createElementNS(N, "svg");
|
|
754
771
|
return e.setAttribute("class", t), e.setAttribute("overflow", "visible"), e;
|
|
755
772
|
}, pt = function() {
|
|
756
|
-
const t = document.createElementNS(
|
|
773
|
+
const t = document.createElementNS(N, "line");
|
|
757
774
|
return t.setAttribute("stroke", "#4dc4ff"), t.setAttribute("fill", "none"), t.setAttribute("stroke-width", "2"), t.setAttribute("opacity", "0.45"), t;
|
|
758
775
|
}, Me = function(t, e, n, o) {
|
|
759
|
-
const s = document.createElementNS(
|
|
776
|
+
const s = document.createElementNS(N, "g");
|
|
760
777
|
return [
|
|
761
778
|
{
|
|
762
779
|
name: "line",
|
|
@@ -771,30 +788,32 @@ const P = "http://www.w3.org/2000/svg", J = function(t) {
|
|
|
771
788
|
d: n
|
|
772
789
|
}
|
|
773
790
|
].forEach((r, c) => {
|
|
774
|
-
const
|
|
775
|
-
d:
|
|
791
|
+
const l = r.d, a = document.createElementNS(N, "path"), d = {
|
|
792
|
+
d: l,
|
|
776
793
|
stroke: o?.stroke || "rgb(227, 125, 116)",
|
|
777
794
|
fill: "none",
|
|
778
795
|
"stroke-linecap": o?.strokeLinecap || "cap",
|
|
779
796
|
"stroke-width": String(o?.strokeWidth || "2")
|
|
780
797
|
};
|
|
781
|
-
o?.opacity !== void 0 && (
|
|
782
|
-
const f = document.createElementNS(
|
|
783
|
-
|
|
784
|
-
d:
|
|
798
|
+
o?.opacity !== void 0 && (d.opacity = String(o.opacity)), D(a, d), c === 0 && a.setAttribute("stroke-dasharray", o?.strokeDasharray || "8,2");
|
|
799
|
+
const f = document.createElementNS(N, "path");
|
|
800
|
+
D(f, {
|
|
801
|
+
d: l,
|
|
785
802
|
stroke: "transparent",
|
|
786
803
|
fill: "none",
|
|
787
804
|
"stroke-width": "15"
|
|
788
|
-
}), s.appendChild(f), s.appendChild(
|
|
805
|
+
}), s.appendChild(f), s.appendChild(a), s[r.name] = a;
|
|
789
806
|
}), s;
|
|
790
|
-
},
|
|
807
|
+
}, Lt = function(t, e, n) {
|
|
791
808
|
if (!e) return;
|
|
792
|
-
const o = n.label
|
|
809
|
+
const o = n.label;
|
|
810
|
+
e.style.opacity = "0";
|
|
811
|
+
const s = e.cloneNode(!0);
|
|
793
812
|
t.nodes.appendChild(s), s.id = "input-box", s.textContent = o, s.contentEditable = "plaintext-only", s.spellcheck = !1, s.style.cssText = `
|
|
794
813
|
left:${e.style.left};
|
|
795
814
|
top:${e.style.top};
|
|
796
815
|
max-width: 200px;
|
|
797
|
-
`,
|
|
816
|
+
`, Et(s), t.scrollIntoView(s), s.addEventListener("keydown", (i) => {
|
|
798
817
|
i.stopPropagation();
|
|
799
818
|
const r = i.key;
|
|
800
819
|
if (r === "Enter" || r === "Tab") {
|
|
@@ -804,7 +823,7 @@ const P = "http://www.w3.org/2000/svg", J = function(t) {
|
|
|
804
823
|
}), s.addEventListener("blur", () => {
|
|
805
824
|
if (!s) return;
|
|
806
825
|
const i = s.innerText?.trim() || "";
|
|
807
|
-
i === "" ? n.label = o : n.label = i, s.remove(), i !== o && (t.markdown ? e.innerHTML = t.markdown(n.label, n) : e.textContent = n.label,
|
|
826
|
+
i === "" ? n.label = o : n.label = i, e.style.opacity = "1", s.remove(), i !== o && (t.markdown ? e.innerHTML = t.markdown(n.label, n) : e.textContent = n.label, U(e), "parent" in n ? t.bus.fire("operation", {
|
|
808
827
|
name: "finishEditSummary",
|
|
809
828
|
obj: n
|
|
810
829
|
}) : t.bus.fire("operation", {
|
|
@@ -812,62 +831,62 @@ const P = "http://www.w3.org/2000/svg", J = function(t) {
|
|
|
812
831
|
obj: n
|
|
813
832
|
}));
|
|
814
833
|
});
|
|
815
|
-
},
|
|
834
|
+
}, Pe = function(t) {
|
|
816
835
|
const e = this.map.querySelector("me-root"), n = e.offsetTop, o = e.offsetLeft, s = e.offsetWidth, i = e.offsetHeight, r = this.map.querySelectorAll("me-main > me-wrapper");
|
|
817
836
|
this.lines.innerHTML = "";
|
|
818
837
|
for (let c = 0; c < r.length; c++) {
|
|
819
|
-
const
|
|
820
|
-
if (
|
|
838
|
+
const l = r[c], a = l.querySelector("me-tpc"), { offsetLeft: d, offsetTop: f } = M(this.nodes, a), p = a.offsetWidth, w = a.offsetHeight, y = l.parentNode.className, u = this.generateMainBranch({ pT: n, pL: o, pW: s, pH: i, cT: f, cL: d, cW: p, cH: w, direction: y, containerHeight: this.nodes.offsetHeight }), g = this.theme.palette, b = a.nodeObj.branchColor || g[c % g.length];
|
|
839
|
+
if (a.style.borderColor = b, this.lines.appendChild(Dt(u, b, "3")), t && t !== l)
|
|
821
840
|
continue;
|
|
822
|
-
const v = W("subLines"), C =
|
|
823
|
-
C.tagName === "svg" && C.remove(),
|
|
841
|
+
const v = W("subLines"), C = l.lastChild;
|
|
842
|
+
C.tagName === "svg" && C.remove(), l.appendChild(v), Mt(this, v, b, l, y, !0);
|
|
824
843
|
}
|
|
825
844
|
this.labelContainer.innerHTML = "", this.renderArrow(), this.renderSummary(), this.bus.fire("linkDiv");
|
|
826
845
|
}, Mt = function(t, e, n, o, s, i) {
|
|
827
846
|
const r = o.firstChild, c = o.children[1].children;
|
|
828
847
|
if (c.length === 0) return;
|
|
829
|
-
const
|
|
848
|
+
const l = r.offsetTop, a = r.offsetLeft, d = r.offsetWidth, f = r.offsetHeight;
|
|
830
849
|
for (let p = 0; p < c.length; p++) {
|
|
831
|
-
const w = c[p], y = w.firstChild, u = y.offsetTop, g = y.offsetLeft, b = y.offsetWidth, v = y.offsetHeight, C = y.firstChild.nodeObj.branchColor || n,
|
|
832
|
-
e.appendChild(
|
|
833
|
-
const
|
|
834
|
-
if (
|
|
835
|
-
if (!
|
|
850
|
+
const w = c[p], y = w.firstChild, u = y.offsetTop, g = y.offsetLeft, b = y.offsetWidth, v = y.offsetHeight, C = y.firstChild.nodeObj.branchColor || n, T = t.generateSubBranch({ pT: l, pL: a, pW: d, pH: f, cT: u, cL: g, cW: b, cH: v, direction: s, isFirst: i });
|
|
851
|
+
e.appendChild(Dt(T, C, "2"));
|
|
852
|
+
const h = y.children[1];
|
|
853
|
+
if (h) {
|
|
854
|
+
if (!h.expanded) continue;
|
|
836
855
|
} else
|
|
837
856
|
continue;
|
|
838
857
|
Mt(t, e, C, w, s);
|
|
839
858
|
}
|
|
840
|
-
},
|
|
841
|
-
side:
|
|
859
|
+
}, ke = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1750169394918" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2021" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M851.91168 328.45312c-59.97056 0-108.6208 48.47104-108.91264 108.36992l-137.92768 38.4a109.14304 109.14304 0 0 0-63.46752-46.58688l1.39264-137.11872c47.29344-11.86816 82.31936-54.66624 82.31936-105.64096 0-60.15488-48.76288-108.91776-108.91776-108.91776s-108.91776 48.76288-108.91776 108.91776c0 49.18784 32.60928 90.75712 77.38368 104.27392l-1.41312 138.87488a109.19936 109.19936 0 0 0-63.50336 48.55808l-138.93632-39.48544 0.01024-0.72704c0-60.15488-48.76288-108.91776-108.91776-108.91776s-108.91776 48.75776-108.91776 108.91776c0 60.15488 48.76288 108.91264 108.91776 108.91264 39.3984 0 73.91232-20.92032 93.03552-52.2496l139.19232 39.552-0.00512 0.2304c0 25.8304 9.00096 49.5616 24.02816 68.23424l-90.14272 132.63872a108.7488 108.7488 0 0 0-34.2528-5.504c-60.15488 0-108.91776 48.768-108.91776 108.91776 0 60.16 48.76288 108.91776 108.91776 108.91776 60.16 0 108.92288-48.75776 108.92288-108.91776 0-27.14624-9.9328-51.968-26.36288-71.04l89.04704-131.03104a108.544 108.544 0 0 0 37.6832 6.70208 108.672 108.672 0 0 0 36.48512-6.272l93.13792 132.57216a108.48256 108.48256 0 0 0-24.69888 69.0688c0 60.16 48.768 108.92288 108.91776 108.92288 60.16 0 108.91776-48.76288 108.91776-108.92288 0-60.14976-48.75776-108.91776-108.91776-108.91776a108.80512 108.80512 0 0 0-36.69504 6.3488l-93.07136-132.48a108.48768 108.48768 0 0 0 24.79616-72.22784l136.09984-37.888c18.99008 31.93856 53.84192 53.3504 93.69088 53.3504 60.16 0 108.92288-48.75776 108.92288-108.91264-0.00512-60.15488-48.77312-108.92288-108.92288-108.92288z" p-id="2022"></path></svg>', Ne = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1750169375313" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1775" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M639 463.30000001L639 285.1c0-36.90000001-26.4-68.5-61.3-68.5l-150.2 0c-1.5 0-3 0.1-4.5 0.3-10.2-38.7-45.5-67.3-87.5-67.3-50 0-90.5 40.5-90.5 90.5s40.5 90.5 90.5 90.5c42 0 77.3-28.6 87.5-67.39999999 1.4 0.3 2.9 0.4 4.5 0.39999999L577.7 263.6c6.8 0 14.3 8.9 14.3 21.49999999l0 427.00000001c0 12.7-7.40000001 21.5-14.30000001 21.5l-150.19999999 0c-1.5 0-3 0.2-4.5 0.4-10.2-38.8-45.5-67.3-87.5-67.3-50 0-90.5 40.5-90.5 90.4 0 49.9 40.5 90.6 90.5 90.59999999 42 0 77.3-28.6 87.5-67.39999999 1.4 0.2 2.9 0.4 4.49999999 0.4L577.7 780.7c34.80000001 0 61.3-31.6 61.3-68.50000001L639 510.3l79.1 0c10.4 38.5 45.49999999 67 87.4 67 50 0 90.5-40.5 90.5-90.5s-40.5-90.5-90.5-90.5c-41.79999999 0-77.00000001 28.4-87.4 67L639 463.30000001z" fill="currentColor" p-id="1776"></path></svg>', Ae = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1750169667709" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3037" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M385 560.69999999L385 738.9c0 36.90000001 26.4 68.5 61.3 68.5l150.2 0c1.5 0 3-0.1 4.5-0.3 10.2 38.7 45.5 67.3 87.5 67.3 50 0 90.5-40.5 90.5-90.5s-40.5-90.5-90.5-90.5c-42 0-77.3 28.6-87.5 67.39999999-1.4-0.3-2.9-0.4-4.5-0.39999999L446.3 760.4c-6.8 0-14.3-8.9-14.3-21.49999999l0-427.00000001c0-12.7 7.40000001-21.5 14.30000001-21.5l150.19999999 0c1.5 0 3-0.2 4.5-0.4 10.2 38.8 45.5 67.3 87.5 67.3 50 0 90.5-40.5 90.5-90.4 0-49.9-40.5-90.6-90.5-90.59999999-42 0-77.3 28.6-87.5 67.39999999-1.4-0.2-2.9-0.4-4.49999999-0.4L446.3 243.3c-34.80000001 0-61.3 31.6-61.3 68.50000001L385 513.7l-79.1 0c-10.4-38.5-45.49999999-67-87.4-67-50 0-90.5 40.5-90.5 90.5s40.5 90.5 90.5 90.5c41.79999999 0 77.00000001-28.4 87.4-67L385 560.69999999z" fill="currentColor" p-id="3038"></path></svg>', $e = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1750169402629" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2170" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M639.328 416c8.032 0 16.096-3.008 22.304-9.056l202.624-197.184-0.8 143.808c-0.096 17.696 14.144 32.096 31.808 32.192 0.064 0 0.128 0 0.192 0 17.6 0 31.904-14.208 32-31.808l1.248-222.208c0-0.672-0.352-1.248-0.384-1.92 0.032-0.512 0.288-0.896 0.288-1.408 0.032-17.664-14.272-32-31.968-32.032L671.552 96l-0.032 0c-17.664 0-31.968 14.304-32 31.968C639.488 145.632 653.824 160 671.488 160l151.872 0.224-206.368 200.8c-12.672 12.32-12.928 32.608-0.64 45.248C622.656 412.736 630.976 416 639.328 416z" p-id="2171"></path><path d="M896.032 639.552 896.032 639.552c-17.696 0-32 14.304-32.032 31.968l-0.224 151.872-200.832-206.4c-12.32-12.64-32.576-12.96-45.248-0.64-12.672 12.352-12.928 32.608-0.64 45.248l197.184 202.624-143.808-0.8c-0.064 0-0.128 0-0.192 0-17.6 0-31.904 14.208-32 31.808-0.096 17.696 14.144 32.096 31.808 32.192l222.24 1.248c0.064 0 0.128 0 0.192 0 0.64 0 1.12-0.32 1.76-0.352 0.512 0.032 0.896 0.288 1.408 0.288l0.032 0c17.664 0 31.968-14.304 32-31.968L928 671.584C928.032 653.952 913.728 639.584 896.032 639.552z" p-id="2172"></path><path d="M209.76 159.744l143.808 0.8c0.064 0 0.128 0 0.192 0 17.6 0 31.904-14.208 32-31.808 0.096-17.696-14.144-32.096-31.808-32.192L131.68 95.328c-0.064 0-0.128 0-0.192 0-0.672 0-1.248 0.352-1.888 0.384-0.448 0-0.8-0.256-1.248-0.256 0 0-0.032 0-0.032 0-17.664 0-31.968 14.304-32 31.968L96 352.448c-0.032 17.664 14.272 32 31.968 32.032 0 0 0.032 0 0.032 0 17.664 0 31.968-14.304 32-31.968l0.224-151.936 200.832 206.4c6.272 6.464 14.624 9.696 22.944 9.696 8.032 0 16.096-3.008 22.304-9.056 12.672-12.32 12.96-32.608 0.64-45.248L209.76 159.744z" p-id="2173"></path><path d="M362.368 617.056l-202.624 197.184 0.8-143.808c0.096-17.696-14.144-32.096-31.808-32.192-0.064 0-0.128 0-0.192 0-17.6 0-31.904 14.208-32 31.808l-1.248 222.24c0 0.704 0.352 1.312 0.384 2.016 0 0.448-0.256 0.832-0.256 1.312-0.032 17.664 14.272 32 31.968 32.032L352.448 928c0 0 0.032 0 0.032 0 17.664 0 31.968-14.304 32-31.968s-14.272-32-31.968-32.032l-151.936-0.224 206.4-200.832c12.672-12.352 12.96-32.608 0.64-45.248S375.008 604.704 362.368 617.056z" p-id="2174"></path></svg>', He = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1750169573443" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2883" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M514.133333 488.533333m-106.666666 0a106.666667 106.666667 0 1 0 213.333333 0 106.666667 106.666667 0 1 0-213.333333 0Z" fill="currentColor" p-id="2884"></path><path d="M512 64C264.533333 64 64 264.533333 64 512c0 236.8 183.466667 428.8 416 445.866667v-134.4c-53.333333-59.733333-200.533333-230.4-200.533333-334.933334 0-130.133333 104.533333-234.666667 234.666666-234.666666s234.666667 104.533333 234.666667 234.666666c0 61.866667-49.066667 153.6-145.066667 270.933334l-59.733333 68.266666V960C776.533333 942.933333 960 748.8 960 512c0-247.466667-200.533333-448-448-448z" fill="currentColor" p-id="2885"></path></svg>', Ie = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1750169419447" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2480" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M863.328 482.56l-317.344-1.12L545.984 162.816c0-17.664-14.336-32-32-32s-32 14.336-32 32l0 318.4L159.616 480.064c-0.032 0-0.064 0-0.096 0-17.632 0-31.936 14.24-32 31.904C127.424 529.632 141.728 544 159.392 544.064l322.592 1.152 0 319.168c0 17.696 14.336 32 32 32s32-14.304 32-32l0-318.944 317.088 1.12c0.064 0 0.096 0 0.128 0 17.632 0 31.936-14.24 32-31.904C895.264 496.992 880.96 482.624 863.328 482.56z" p-id="2481"></path></svg>', Oe = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1750169426515" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2730" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M863.744 544 163.424 544c-17.664 0-32-14.336-32-32s14.336-32 32-32l700.32 0c17.696 0 32 14.336 32 32S881.44 544 863.744 544z" p-id="2731"></path></svg>', Be = {
|
|
860
|
+
side: ke,
|
|
842
861
|
left: Ne,
|
|
843
|
-
right:
|
|
862
|
+
right: Ae,
|
|
844
863
|
full: $e,
|
|
845
864
|
living: He,
|
|
846
865
|
zoomin: Ie,
|
|
847
866
|
zoomout: Oe
|
|
848
|
-
},
|
|
867
|
+
}, $ = (t, e) => {
|
|
849
868
|
const n = document.createElement("span");
|
|
850
|
-
return n.id = t, n.innerHTML =
|
|
869
|
+
return n.id = t, n.innerHTML = Be[e], n;
|
|
851
870
|
};
|
|
852
|
-
function
|
|
853
|
-
const e = document.createElement("div"), n =
|
|
871
|
+
function We(t) {
|
|
872
|
+
const e = document.createElement("div"), n = $("fullscreen", "full"), o = $("toCenter", "living"), s = $("zoomout", "zoomout"), i = $("zoomin", "zoomin");
|
|
854
873
|
e.appendChild(n), e.appendChild(o), e.appendChild(s), e.appendChild(i), e.className = "mind-elixir-toolbar rb";
|
|
855
874
|
let r = null;
|
|
856
875
|
const c = () => {
|
|
857
|
-
const
|
|
876
|
+
const a = t.container.getBoundingClientRect(), d = ot(t.map.style.transform), f = a.width / 2, p = a.height / 2, w = (f - d.x) / t.scaleVal, y = (p - d.y) / t.scaleVal;
|
|
858
877
|
r = {
|
|
859
|
-
containerRect:
|
|
860
|
-
currentTransform:
|
|
878
|
+
containerRect: a,
|
|
879
|
+
currentTransform: d,
|
|
861
880
|
mapCenterX: w,
|
|
862
881
|
mapCenterY: y
|
|
863
882
|
};
|
|
864
|
-
},
|
|
883
|
+
}, l = () => {
|
|
865
884
|
if (r) {
|
|
866
|
-
const
|
|
885
|
+
const a = t.container.getBoundingClientRect(), d = a.width / 2, f = a.height / 2, p = d - r.mapCenterX * t.scaleVal, w = f - r.mapCenterY * t.scaleVal, y = p - r.currentTransform.x, u = w - r.currentTransform.y;
|
|
867
886
|
t.move(y, u);
|
|
868
887
|
}
|
|
869
888
|
};
|
|
870
|
-
return t.el.addEventListener("fullscreenchange",
|
|
889
|
+
return t.el.addEventListener("fullscreenchange", l), n.onclick = () => {
|
|
871
890
|
c(), document.fullscreenElement !== t.el ? t.el.requestFullscreen() : document.exitFullscreen();
|
|
872
891
|
}, o.onclick = () => {
|
|
873
892
|
t.toCenter();
|
|
@@ -877,8 +896,8 @@ function Be(t) {
|
|
|
877
896
|
t.scale(t.scaleVal + t.scaleSensitivity);
|
|
878
897
|
}, e;
|
|
879
898
|
}
|
|
880
|
-
function
|
|
881
|
-
const e = document.createElement("div"), n =
|
|
899
|
+
function Ye(t) {
|
|
900
|
+
const e = document.createElement("div"), n = $("tbltl", "left"), o = $("tbltr", "right"), s = $("tblts", "side");
|
|
882
901
|
return e.appendChild(n), e.appendChild(o), e.appendChild(s), e.className = "mind-elixir-toolbar lt", n.onclick = () => {
|
|
883
902
|
t.initLeft();
|
|
884
903
|
}, o.onclick = () => {
|
|
@@ -888,12 +907,12 @@ function We(t) {
|
|
|
888
907
|
}, e;
|
|
889
908
|
}
|
|
890
909
|
function Re(t) {
|
|
891
|
-
t.container.append(
|
|
910
|
+
t.container.append(We(t)), t.container.append(Ye(t));
|
|
892
911
|
}
|
|
893
912
|
const Xe = function(t, e = !0) {
|
|
894
913
|
this.theme = t;
|
|
895
914
|
const o = {
|
|
896
|
-
...(t.type === "dark" ?
|
|
915
|
+
...(t.type === "dark" ? et : tt).cssVar,
|
|
897
916
|
...t.cssVar
|
|
898
917
|
}, s = Object.keys(o);
|
|
899
918
|
for (let i = 0; i < s.length; i++) {
|
|
@@ -938,69 +957,69 @@ const Xe = function(t, e = !0) {
|
|
|
938
957
|
};
|
|
939
958
|
}, gt = {
|
|
940
959
|
create: Ve
|
|
941
|
-
},
|
|
942
|
-
function
|
|
960
|
+
}, ze = "#4dc4ff";
|
|
961
|
+
function Pt(t, e, n, o, s, i, r, c) {
|
|
943
962
|
return {
|
|
944
963
|
x: t / 8 + n * 3 / 8 + s * 3 / 8 + r / 8,
|
|
945
964
|
y: e / 8 + o * 3 / 8 + i * 3 / 8 + c / 8
|
|
946
965
|
};
|
|
947
966
|
}
|
|
948
|
-
function
|
|
949
|
-
t && (t.dataset.x = e.toString(), t.dataset.y = n.toString(),
|
|
967
|
+
function Fe(t, e, n) {
|
|
968
|
+
t && (t.dataset.x = e.toString(), t.dataset.y = n.toString(), U(t));
|
|
950
969
|
}
|
|
951
|
-
function
|
|
952
|
-
|
|
970
|
+
function V(t, e, n, o, s) {
|
|
971
|
+
D(t, {
|
|
953
972
|
x1: e + "",
|
|
954
973
|
y1: n + "",
|
|
955
974
|
x2: o + "",
|
|
956
975
|
y2: s + ""
|
|
957
976
|
});
|
|
958
977
|
}
|
|
959
|
-
function mt(t, e, n, o, s, i, r, c,
|
|
960
|
-
const
|
|
961
|
-
if (t.line.setAttribute("d",
|
|
962
|
-
const u =
|
|
978
|
+
function mt(t, e, n, o, s, i, r, c, l, a) {
|
|
979
|
+
const d = `M ${e} ${n} C ${o} ${s} ${i} ${r} ${c} ${l}`;
|
|
980
|
+
if (t.line.setAttribute("d", d), a.style) {
|
|
981
|
+
const u = a.style;
|
|
963
982
|
u.stroke && t.line.setAttribute("stroke", u.stroke), u.strokeWidth && t.line.setAttribute("stroke-width", String(u.strokeWidth)), u.strokeDasharray && t.line.setAttribute("stroke-dasharray", u.strokeDasharray), u.strokeLinecap && t.line.setAttribute("stroke-linecap", u.strokeLinecap), u.opacity !== void 0 && t.line.setAttribute("opacity", String(u.opacity));
|
|
964
983
|
}
|
|
965
984
|
const f = t.querySelectorAll('path[stroke="transparent"]');
|
|
966
|
-
f.length > 0 && f[0].setAttribute("d",
|
|
967
|
-
const p =
|
|
985
|
+
f.length > 0 && f[0].setAttribute("d", d);
|
|
986
|
+
const p = _(i, r, c, l);
|
|
968
987
|
if (p) {
|
|
969
|
-
const u = `M ${p.x1} ${p.y1} L ${c} ${
|
|
970
|
-
if (t.arrow1.setAttribute("d", u), f.length > 1 && f[1].setAttribute("d", u),
|
|
971
|
-
const g =
|
|
988
|
+
const u = `M ${p.x1} ${p.y1} L ${c} ${l} L ${p.x2} ${p.y2}`;
|
|
989
|
+
if (t.arrow1.setAttribute("d", u), f.length > 1 && f[1].setAttribute("d", u), a.style) {
|
|
990
|
+
const g = a.style;
|
|
972
991
|
g.stroke && t.arrow1.setAttribute("stroke", g.stroke), g.strokeWidth && t.arrow1.setAttribute("stroke-width", String(g.strokeWidth)), g.strokeLinecap && t.arrow1.setAttribute("stroke-linecap", g.strokeLinecap), g.opacity !== void 0 && t.arrow1.setAttribute("opacity", String(g.opacity));
|
|
973
992
|
}
|
|
974
993
|
}
|
|
975
|
-
if (
|
|
976
|
-
const u =
|
|
994
|
+
if (a.bidirectional) {
|
|
995
|
+
const u = _(o, s, e, n);
|
|
977
996
|
if (u) {
|
|
978
997
|
const g = `M ${u.x1} ${u.y1} L ${e} ${n} L ${u.x2} ${u.y2}`;
|
|
979
|
-
if (t.arrow2.setAttribute("d", g), f.length > 2 && f[2].setAttribute("d", g),
|
|
980
|
-
const b =
|
|
998
|
+
if (t.arrow2.setAttribute("d", g), f.length > 2 && f[2].setAttribute("d", g), a.style) {
|
|
999
|
+
const b = a.style;
|
|
981
1000
|
b.stroke && t.arrow2.setAttribute("stroke", b.stroke), b.strokeWidth && t.arrow2.setAttribute("stroke-width", String(b.strokeWidth)), b.strokeLinecap && t.arrow2.setAttribute("stroke-linecap", b.strokeLinecap), b.opacity !== void 0 && t.arrow2.setAttribute("opacity", String(b.opacity));
|
|
982
1001
|
}
|
|
983
1002
|
}
|
|
984
1003
|
}
|
|
985
|
-
const { x: w, y } =
|
|
986
|
-
if (t.labelEl &&
|
|
1004
|
+
const { x: w, y } = Pt(e, n, o, s, i, r, c, l);
|
|
1005
|
+
if (t.labelEl && Fe(t.labelEl, w, y), a.style?.labelColor) {
|
|
987
1006
|
const u = t.labelEl;
|
|
988
|
-
u && (u.style.color =
|
|
1007
|
+
u && (u.style.color = a.style.labelColor);
|
|
989
1008
|
}
|
|
990
1009
|
Qe(t);
|
|
991
1010
|
}
|
|
992
|
-
function
|
|
993
|
-
const { offsetLeft: o, offsetTop: s } =
|
|
1011
|
+
function q(t, e, n) {
|
|
1012
|
+
const { offsetLeft: o, offsetTop: s } = M(t.nodes, e), i = e.offsetWidth, r = e.offsetHeight, c = o + i / 2, l = s + r / 2, a = c + n.x, d = l + n.y;
|
|
994
1013
|
return {
|
|
995
1014
|
w: i,
|
|
996
1015
|
h: r,
|
|
997
1016
|
cx: c,
|
|
998
|
-
cy:
|
|
999
|
-
ctrlX:
|
|
1000
|
-
ctrlY:
|
|
1017
|
+
cy: l,
|
|
1018
|
+
ctrlX: a,
|
|
1019
|
+
ctrlY: d
|
|
1001
1020
|
};
|
|
1002
1021
|
}
|
|
1003
|
-
function
|
|
1022
|
+
function H(t) {
|
|
1004
1023
|
let e, n;
|
|
1005
1024
|
const o = (t.cy - t.ctrlY) / (t.ctrlX - t.cx);
|
|
1006
1025
|
return o > t.h / t.w || o < -t.h / t.w ? t.cy - t.ctrlY < 0 ? (e = t.cx - t.h / 2 / o, n = t.cy + t.h / 2) : (e = t.cx + t.h / 2 / o, n = t.cy - t.h / 2) : t.cx - t.ctrlX < 0 ? (e = t.cx + t.w / 2, n = t.cy - t.w * o / 2) : (e = t.cx - t.w / 2, n = t.cy + t.w * o / 2), {
|
|
@@ -1008,74 +1027,74 @@ function Y(t) {
|
|
|
1008
1027
|
y: n
|
|
1009
1028
|
};
|
|
1010
1029
|
}
|
|
1011
|
-
const
|
|
1012
|
-
const o =
|
|
1030
|
+
const Ge = function(t, e, n) {
|
|
1031
|
+
const o = M(t.nodes, e), s = M(t.nodes, n), i = o.offsetLeft + e.offsetWidth / 2, r = o.offsetTop + e.offsetHeight / 2, c = s.offsetLeft + n.offsetWidth / 2, l = s.offsetTop + n.offsetHeight / 2, a = c - i, d = l - r, f = Math.sqrt(a * a + d * d), p = Math.max(50, Math.min(200, f * 0.3)), w = Math.abs(a), y = Math.abs(d);
|
|
1013
1032
|
let u, g;
|
|
1014
1033
|
if (f < 150) {
|
|
1015
1034
|
const v = e.closest("me-main").className === "lhs" ? -1 : 1;
|
|
1016
1035
|
u = { x: 200 * v, y: 0 }, g = { x: 200 * v, y: 0 };
|
|
1017
1036
|
} else if (w > y * 1.5) {
|
|
1018
|
-
const v =
|
|
1019
|
-
u = { x: v + (
|
|
1037
|
+
const v = a > 0 ? e.offsetWidth / 2 : -e.offsetWidth / 2, C = a > 0 ? -n.offsetWidth / 2 : n.offsetWidth / 2;
|
|
1038
|
+
u = { x: v + (a > 0 ? p : -p), y: 0 }, g = { x: C + (a > 0 ? -p : p), y: 0 };
|
|
1020
1039
|
} else if (y > w * 1.5) {
|
|
1021
|
-
const v =
|
|
1022
|
-
u = { x: 0, y: v + (
|
|
1040
|
+
const v = d > 0 ? e.offsetHeight / 2 : -e.offsetHeight / 2, C = d > 0 ? -n.offsetHeight / 2 : n.offsetHeight / 2;
|
|
1041
|
+
u = { x: 0, y: v + (d > 0 ? p : -p) }, g = { x: 0, y: C + (d > 0 ? -p : p) };
|
|
1023
1042
|
} else {
|
|
1024
|
-
const v = Math.atan2(
|
|
1025
|
-
u = { x: C +
|
|
1043
|
+
const v = Math.atan2(d, a), C = e.offsetWidth / 2 * Math.cos(v), T = e.offsetHeight / 2 * Math.sin(v), h = -(n.offsetWidth / 2) * Math.cos(v), m = -(n.offsetHeight / 2) * Math.sin(v), x = p * 0.7 * (a > 0 ? 1 : -1), S = p * 0.7 * (d > 0 ? 1 : -1);
|
|
1044
|
+
u = { x: C + x, y: T + S }, g = { x: h - x, y: m - S };
|
|
1026
1045
|
}
|
|
1027
1046
|
return {
|
|
1028
1047
|
delta1: { x: Math.round(u.x), y: Math.round(u.y) },
|
|
1029
1048
|
delta2: { x: Math.round(g.x), y: Math.round(g.y) }
|
|
1030
1049
|
};
|
|
1031
|
-
},
|
|
1050
|
+
}, it = function(t, e, n, o, s) {
|
|
1032
1051
|
if (!e || !n)
|
|
1033
1052
|
return;
|
|
1034
1053
|
if (!o.delta1 || !o.delta2) {
|
|
1035
|
-
const
|
|
1036
|
-
o.delta1 =
|
|
1054
|
+
const E = Ge(t, e, n);
|
|
1055
|
+
o.delta1 = E.delta1, o.delta2 = E.delta2;
|
|
1037
1056
|
}
|
|
1038
|
-
const i =
|
|
1057
|
+
const i = q(t, e, o.delta1), r = q(t, n, o.delta2), { x: c, y: l } = H(i), { ctrlX: a, ctrlY: d } = i, { ctrlX: f, ctrlY: p } = r, { x: w, y } = H(r), u = _(f, p, w, y);
|
|
1039
1058
|
if (!u) return;
|
|
1040
1059
|
const g = `M ${u.x1} ${u.y1} L ${w} ${y} L ${u.x2} ${u.y2}`;
|
|
1041
1060
|
let b = "";
|
|
1042
1061
|
if (o.bidirectional) {
|
|
1043
|
-
const
|
|
1044
|
-
if (!
|
|
1045
|
-
b = `M ${
|
|
1062
|
+
const E = _(a, d, c, l);
|
|
1063
|
+
if (!E) return;
|
|
1064
|
+
b = `M ${E.x1} ${E.y1} L ${c} ${l} L ${E.x2} ${E.y2}`;
|
|
1046
1065
|
}
|
|
1047
|
-
const v = Me(`M ${c} ${
|
|
1048
|
-
v.id =
|
|
1049
|
-
const
|
|
1066
|
+
const v = Me(`M ${c} ${l} C ${a} ${d} ${f} ${p} ${w} ${y}`, g, b, o.style), { x: C, y: T } = Pt(c, l, a, d, f, p, w, y), h = o.style?.labelColor || "rgb(235, 95, 82)", m = "a-" + o.id;
|
|
1067
|
+
v.id = m;
|
|
1068
|
+
const x = t.markdown ? t.markdown(o.label, o) : o.label, S = Q(x, C, T, {
|
|
1050
1069
|
anchor: "middle",
|
|
1051
|
-
color:
|
|
1070
|
+
color: h,
|
|
1052
1071
|
dataType: "arrow",
|
|
1053
|
-
svgId:
|
|
1072
|
+
svgId: m
|
|
1054
1073
|
});
|
|
1055
|
-
v.labelEl =
|
|
1056
|
-
},
|
|
1074
|
+
v.labelEl = S, v.arrowObj = o, v.dataset.linkid = o.id, t.labelContainer.appendChild(S), t.arrowSvg.appendChild(v), U(S), s || (t.arrows.push(o), t.currentArrow = v, kt(t, o, i, r));
|
|
1075
|
+
}, _e = function(t, e, n = {}) {
|
|
1057
1076
|
const o = {
|
|
1058
|
-
id:
|
|
1077
|
+
id: Y(),
|
|
1059
1078
|
label: "Custom Link",
|
|
1060
1079
|
from: t.nodeObj.id,
|
|
1061
1080
|
to: e.nodeObj.id,
|
|
1062
1081
|
...n
|
|
1063
1082
|
};
|
|
1064
|
-
|
|
1083
|
+
it(this, t, e, o), this.bus.fire("operation", {
|
|
1065
1084
|
name: "createArrow",
|
|
1066
1085
|
obj: o
|
|
1067
1086
|
});
|
|
1068
|
-
},
|
|
1069
|
-
|
|
1070
|
-
const e = { ...t, id:
|
|
1071
|
-
|
|
1087
|
+
}, qe = function(t) {
|
|
1088
|
+
K(this);
|
|
1089
|
+
const e = { ...t, id: Y() };
|
|
1090
|
+
it(this, this.findEle(e.from), this.findEle(e.to), e), this.bus.fire("operation", {
|
|
1072
1091
|
name: "createArrow",
|
|
1073
1092
|
obj: e
|
|
1074
1093
|
});
|
|
1075
1094
|
}, je = function(t) {
|
|
1076
1095
|
let e;
|
|
1077
1096
|
if (t ? e = t : e = this.currentArrow, !e) return;
|
|
1078
|
-
|
|
1097
|
+
K(this);
|
|
1079
1098
|
const n = e.arrowObj.id;
|
|
1080
1099
|
this.arrows = this.arrows.filter((o) => o.id !== n), e.labelEl?.remove(), e.remove(), this.bus.fire("operation", {
|
|
1081
1100
|
name: "removeArrow",
|
|
@@ -1085,13 +1104,13 @@ const Fe = function(t, e, n) {
|
|
|
1085
1104
|
});
|
|
1086
1105
|
}, Ue = function(t) {
|
|
1087
1106
|
this.currentArrow = t;
|
|
1088
|
-
const e = t.arrowObj, n = this.findEle(e.from), o = this.findEle(e.to), s =
|
|
1089
|
-
|
|
1107
|
+
const e = t.arrowObj, n = this.findEle(e.from), o = this.findEle(e.to), s = q(this, n, e.delta1), i = q(this, o, e.delta2);
|
|
1108
|
+
kt(this, e, s, i), this.bus.fire("selectArrow", e);
|
|
1090
1109
|
}, Ke = function() {
|
|
1091
|
-
|
|
1092
|
-
},
|
|
1093
|
-
const n = document.createElementNS(
|
|
1094
|
-
return
|
|
1110
|
+
K(this), this.currentArrow = null, this.bus.fire("unselectArrow");
|
|
1111
|
+
}, Z = function(t, e) {
|
|
1112
|
+
const n = document.createElementNS(N, "path");
|
|
1113
|
+
return D(n, {
|
|
1095
1114
|
d: t,
|
|
1096
1115
|
stroke: e,
|
|
1097
1116
|
fill: "none",
|
|
@@ -1100,13 +1119,13 @@ const Fe = function(t, e, n) {
|
|
|
1100
1119
|
"stroke-linejoin": "round"
|
|
1101
1120
|
}), n;
|
|
1102
1121
|
}, Je = function(t, e) {
|
|
1103
|
-
const n = document.createElementNS(
|
|
1122
|
+
const n = document.createElementNS(N, "g");
|
|
1104
1123
|
n.setAttribute("class", "arrow-highlight"), n.setAttribute("opacity", "0.45");
|
|
1105
|
-
const o =
|
|
1124
|
+
const o = Z(t.line.getAttribute("d"), e);
|
|
1106
1125
|
n.appendChild(o);
|
|
1107
|
-
const s =
|
|
1126
|
+
const s = Z(t.arrow1.getAttribute("d"), e);
|
|
1108
1127
|
if (n.appendChild(s), t.arrow2.getAttribute("d")) {
|
|
1109
|
-
const i =
|
|
1128
|
+
const i = Z(t.arrow2.getAttribute("d"), e);
|
|
1110
1129
|
n.appendChild(i);
|
|
1111
1130
|
}
|
|
1112
1131
|
t.insertBefore(n, t.firstChild);
|
|
@@ -1118,44 +1137,44 @@ const Fe = function(t, e, n) {
|
|
|
1118
1137
|
if (!e) return;
|
|
1119
1138
|
const n = e.querySelectorAll("path");
|
|
1120
1139
|
n.length >= 1 && n[0].setAttribute("d", t.line.getAttribute("d")), n.length >= 2 && n[1].setAttribute("d", t.arrow1.getAttribute("d")), n.length >= 3 && t.arrow2.getAttribute("d") && n[2].setAttribute("d", t.arrow2.getAttribute("d"));
|
|
1121
|
-
},
|
|
1140
|
+
}, K = function(t) {
|
|
1122
1141
|
t.helper1?.destroy(), t.helper2?.destroy(), t.linkController.style.display = "none", t.P2.style.display = "none", t.P3.style.display = "none", t.currentArrow && Ze(t.currentArrow);
|
|
1123
|
-
},
|
|
1124
|
-
const { linkController: s, P2: i, P3: r, line1: c, line2:
|
|
1142
|
+
}, kt = function(t, e, n, o) {
|
|
1143
|
+
const { linkController: s, P2: i, P3: r, line1: c, line2: l, nodes: a, map: d, currentArrow: f, bus: p } = t;
|
|
1125
1144
|
if (!f) return;
|
|
1126
|
-
s.style.display = "initial", i.style.display = "initial", r.style.display = "initial",
|
|
1127
|
-
let { x: w, y } =
|
|
1128
|
-
i.style.cssText = `top:${g}px;left:${u}px;`, r.style.cssText = `top:${v}px;left:${b}px;`,
|
|
1129
|
-
u = u +
|
|
1130
|
-
const
|
|
1131
|
-
w =
|
|
1132
|
-
}), t.helper2.init(
|
|
1133
|
-
b = b +
|
|
1134
|
-
const
|
|
1135
|
-
C =
|
|
1145
|
+
s.style.display = "initial", i.style.display = "initial", r.style.display = "initial", a.appendChild(s), a.appendChild(i), a.appendChild(r), Je(f, ze);
|
|
1146
|
+
let { x: w, y } = H(n), { ctrlX: u, ctrlY: g } = n, { ctrlX: b, ctrlY: v } = o, { x: C, y: T } = H(o);
|
|
1147
|
+
i.style.cssText = `top:${g}px;left:${u}px;`, r.style.cssText = `top:${v}px;left:${b}px;`, V(c, w, y, u, g), V(l, b, v, C, T), t.helper1 = gt.create(i), t.helper2 = gt.create(r), t.helper1.init(d, (h, m) => {
|
|
1148
|
+
u = u + h / t.scaleVal, g = g + m / t.scaleVal;
|
|
1149
|
+
const x = H({ ...n, ctrlX: u, ctrlY: g });
|
|
1150
|
+
w = x.x, y = x.y, i.style.top = g + "px", i.style.left = u + "px", mt(f, w, y, u, g, b, v, C, T, e), V(c, w, y, u, g), e.delta1.x = Math.round(u - n.cx), e.delta1.y = Math.round(g - n.cy), p.fire("updateArrowDelta", e);
|
|
1151
|
+
}), t.helper2.init(d, (h, m) => {
|
|
1152
|
+
b = b + h / t.scaleVal, v = v + m / t.scaleVal;
|
|
1153
|
+
const x = H({ ...o, ctrlX: b, ctrlY: v });
|
|
1154
|
+
C = x.x, T = x.y, r.style.top = v + "px", r.style.left = b + "px", mt(f, w, y, u, g, b, v, C, T, e), V(l, b, v, C, T), e.delta2.x = Math.round(b - o.cx), e.delta2.y = Math.round(v - o.cy), p.fire("updateArrowDelta", e);
|
|
1136
1155
|
});
|
|
1137
1156
|
};
|
|
1138
1157
|
function tn() {
|
|
1139
|
-
this.
|
|
1158
|
+
this.arrowSvg.innerHTML = "", this.labelContainer.querySelectorAll('.svg-label[data-type="arrow"]').forEach((e) => e.remove());
|
|
1140
1159
|
for (let e = 0; e < this.arrows.length; e++) {
|
|
1141
1160
|
const n = this.arrows[e];
|
|
1142
1161
|
try {
|
|
1143
|
-
|
|
1162
|
+
it(this, this.findEle(n.from), this.findEle(n.to), n, !0);
|
|
1144
1163
|
} catch {
|
|
1145
1164
|
}
|
|
1146
1165
|
}
|
|
1147
|
-
this.nodes.appendChild(this.
|
|
1166
|
+
this.nodes.appendChild(this.arrowSvg);
|
|
1148
1167
|
}
|
|
1149
1168
|
function en(t) {
|
|
1150
|
-
|
|
1169
|
+
K(this), t && t.labelEl && Lt(this, t.labelEl, t.arrowObj);
|
|
1151
1170
|
}
|
|
1152
1171
|
function nn() {
|
|
1153
|
-
this.arrows = this.arrows.filter((t) =>
|
|
1172
|
+
this.arrows = this.arrows.filter((t) => G(t.from, this.nodeData) && G(t.to, this.nodeData));
|
|
1154
1173
|
}
|
|
1155
1174
|
const on = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1156
1175
|
__proto__: null,
|
|
1157
|
-
createArrow:
|
|
1158
|
-
createArrowFrom:
|
|
1176
|
+
createArrow: _e,
|
|
1177
|
+
createArrowFrom: qe,
|
|
1159
1178
|
editArrowLabel: en,
|
|
1160
1179
|
removeArrow: je,
|
|
1161
1180
|
renderArrow: tn,
|
|
@@ -1165,34 +1184,34 @@ const on = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
1165
1184
|
}, Symbol.toStringTag, { value: "Module" })), sn = function(t) {
|
|
1166
1185
|
if (t.length === 0) throw new Error("No selected node.");
|
|
1167
1186
|
if (t.length === 1) {
|
|
1168
|
-
const
|
|
1169
|
-
if (!
|
|
1170
|
-
const
|
|
1187
|
+
const l = t[0].nodeObj, a = t[0].nodeObj.parent;
|
|
1188
|
+
if (!a) throw new Error("Can not select root node.");
|
|
1189
|
+
const d = a.children.findIndex((f) => l === f);
|
|
1171
1190
|
return {
|
|
1172
|
-
parent:
|
|
1173
|
-
start:
|
|
1174
|
-
end:
|
|
1191
|
+
parent: a.id,
|
|
1192
|
+
start: d,
|
|
1193
|
+
end: d
|
|
1175
1194
|
};
|
|
1176
1195
|
}
|
|
1177
1196
|
let e = 0;
|
|
1178
|
-
const n = t.map((
|
|
1179
|
-
let
|
|
1180
|
-
const
|
|
1181
|
-
for (;
|
|
1182
|
-
const f =
|
|
1183
|
-
|
|
1197
|
+
const n = t.map((l) => {
|
|
1198
|
+
let a = l.nodeObj;
|
|
1199
|
+
const d = [];
|
|
1200
|
+
for (; a.parent; ) {
|
|
1201
|
+
const f = a.parent, w = f.children?.indexOf(a);
|
|
1202
|
+
a = f, d.unshift({ node: a, index: w });
|
|
1184
1203
|
}
|
|
1185
|
-
return
|
|
1204
|
+
return d.length > e && (e = d.length), d;
|
|
1186
1205
|
});
|
|
1187
1206
|
let o = 0;
|
|
1188
1207
|
t: for (; o < e; o++) {
|
|
1189
|
-
const
|
|
1190
|
-
for (let
|
|
1191
|
-
if (n[
|
|
1208
|
+
const l = n[0][o]?.node;
|
|
1209
|
+
for (let a = 1; a < n.length; a++)
|
|
1210
|
+
if (n[a][o]?.node !== l)
|
|
1192
1211
|
break t;
|
|
1193
1212
|
}
|
|
1194
1213
|
if (!o) throw new Error("Can not select root node.");
|
|
1195
|
-
const s = n.map((
|
|
1214
|
+
const s = n.map((l) => l[o - 1].index).sort(), i = s[0] || 0, r = s[s.length - 1] || 0, c = n[0][o - 1].node;
|
|
1196
1215
|
if (!c.parent) throw new Error("Please select nodes in the same main topic.");
|
|
1197
1216
|
return {
|
|
1198
1217
|
parent: c.id,
|
|
@@ -1200,11 +1219,11 @@ const on = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
1200
1219
|
end: r
|
|
1201
1220
|
};
|
|
1202
1221
|
}, rn = function(t) {
|
|
1203
|
-
const e = document.createElementNS(
|
|
1222
|
+
const e = document.createElementNS(N, "g");
|
|
1204
1223
|
return e.setAttribute("id", t), e;
|
|
1205
1224
|
}, yt = function(t, e) {
|
|
1206
|
-
const n = document.createElementNS(
|
|
1207
|
-
return
|
|
1225
|
+
const n = document.createElementNS(N, "path");
|
|
1226
|
+
return D(n, {
|
|
1208
1227
|
d: t,
|
|
1209
1228
|
stroke: e || "#666",
|
|
1210
1229
|
fill: "none",
|
|
@@ -1215,35 +1234,35 @@ const on = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
1215
1234
|
const o = t.findEle(e), s = o.nodeObj;
|
|
1216
1235
|
let i;
|
|
1217
1236
|
return s.parent ? i = o.closest("me-main").className : i = t.findEle(s.children[n].id).closest("me-main").className, i;
|
|
1218
|
-
},
|
|
1219
|
-
const { id: n, label: o, parent: s, start: i, end: r, style: c } = e, { nodes:
|
|
1237
|
+
}, rt = function(t, e) {
|
|
1238
|
+
const { id: n, label: o, parent: s, start: i, end: r, style: c } = e, { nodes: l, theme: a, summarySvg: d } = t, p = t.findEle(s).nodeObj, w = ln(t, e);
|
|
1220
1239
|
let y = 1 / 0, u = 0, g = 0, b = 0;
|
|
1221
|
-
for (let
|
|
1222
|
-
const
|
|
1223
|
-
if (!
|
|
1240
|
+
for (let B = i; B <= r; B++) {
|
|
1241
|
+
const ct = p.children?.[B];
|
|
1242
|
+
if (!ct)
|
|
1224
1243
|
return t.removeSummary(n), null;
|
|
1225
|
-
const
|
|
1226
|
-
|
|
1244
|
+
const R = cn(t.findEle(ct.id)), { offsetLeft: X, offsetTop: lt } = M(l, R), at = i === r ? 10 : 20;
|
|
1245
|
+
B === i && (g = lt + at), B === r && (b = lt + R.offsetHeight - at), X < y && (y = X), R.offsetWidth + X > u && (u = R.offsetWidth + X);
|
|
1227
1246
|
}
|
|
1228
1247
|
let v, C;
|
|
1229
|
-
const
|
|
1230
|
-
w ===
|
|
1231
|
-
const
|
|
1232
|
-
return
|
|
1248
|
+
const T = p.parent ? 10 : 0, h = g + T, m = b + T, x = (h + m) / 2, S = c?.stroke || a.cssVar["--color"], E = c?.labelColor || a.cssVar["--color"], P = "s-" + n, k = t.markdown ? t.markdown(o, e) : o;
|
|
1249
|
+
w === I.LHS ? (v = yt(`M ${y + 10} ${h} c -5 0 -10 5 -10 10 L ${y} ${m - 10} c 0 5 5 10 10 10 M ${y} ${x} h -10`, S), C = Q(k, y - 20, x, { anchor: "end", color: E, dataType: "summary", svgId: P })) : (v = yt(`M ${u - 10} ${h} c 5 0 10 5 10 10 L ${u} ${m - 10} c 0 5 -5 10 -10 10 M ${u} ${x} h 10`, S), C = Q(k, u + 20, x, { anchor: "start", color: E, dataType: "summary", svgId: P }));
|
|
1250
|
+
const O = rn(P);
|
|
1251
|
+
return O.appendChild(v), t.labelContainer.appendChild(C), U(C), O.summaryObj = e, O.labelEl = C, d.appendChild(O), O;
|
|
1233
1252
|
}, an = function(t = {}) {
|
|
1234
1253
|
if (!this.currentNodes) return;
|
|
1235
|
-
const { currentNodes: e, summaries: n, bus: o } = this, { parent: s, start: i, end: r } = sn(e), c = { id:
|
|
1236
|
-
n.push(c), this.editSummary(
|
|
1254
|
+
const { currentNodes: e, summaries: n, bus: o } = this, { parent: s, start: i, end: r } = sn(e), c = { id: Y(), parent: s, start: i, end: r, label: "summary", style: t.style }, l = rt(this, c);
|
|
1255
|
+
n.push(c), this.editSummary(l), o.fire("operation", {
|
|
1237
1256
|
name: "createSummary",
|
|
1238
1257
|
obj: c
|
|
1239
1258
|
});
|
|
1240
|
-
},
|
|
1241
|
-
const e =
|
|
1242
|
-
|
|
1259
|
+
}, hn = function(t) {
|
|
1260
|
+
const e = Y(), n = { ...t, id: e };
|
|
1261
|
+
rt(this, n), this.summaries.push(n), this.bus.fire("operation", {
|
|
1243
1262
|
name: "createSummary",
|
|
1244
1263
|
obj: n
|
|
1245
1264
|
});
|
|
1246
|
-
},
|
|
1265
|
+
}, dn = function(t) {
|
|
1247
1266
|
const e = this.summaries.findIndex((n) => n.id === t);
|
|
1248
1267
|
e > -1 && (this.summaries.splice(e, 1), this.nodes.querySelector("#s-" + t)?.remove(), this.nodes.querySelector("#label-s-" + t)?.remove()), this.bus.fire("operation", {
|
|
1249
1268
|
name: "removeSummary",
|
|
@@ -1257,27 +1276,27 @@ const on = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
1257
1276
|
}, pn = function() {
|
|
1258
1277
|
this.summarySvg.innerHTML = "", this.summaries.forEach((t) => {
|
|
1259
1278
|
try {
|
|
1260
|
-
|
|
1279
|
+
rt(this, t);
|
|
1261
1280
|
} catch {
|
|
1262
1281
|
}
|
|
1263
1282
|
}), this.nodes.insertAdjacentElement("beforeend", this.summarySvg);
|
|
1264
1283
|
}, gn = function(t) {
|
|
1265
|
-
t && t.labelEl &&
|
|
1284
|
+
t && t.labelEl && Lt(this, t.labelEl, t.summaryObj);
|
|
1266
1285
|
}, mn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1267
1286
|
__proto__: null,
|
|
1268
1287
|
createSummary: an,
|
|
1269
|
-
createSummaryFrom:
|
|
1288
|
+
createSummaryFrom: hn,
|
|
1270
1289
|
editSummary: gn,
|
|
1271
|
-
removeSummary:
|
|
1290
|
+
removeSummary: dn,
|
|
1272
1291
|
renderSummary: pn,
|
|
1273
1292
|
selectSummary: fn,
|
|
1274
1293
|
unselectSummary: un
|
|
1275
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1294
|
+
}, Symbol.toStringTag, { value: "Module" })), L = "http://www.w3.org/2000/svg";
|
|
1276
1295
|
function yn(t, e) {
|
|
1277
|
-
const n = document.createElementNS(
|
|
1278
|
-
return
|
|
1296
|
+
const n = document.createElementNS(L, "svg");
|
|
1297
|
+
return D(n, {
|
|
1279
1298
|
version: "1.1",
|
|
1280
|
-
xmlns:
|
|
1299
|
+
xmlns: L,
|
|
1281
1300
|
height: t,
|
|
1282
1301
|
width: e
|
|
1283
1302
|
}), n;
|
|
@@ -1286,41 +1305,41 @@ function wn(t, e) {
|
|
|
1286
1305
|
return (parseInt(t) - parseInt(e)) / 2;
|
|
1287
1306
|
}
|
|
1288
1307
|
function vn(t, e, n, o) {
|
|
1289
|
-
const s = document.createElementNS(
|
|
1308
|
+
const s = document.createElementNS(L, "g");
|
|
1290
1309
|
let i = "";
|
|
1291
1310
|
return t.text ? i = t.text.textContent : i = t.childNodes[0].textContent, i.split(`
|
|
1292
|
-
`).forEach((c,
|
|
1293
|
-
const
|
|
1294
|
-
|
|
1311
|
+
`).forEach((c, l) => {
|
|
1312
|
+
const a = document.createElementNS(L, "text");
|
|
1313
|
+
D(a, {
|
|
1295
1314
|
x: n + parseInt(e.paddingLeft) + "",
|
|
1296
|
-
y: o + parseInt(e.paddingTop) + wn(e.lineHeight, e.fontSize) * (
|
|
1315
|
+
y: o + parseInt(e.paddingTop) + wn(e.lineHeight, e.fontSize) * (l + 1) + parseFloat(e.fontSize) * (l + 1) + "",
|
|
1297
1316
|
"text-anchor": "start",
|
|
1298
1317
|
"font-family": e.fontFamily,
|
|
1299
1318
|
"font-size": `${e.fontSize}`,
|
|
1300
1319
|
"font-weight": `${e.fontWeight}`,
|
|
1301
1320
|
fill: `${e.color}`
|
|
1302
|
-
}),
|
|
1321
|
+
}), a.innerHTML = c, s.appendChild(a);
|
|
1303
1322
|
}), s;
|
|
1304
1323
|
}
|
|
1305
1324
|
function bn(t, e, n, o) {
|
|
1306
1325
|
let s = "";
|
|
1307
1326
|
t.nodeObj?.dangerouslySetInnerHTML ? s = t.nodeObj.dangerouslySetInnerHTML : t.text ? s = t.text.textContent : s = t.childNodes[0].textContent;
|
|
1308
|
-
const i = document.createElementNS(
|
|
1309
|
-
|
|
1327
|
+
const i = document.createElementNS(L, "foreignObject");
|
|
1328
|
+
D(i, {
|
|
1310
1329
|
x: n + parseInt(e.paddingLeft) + "",
|
|
1311
1330
|
y: o + parseInt(e.paddingTop) + "",
|
|
1312
1331
|
width: e.width,
|
|
1313
1332
|
height: e.height
|
|
1314
1333
|
});
|
|
1315
1334
|
const r = document.createElement("div");
|
|
1316
|
-
return
|
|
1335
|
+
return D(r, {
|
|
1317
1336
|
xmlns: "http://www.w3.org/1999/xhtml",
|
|
1318
1337
|
style: `font-family: ${e.fontFamily}; font-size: ${e.fontSize}; font-weight: ${e.fontWeight}; color: ${e.color}; white-space: pre-wrap;`
|
|
1319
1338
|
}), r.innerHTML = s, i.appendChild(r), i;
|
|
1320
1339
|
}
|
|
1321
1340
|
function xn(t, e) {
|
|
1322
|
-
const n = getComputedStyle(e), { offsetLeft: o, offsetTop: s } =
|
|
1323
|
-
return
|
|
1341
|
+
const n = getComputedStyle(e), { offsetLeft: o, offsetTop: s } = M(t.nodes, e), i = document.createElementNS(L, "rect");
|
|
1342
|
+
return D(i, {
|
|
1324
1343
|
x: o + "",
|
|
1325
1344
|
y: s + "",
|
|
1326
1345
|
rx: n.borderRadius,
|
|
@@ -1332,9 +1351,9 @@ function xn(t, e) {
|
|
|
1332
1351
|
"stroke-width": n.borderWidth
|
|
1333
1352
|
}), i;
|
|
1334
1353
|
}
|
|
1335
|
-
function
|
|
1336
|
-
const o = getComputedStyle(e), { offsetLeft: s, offsetTop: i } =
|
|
1337
|
-
|
|
1354
|
+
function z(t, e, n = !1) {
|
|
1355
|
+
const o = getComputedStyle(e), { offsetLeft: s, offsetTop: i } = M(t.nodes, e), r = document.createElementNS(L, "rect");
|
|
1356
|
+
D(r, {
|
|
1338
1357
|
x: s + "",
|
|
1339
1358
|
y: i + "",
|
|
1340
1359
|
rx: o.borderRadius,
|
|
@@ -1345,14 +1364,14 @@ function F(t, e, n = !1) {
|
|
|
1345
1364
|
stroke: o.borderColor,
|
|
1346
1365
|
"stroke-width": o.borderWidth
|
|
1347
1366
|
});
|
|
1348
|
-
const c = document.createElementNS(
|
|
1367
|
+
const c = document.createElementNS(L, "g");
|
|
1349
1368
|
c.appendChild(r);
|
|
1350
|
-
let
|
|
1351
|
-
return n ?
|
|
1369
|
+
let l;
|
|
1370
|
+
return n ? l = bn(e, o, s, i) : l = vn(e, o, s, i), c.appendChild(l), c;
|
|
1352
1371
|
}
|
|
1353
1372
|
function Cn(t, e) {
|
|
1354
|
-
const n = getComputedStyle(e), { offsetLeft: o, offsetTop: s } =
|
|
1355
|
-
return
|
|
1373
|
+
const n = getComputedStyle(e), { offsetLeft: o, offsetTop: s } = M(t.nodes, e), i = document.createElementNS(L, "a"), r = document.createElementNS(L, "text");
|
|
1374
|
+
return D(r, {
|
|
1356
1375
|
x: o + "",
|
|
1357
1376
|
y: s + parseInt(n.fontSize) + "",
|
|
1358
1377
|
"text-anchor": "start",
|
|
@@ -1362,9 +1381,9 @@ function Cn(t, e) {
|
|
|
1362
1381
|
fill: `${n.color}`
|
|
1363
1382
|
}), r.innerHTML = e.textContent, i.appendChild(r), i.setAttribute("href", e.href), i;
|
|
1364
1383
|
}
|
|
1365
|
-
function
|
|
1366
|
-
const n = getComputedStyle(e), { offsetLeft: o, offsetTop: s } =
|
|
1367
|
-
return
|
|
1384
|
+
function Sn(t, e) {
|
|
1385
|
+
const n = getComputedStyle(e), { offsetLeft: o, offsetTop: s } = M(t.nodes, e), i = document.createElementNS(L, "image");
|
|
1386
|
+
return D(i, {
|
|
1368
1387
|
x: o + "",
|
|
1369
1388
|
y: s + "",
|
|
1370
1389
|
width: n.width + "",
|
|
@@ -1372,40 +1391,40 @@ function En(t, e) {
|
|
|
1372
1391
|
href: e.src
|
|
1373
1392
|
}), i;
|
|
1374
1393
|
}
|
|
1375
|
-
const
|
|
1376
|
-
const n = t.nodes, o = n.offsetHeight +
|
|
1377
|
-
|
|
1394
|
+
const F = 100, En = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">', Tn = (t, e = !1) => {
|
|
1395
|
+
const n = t.nodes, o = n.offsetHeight + F * 2, s = n.offsetWidth + F * 2, i = yn(o + "px", s + "px"), r = document.createElementNS(L, "svg"), c = document.createElementNS(L, "rect");
|
|
1396
|
+
D(c, {
|
|
1378
1397
|
x: "0",
|
|
1379
1398
|
y: "0",
|
|
1380
1399
|
width: `${s}`,
|
|
1381
1400
|
height: `${o}`,
|
|
1382
1401
|
fill: t.theme.cssVar["--bgcolor"]
|
|
1383
1402
|
}), i.appendChild(c), n.querySelectorAll(".subLines").forEach((f) => {
|
|
1384
|
-
const p = f.cloneNode(!0), { offsetLeft: w, offsetTop: y } =
|
|
1403
|
+
const p = f.cloneNode(!0), { offsetLeft: w, offsetTop: y } = M(n, f.parentElement);
|
|
1385
1404
|
p.setAttribute("x", `${w}`), p.setAttribute("y", `${y}`), r.appendChild(p);
|
|
1386
1405
|
});
|
|
1387
|
-
const
|
|
1406
|
+
const l = n.querySelector(".lines")?.cloneNode(!0);
|
|
1407
|
+
l && r.appendChild(l);
|
|
1408
|
+
const a = n.querySelector(".topiclinks")?.cloneNode(!0);
|
|
1388
1409
|
a && r.appendChild(a);
|
|
1389
|
-
const d = n.querySelector(".
|
|
1390
|
-
d && r.appendChild(d)
|
|
1391
|
-
|
|
1392
|
-
return h && r.appendChild(h), n.querySelectorAll("me-tpc").forEach((f) => {
|
|
1393
|
-
f.nodeObj.dangerouslySetInnerHTML ? r.appendChild(F(t, f, !e)) : (r.appendChild(xn(t, f)), r.appendChild(F(t, f.text, !e)));
|
|
1410
|
+
const d = n.querySelector(".summary")?.cloneNode(!0);
|
|
1411
|
+
return d && r.appendChild(d), n.querySelectorAll("me-tpc").forEach((f) => {
|
|
1412
|
+
f.nodeObj.dangerouslySetInnerHTML ? r.appendChild(z(t, f, !e)) : (r.appendChild(xn(t, f)), r.appendChild(z(t, f.text, !e)));
|
|
1394
1413
|
}), n.querySelectorAll(".tags > span").forEach((f) => {
|
|
1395
|
-
r.appendChild(
|
|
1414
|
+
r.appendChild(z(t, f));
|
|
1396
1415
|
}), n.querySelectorAll(".icons > span").forEach((f) => {
|
|
1397
|
-
r.appendChild(
|
|
1416
|
+
r.appendChild(z(t, f));
|
|
1398
1417
|
}), n.querySelectorAll(".hyper-link").forEach((f) => {
|
|
1399
1418
|
r.appendChild(Cn(t, f));
|
|
1400
1419
|
}), n.querySelectorAll("img").forEach((f) => {
|
|
1401
|
-
r.appendChild(
|
|
1402
|
-
}),
|
|
1403
|
-
x:
|
|
1404
|
-
y:
|
|
1420
|
+
r.appendChild(Sn(t, f));
|
|
1421
|
+
}), D(r, {
|
|
1422
|
+
x: F + "",
|
|
1423
|
+
y: F + "",
|
|
1405
1424
|
overflow: "visible"
|
|
1406
1425
|
}), i.appendChild(r), i;
|
|
1407
|
-
},
|
|
1408
|
-
function
|
|
1426
|
+
}, Dn = (t, e) => (e && t.insertAdjacentHTML("afterbegin", "<style>" + e + "</style>"), En + t.outerHTML);
|
|
1427
|
+
function Ln(t) {
|
|
1409
1428
|
return new Promise((e, n) => {
|
|
1410
1429
|
const o = new FileReader();
|
|
1411
1430
|
o.onload = (s) => {
|
|
@@ -1416,10 +1435,10 @@ function Dn(t) {
|
|
|
1416
1435
|
});
|
|
1417
1436
|
}
|
|
1418
1437
|
const Mn = function(t = !1, e) {
|
|
1419
|
-
const n = Tn(this, t), o =
|
|
1438
|
+
const n = Tn(this, t), o = Dn(n, e);
|
|
1420
1439
|
return new Blob([o], { type: "image/svg+xml" });
|
|
1421
|
-
},
|
|
1422
|
-
const n = this.exportSvg(t, e), o = await
|
|
1440
|
+
}, Pn = async function(t = !1, e) {
|
|
1441
|
+
const n = this.exportSvg(t, e), o = await Ln(n);
|
|
1423
1442
|
return new Promise((s, i) => {
|
|
1424
1443
|
const r = new Image();
|
|
1425
1444
|
r.setAttribute("crossOrigin", "anonymous"), r.onload = () => {
|
|
@@ -1427,69 +1446,88 @@ const Mn = function(t = !1, e) {
|
|
|
1427
1446
|
c.width = r.width, c.height = r.height, c.getContext("2d").drawImage(r, 0, 0), c.toBlob(s, "image/png", 1);
|
|
1428
1447
|
}, r.src = o, r.onerror = i;
|
|
1429
1448
|
});
|
|
1430
|
-
},
|
|
1449
|
+
}, kn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1431
1450
|
__proto__: null,
|
|
1432
|
-
exportPng:
|
|
1451
|
+
exportPng: Pn,
|
|
1433
1452
|
exportSvg: Mn
|
|
1434
|
-
}, Symbol.toStringTag, { value: "Module" })), Nn = {},
|
|
1435
|
-
getObjById:
|
|
1436
|
-
generateNewObj:
|
|
1453
|
+
}, Symbol.toStringTag, { value: "Module" })), Nn = {}, An = {
|
|
1454
|
+
getObjById: G,
|
|
1455
|
+
generateNewObj: At,
|
|
1437
1456
|
layout: Rt,
|
|
1438
|
-
linkDiv:
|
|
1439
|
-
editTopic:
|
|
1440
|
-
createWrapper:
|
|
1441
|
-
createParent:
|
|
1442
|
-
createChildren:
|
|
1443
|
-
createTopic:
|
|
1457
|
+
linkDiv: Pe,
|
|
1458
|
+
editTopic: qt,
|
|
1459
|
+
createWrapper: zt,
|
|
1460
|
+
createParent: Ft,
|
|
1461
|
+
createChildren: Gt,
|
|
1462
|
+
createTopic: _t,
|
|
1444
1463
|
findEle: Ct,
|
|
1445
1464
|
changeTheme: Xe,
|
|
1446
1465
|
...ve,
|
|
1447
1466
|
...Nn,
|
|
1448
1467
|
...on,
|
|
1449
1468
|
...mn,
|
|
1450
|
-
...
|
|
1469
|
+
...kn,
|
|
1451
1470
|
init(t) {
|
|
1452
1471
|
if (t = JSON.parse(JSON.stringify(t)), !t || !t.nodeData) return new Error("MindElixir: `data` is required");
|
|
1453
|
-
t.direction !== void 0 && (this.direction = t.direction), this.changeTheme(t.theme || this.theme, !1), this.nodeData = t.nodeData,
|
|
1472
|
+
t.direction !== void 0 && (this.direction = t.direction), this.changeTheme(t.theme || this.theme, !1), this.nodeData = t.nodeData, nt(this.nodeData), this.arrows = t.arrows || [], this.summaries = t.summaries || [], this.tidyArrow(), this.toolBar && Re(this), this.layout(), this.linkDiv(), this.toCenter();
|
|
1454
1473
|
},
|
|
1455
1474
|
destroy() {
|
|
1456
|
-
this.disposable.forEach((t) => t()), this.el && (this.el.innerHTML = ""), this.el = void 0, this.nodeData = void 0, this.arrows = void 0, this.summaries = void 0, this.currentArrow = void 0, this.currentNodes = void 0, this.currentSummary = void 0, this.theme = void 0, this.direction = void 0, this.bus = void 0, this.container = void 0, this.map = void 0, this.lines = void 0, this.linkController = void 0, this.
|
|
1475
|
+
this.disposable.forEach((t) => t()), this.el && (this.el.innerHTML = ""), this.el = void 0, this.nodeData = void 0, this.arrows = void 0, this.summaries = void 0, this.currentArrow = void 0, this.currentNodes = void 0, this.currentSummary = void 0, this.theme = void 0, this.direction = void 0, this.bus = void 0, this.container = void 0, this.map = void 0, this.lines = void 0, this.linkController = void 0, this.arrowSvg = void 0, this.P2 = void 0, this.P3 = void 0, this.line1 = void 0, this.line2 = void 0, this.nodes = void 0, this.selection?.destroy(), this.selection = void 0;
|
|
1476
|
+
},
|
|
1477
|
+
/**
|
|
1478
|
+
* @public
|
|
1479
|
+
* @param {boolean} enable
|
|
1480
|
+
*/
|
|
1481
|
+
enableMobileMultiSelect(t) {
|
|
1482
|
+
this.mobileMultiSelect = t;
|
|
1457
1483
|
}
|
|
1458
1484
|
};
|
|
1459
|
-
function $n({ pT: t, pL: e, pW: n, pH: o, cT: s, cL: i, cW: r, cH: c, direction:
|
|
1460
|
-
let
|
|
1485
|
+
function $n({ pT: t, pL: e, pW: n, pH: o, cT: s, cL: i, cW: r, cH: c, direction: l, containerHeight: a }) {
|
|
1486
|
+
let d = e + n / 2;
|
|
1461
1487
|
const f = t + o / 2;
|
|
1462
1488
|
let p;
|
|
1463
|
-
|
|
1464
|
-
const w = s + c / 2, u = (1 - Math.abs(w - f) /
|
|
1465
|
-
return
|
|
1489
|
+
l === I.LHS ? p = i + r : p = i;
|
|
1490
|
+
const w = s + c / 2, u = (1 - Math.abs(w - f) / a) * 0.25 * (n / 2);
|
|
1491
|
+
return l === I.LHS ? d = d - n / 10 - u : d = d + n / 10 + u, `M ${d} ${f} Q ${d} ${w} ${p} ${w}`;
|
|
1466
1492
|
}
|
|
1467
|
-
function Hn({ pT: t, pL: e, pW: n, pH: o, cT: s, cL: i, cW: r, cH: c, direction:
|
|
1468
|
-
const
|
|
1493
|
+
function Hn({ pT: t, pL: e, pW: n, pH: o, cT: s, cL: i, cW: r, cH: c, direction: l, isFirst: a }) {
|
|
1494
|
+
const d = parseInt(this.container.style.getPropertyValue("--node-gap-x"));
|
|
1469
1495
|
let f = 0, p = 0;
|
|
1470
|
-
|
|
1496
|
+
a ? f = t + o / 2 : f = t + o;
|
|
1471
1497
|
const w = s + c;
|
|
1472
1498
|
let y = 0, u = 0, g = 0;
|
|
1473
|
-
const b = Math.abs(f - w) / 300 *
|
|
1474
|
-
return
|
|
1499
|
+
const b = Math.abs(f - w) / 300 * d;
|
|
1500
|
+
return l === I.LHS ? (g = e, y = g + d, u = g - d, p = i + d, `M ${y} ${f} C ${g} ${f} ${g + b} ${w} ${u} ${w} H ${p}`) : (g = e + n, y = g - d, u = g + d, p = i + r - d, `M ${y} ${f} C ${g} ${f} ${g - b} ${w} ${u} ${w} H ${p}`);
|
|
1475
1501
|
}
|
|
1476
|
-
const In = "5.11.1-beta.
|
|
1502
|
+
const In = "5.11.1-beta.2";
|
|
1477
1503
|
function On(t) {
|
|
1478
1504
|
return {
|
|
1479
1505
|
x: 0,
|
|
1480
1506
|
y: 0,
|
|
1481
1507
|
moved: !1,
|
|
1482
|
-
//
|
|
1508
|
+
// differentiate click and move
|
|
1483
1509
|
mousedown: !1,
|
|
1484
|
-
|
|
1485
|
-
this.
|
|
1510
|
+
handlePointerDown(e) {
|
|
1511
|
+
this.moved = !1;
|
|
1512
|
+
const n = e.target, o = t.mouseSelectionButton === 0 ? 2 : 0, s = t.spacePressed && e.button === 0 && e.pointerType === "mouse", i = !t.editable || e.button === o && e.pointerType === "mouse" || e.pointerType === "touch";
|
|
1513
|
+
!s && !i || (this.x = e.clientX, this.y = e.clientY, n.className !== "circle" && n.contentEditable !== "plaintext-only" && (this.mousedown = !0, n.setPointerCapture(e.pointerId)));
|
|
1514
|
+
},
|
|
1515
|
+
handlePointerMove(e) {
|
|
1516
|
+
if (!this.mousedown || e.target.contentEditable === "plaintext-only" && !t.spacePressed) return !1;
|
|
1517
|
+
const n = e.clientX - this.x, o = e.clientY - this.y;
|
|
1518
|
+
return this.x = e.clientX, this.y = e.clientY, this.moved = !0, t.move(n, o), !0;
|
|
1519
|
+
},
|
|
1520
|
+
handlePointerUp(e) {
|
|
1521
|
+
if (!this.mousedown) return;
|
|
1522
|
+
const n = e.target;
|
|
1523
|
+
n.hasPointerCapture && n.hasPointerCapture(e.pointerId) && n.releasePointerCapture(e.pointerId), this.mousedown = !1;
|
|
1486
1524
|
},
|
|
1487
1525
|
clear() {
|
|
1488
|
-
this.mousedown = !1;
|
|
1526
|
+
this.mousedown = !1, this.moved = !1;
|
|
1489
1527
|
}
|
|
1490
1528
|
};
|
|
1491
1529
|
}
|
|
1492
|
-
function
|
|
1530
|
+
function A({
|
|
1493
1531
|
el: t,
|
|
1494
1532
|
direction: e,
|
|
1495
1533
|
editable: n,
|
|
@@ -1498,9 +1536,9 @@ function $({
|
|
|
1498
1536
|
keypress: i,
|
|
1499
1537
|
mouseSelectionButton: r,
|
|
1500
1538
|
selectionContainer: c,
|
|
1501
|
-
before:
|
|
1502
|
-
newTopicName:
|
|
1503
|
-
allowUndo:
|
|
1539
|
+
before: l,
|
|
1540
|
+
newTopicName: a,
|
|
1541
|
+
allowUndo: d,
|
|
1504
1542
|
generateMainBranch: f,
|
|
1505
1543
|
generateSubBranch: p,
|
|
1506
1544
|
overflowHidden: w,
|
|
@@ -1510,38 +1548,39 @@ function $({
|
|
|
1510
1548
|
scaleMax: b,
|
|
1511
1549
|
scaleMin: v,
|
|
1512
1550
|
handleWheel: C,
|
|
1513
|
-
markdown:
|
|
1514
|
-
imageProxy:
|
|
1515
|
-
pasteHandler:
|
|
1551
|
+
markdown: T,
|
|
1552
|
+
imageProxy: h,
|
|
1553
|
+
pasteHandler: m,
|
|
1554
|
+
mobileMultiSelect: x
|
|
1516
1555
|
}) {
|
|
1517
|
-
let
|
|
1518
|
-
const
|
|
1519
|
-
if (
|
|
1520
|
-
|
|
1521
|
-
const
|
|
1522
|
-
this.theme = y || (
|
|
1523
|
-
const
|
|
1524
|
-
|
|
1556
|
+
let S = null;
|
|
1557
|
+
const E = Object.prototype.toString.call(t);
|
|
1558
|
+
if (E === "[object HTMLDivElement]" ? S = t : E === "[object String]" && (S = document.querySelector(t)), !S) throw new Error("MindElixir: el is not a valid element");
|
|
1559
|
+
S.style.position = "relative", S.innerHTML = "", this.el = S, this.disposable = [], this.before = l || {}, this.newTopicName = a || "New Node", this.contextMenu = o ?? !0, this.toolBar = s ?? !0, this.keypress = i ?? !0, this.mouseSelectionButton = r ?? 0, this.direction = e ?? 1, this.editable = n ?? !0, this.allowUndo = d ?? !0, this.scaleSensitivity = g ?? 0.1, this.scaleMax = b ?? 1.4, this.scaleMin = v ?? 0.2, this.generateMainBranch = f || $n, this.generateSubBranch = p || Hn, this.overflowHidden = w ?? !1, this.alignment = u ?? "root", this.handleWheel = C ?? !0, this.markdown = T || void 0, this.imageProxy = h || void 0, this.currentNodes = [], this.currentArrow = null, this.scaleVal = 1, this.tempDirection = null, this.mobileMultiSelect = x ?? !1, this.panHelper = On(this), this.bus = Le(), this.container = document.createElement("div"), this.selectionContainer = c || this.container, this.container.className = "map-container";
|
|
1560
|
+
const P = window.matchMedia("(prefers-color-scheme: dark)");
|
|
1561
|
+
this.theme = y || (P.matches ? et : tt);
|
|
1562
|
+
const k = document.createElement("div");
|
|
1563
|
+
k.className = "map-canvas", this.map = k, this.container.setAttribute("tabindex", "0"), this.container.appendChild(this.map), this.el.appendChild(this.container), this.nodes = document.createElement("me-nodes"), this.lines = W("lines"), this.summarySvg = W("summary"), this.linkController = W("linkcontroller"), this.P2 = document.createElement("div"), this.P3 = document.createElement("div"), this.P2.className = this.P3.className = "circle", this.P2.style.display = this.P3.style.display = "none", this.line1 = pt(), this.line2 = pt(), this.linkController.appendChild(this.line1), this.linkController.appendChild(this.line2), this.arrowSvg = W("topiclinks"), this.labelContainer = document.createElement("div"), this.labelContainer.className = "label-container", this.map.appendChild(this.nodes), this.overflowHidden ? this.container.style.overflow = "hidden" : this.disposable.push(De(this)), m && (this.pasteHandler = m);
|
|
1525
1564
|
}
|
|
1526
|
-
|
|
1527
|
-
Object.defineProperty(
|
|
1565
|
+
A.prototype = An;
|
|
1566
|
+
Object.defineProperty(A.prototype, "currentNode", {
|
|
1528
1567
|
get() {
|
|
1529
1568
|
return this.currentNodes[this.currentNodes.length - 1];
|
|
1530
1569
|
},
|
|
1531
1570
|
enumerable: !0
|
|
1532
1571
|
});
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1572
|
+
A.LEFT = 0;
|
|
1573
|
+
A.RIGHT = 1;
|
|
1574
|
+
A.SIDE = 2;
|
|
1575
|
+
A.THEME = tt;
|
|
1576
|
+
A.DARK_THEME = et;
|
|
1577
|
+
A.version = In;
|
|
1578
|
+
A.E = Ct;
|
|
1540
1579
|
export {
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1580
|
+
et as DARK_THEME,
|
|
1581
|
+
Bn as LEFT,
|
|
1582
|
+
Wn as RIGHT,
|
|
1583
|
+
Yn as SIDE,
|
|
1584
|
+
tt as THEME,
|
|
1585
|
+
A as default
|
|
1547
1586
|
};
|