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.
@@ -1,4 +1,4 @@
1
- const Yn = 0, Bn = 1, Wn = 2, nt = {
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
- }, ot = {
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, "&amp;").replace(/</g, "&lt;").replace(/"/g, "&quot;");
58
58
  }
59
- const _ = function(t, e) {
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 = _(t, e.children[n]);
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
- }, st = (t, e) => {
70
+ }, nt = (t, e) => {
71
71
  if (t.parent = e, t.children)
72
72
  for (let n = 0; n < t.children.length; n++)
73
- st(t.children[n], t);
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 j(t, e, n, o) {
80
- const s = n - t, i = o - e, c = Math.atan2(i, s) * 180 / Math.PI, a = 12, d = 30, h = (c + 180 - d) * Math.PI / 180, f = (c + 180 + d) * Math.PI / 180;
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(h) * a,
83
- y1: o + Math.sin(h) * a,
84
- x2: n + Math.cos(f) * a,
85
- y2: o + Math.sin(f) * a
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 R() {
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 Pt = function() {
92
- const t = R();
91
+ const At = function() {
92
+ const t = Y();
93
93
  return {
94
94
  topic: this.newTopicName,
95
95
  id: t
96
96
  };
97
- }, N = (t, e) => {
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
- }, M = (t, e) => {
102
+ }, D = (t, e) => {
103
103
  for (const n in e)
104
104
  t.setAttribute(n, e[n]);
105
- }, G = (t) => t ? t.tagName === "ME-TPC" : !1, it = (t) => {
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 K(t), t;
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
- }, K = function(t) {
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
- }, ft = function(t, e) {
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 Yt = 5;
173
- function ut(t, e, n, o = !1) {
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
- return s?.tagName !== "ME-TPC" || !s.nodeObj.parent ? !1 : (e.startX = n.clientX, e.startY = n.clientY, e.pointerId = n.pointerId, t.dragged = t.currentNodes, o && xt(t, e), !0);
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 Bt(t, e, n) {
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 > Yt && xt(t, e), !e.isDragging) return;
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(), K(e.meet);
197
- const a = 12 * t.scaleVal, d = document.elementFromPoint(n.clientX, n.clientY - a);
198
- if (ft(d, o)) {
199
- e.meet = d;
200
- const h = d.getBoundingClientRect(), f = h.y;
201
- n.clientY > f + h.height ? e.insertType = "after" : e.insertType = "in";
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 h = document.elementFromPoint(n.clientX, n.clientY + a);
204
- if (ft(h, o)) {
205
- e.meet = h;
206
- const p = h.getBoundingClientRect().y;
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 Wt(t, e, n) {
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 && (K(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;
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 Q(t, e) {
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 && K(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;
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 B = {
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
- Et.call(this, t, this.nodeData), t.draggable = !1;
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 = B.LHS;
256
+ o.className = I.LHS;
251
257
  const s = document.createElement("me-main");
252
- s.className = B.RHS;
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
- }, Et = function(t, e) {
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
- }, Gt = function(t, e) {
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
- }, qt = function(t) {
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 St(t) {
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 _t = function(t) {
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 } = N(this.nodes, t);
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"), St(e), this.bus.fire("operation", {
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 a = c.key;
352
- if (a === "Enter" || a === "Tab") {
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 a === "Escape" && (c.preventDefault(), e.textContent = o, e.blur(), this.container.focus());
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, a = o.top + o.height / 2, d = i - c, h = r - a;
386
- this.move(-d, -h, !0);
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 } = rt(this), c = this.map.style.transform, { x: a, y: d } = it(c), h = a - i, f = d - r, p = this.scaleVal, w = (-o + h) * (1 - t / p), y = (-s + f) * (1 - t / p);
413
- this.map.style.transform = `translate3d(${a - w}px, ${d - y}px, 0) scale(${t})`, this.scaleVal = t, this.bus.fire("scale", t);
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 } = rt(this, !0);
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 a = o.style.transform;
424
- let { x: d, y: h } = it(a);
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
- d += t, h += e, n && (o.style.transition = "transform 0.3s", setTimeout(() => {
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(${d}px, ${h}px, 0) scale(${s})`, i.fire("move", { dx: t, dy: e });
437
- }, rt = (t, e = !1) => {
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"), a = c.offsetTop, d = c.offsetLeft, h = c.offsetWidth, f = c.offsetHeight;
444
- i = n.offsetWidth / 2 - d - h / 2, r = n.offsetHeight / 2 - a - f / 2, o.style.transformOrigin = `${d + h / 2}px 50%`;
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 } = rt(this);
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(), a = {
483
+ const c = t.getBoundingClientRect(), l = {
478
484
  x: c.left,
479
485
  y: c.top
480
- }, d = s.x - a.x, h = s.y - a.y;
481
- this.move(d, h), this.bus.fire("expandNode", n);
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, a = s.y - r.y;
492
- this.move(c, a);
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)), st(this.nodeData), this.layout(), this.linkDiv();
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: he,
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: de,
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, Ee = ({ deltaMode: t, deltaY: e, scaleSensitivity: n, viewportHeight: o }) => {
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
- }, Se = (t, e, n) => {
529
+ }, Ee = (t, e, n) => {
524
530
  e !== 0 && t.scale(t.scaleVal + e, n);
525
531
  }, Te = (t, e) => {
526
- const n = Ee({
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
- Se(t, n, { x: e.clientX, y: e.clientY });
538
+ Ee(t, n, { x: e.clientX, y: e.clientY });
533
539
  };
534
- function Le(t) {
540
+ function De(t) {
535
541
  const { panHelper: e, container: n } = t;
536
- let o = 0, s = null;
542
+ let o = null;
537
543
  t.spacePressed = !1;
538
- let i = null;
539
- const r = /* @__PURE__ */ new Map(), c = Ot(t), a = {
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.target = null, this.pointerId = null);
603
+ this.timer !== null && (clearTimeout(this.timer), this.timer = null, this.startPos = null, this.pointerId = null);
548
604
  },
549
- start(l, m) {
605
+ start(h, m) {
550
606
  this.timer = window.setTimeout(() => {
551
- m(l), this.timer = null, this.startPos = null, this.target = null, this.pointerId = null;
552
- }, this.DURATION), this.startPos = { x: l.clientX, y: l.clientY }, this.target = l.target, this.pointerId = l.pointerId;
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(l) {
555
- if (this.timer !== null && this.startPos !== null && l.pointerId === this.pointerId) {
556
- const m = l.clientX - this.startPos.x, x = l.clientY - this.startPos.y;
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
- }, d = (l, m) => {
561
- l.hasPointerCapture && l.hasPointerCapture(m) && l.releasePointerCapture(m);
562
- }, h = (l, m) => {
563
- if (l.id === "input-box" || l.closest("#input-box")) return !1;
564
- const x = l.closest(".svg-label");
565
- if (x) {
566
- const E = x.dataset.svgId, A = x.dataset.type, H = document.getElementById(E);
567
- if (H) {
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 = l.target;
602
- if (m.tagName === "ME-EPD")
603
- l.ctrlKey || l.metaKey ? t.expandNodeAll(m.previousSibling) : t.expandNode(m.previousSibling);
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 = l.target;
610
- G(m) && t.beginEdit(m), h(m, !0);
611
- }, w = (l) => {
612
- if (l.pointerType === "touch" && (r.set(l.pointerId, { x: l.clientX, y: l.clientY }), r.size === 2)) {
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
- const L = t.spacePressed && l.button === 0 && l.pointerType === "mouse", I = !t.editable || l.button === x && l.pointerType === "mouse" || l.pointerType === "touch";
642
- !L && !I || (e.x = l.clientX, e.y = l.clientY, m.className !== "circle" && m.contentEditable !== "plaintext-only" && (e.mousedown = !0, m.setPointerCapture(l.pointerId)));
643
- }, y = (l) => {
644
- if (l.pointerType === "touch" && r.has(l.pointerId) && (r.set(l.pointerId, { x: l.clientX, y: l.clientY }), a.handleMove(l), r.size >= 2)) {
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 (!(c && c.pointerId !== null && (Bt(t, c, l), c.isDragging))) {
661
- if (l.target.contentEditable !== "plaintext-only" || t.spacePressed && e.mousedown) {
662
- const m = l.clientX - e.x, x = l.clientY - e.y;
663
- e.onMove(m, x);
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
- }, u = (l) => {
668
- if (l.pointerType === "touch" && (r.delete(l.pointerId), r.size < 2 && (i = null), a.clear()), c && c.pointerId !== null) {
669
- const x = c.isDragging;
670
- if (Wt(t, c, l), d(l.target, l.pointerId), x)
671
- return;
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
- if (l.pointerType === "touch" && r.size === 0 && !e.moved) {
674
- const x = (/* @__PURE__ */ new Date()).getTime(), L = x - o;
675
- L < 300 && L > 0 && s === l.target && p(l), o = x, s = l.target;
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
- e.mousedown && (d(l.target, l.pointerId), e.clear());
678
- }, g = () => {
679
- a.clear(), e.mousedown && e.clear(), (c.isDragging || c.pointerId !== null) && Q(t, c);
680
- }, b = (l) => {
681
- l.pointerType === "touch" && (r.delete(l.pointerId), r.size < 2 && (i = null), a.clear()), c.pointerId === l.pointerId && Q(t, c), u(l);
682
- }, v = (l) => {
683
- if (l.preventDefault(), l.button !== 2 || !t.editable) return;
684
- const m = l.target;
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
- }, C = (l) => {
689
- if (l.stopPropagation(), l.preventDefault(), l.ctrlKey || l.metaKey) return Te(t, l);
690
- if (l.shiftKey) return t.move(-l.deltaY, 0);
691
- t.move(-l.deltaX, -l.deltaY);
692
- }, S = (l) => {
693
- l.code === "Space" && (t.spacePressed = !0, t.container.classList.add("space-pressed"));
694
- }, T = (l) => {
695
- l.code === "Space" && (t.spacePressed = !1, t.container.classList.remove("space-pressed"));
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: w },
699
- { dom: n, evt: "pointermove", func: y },
700
- { dom: n, evt: "pointerup", func: u },
701
- { dom: n, evt: "pointercancel", func: b },
702
- { dom: n, evt: "click", func: f },
703
- { dom: n, evt: "dblclick", func: p },
704
- { dom: n, evt: "contextmenu", func: v },
705
- { dom: n, evt: "wheel", func: typeof t.handleWheel == "function" ? t.handleWheel : C },
706
- { dom: n, evt: "blur", func: g },
707
- { dom: n, evt: "keydown", func: S },
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 De() {
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 P = "http://www.w3.org/2000/svg", J = function(t) {
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
- }, et = function(t, e, n, o) {
740
- const { anchor: s = "middle", color: i, dataType: r, svgId: c } = o, a = document.createElement("div");
741
- a.className = "svg-label", a.style.color = i || "#666";
742
- const d = "label-" + c;
743
- return a.id = d, a.innerHTML = t, a.dataset.type = r, a.dataset.svgId = c, a.dataset.x = e.toString(), a.dataset.y = n.toString(), a.dataset.anchor = s, a;
744
- }, Lt = function(t, e, n) {
745
- const o = document.createElementNS(P, "path");
746
- return M(o, {
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(P, "svg");
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(P, "line");
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(P, "g");
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 a = r.d, d = document.createElementNS(P, "path"), h = {
775
- d: a,
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 && (h.opacity = String(o.opacity)), M(d, h), c === 0 && d.setAttribute("stroke-dasharray", o?.strokeDasharray || "8,2");
782
- const f = document.createElementNS(P, "path");
783
- M(f, {
784
- d: a,
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(d), s[r.name] = d;
805
+ }), s.appendChild(f), s.appendChild(a), s[r.name] = a;
789
806
  }), s;
790
- }, Dt = function(t, e, n) {
807
+ }, Lt = function(t, e, n) {
791
808
  if (!e) return;
792
- const o = n.label, s = e.cloneNode(!0);
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
- `, St(s), t.scrollIntoView(s), s.addEventListener("keydown", (i) => {
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, J(e), "parent" in n ? t.bus.fire("operation", {
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
- }, ke = function(t) {
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 a = r[c], d = a.querySelector("me-tpc"), { offsetLeft: h, offsetTop: f } = N(this.nodes, d), p = d.offsetWidth, w = d.offsetHeight, y = a.parentNode.className, u = this.generateMainBranch({ pT: n, pL: o, pW: s, pH: i, cT: f, cL: h, cW: p, cH: w, direction: y, containerHeight: this.nodes.offsetHeight }), g = this.theme.palette, b = d.nodeObj.branchColor || g[c % g.length];
820
- if (d.style.borderColor = b, this.lines.appendChild(Lt(u, b, "3")), t && t !== a)
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 = a.lastChild;
823
- C.tagName === "svg" && C.remove(), a.appendChild(v), Mt(this, v, b, a, y, !0);
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 a = r.offsetTop, d = r.offsetLeft, h = r.offsetWidth, f = r.offsetHeight;
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, S = t.generateSubBranch({ pT: a, pL: d, pW: h, pH: f, cT: u, cL: g, cW: b, cH: v, direction: s, isFirst: i });
832
- e.appendChild(Lt(S, C, "2"));
833
- const T = y.children[1];
834
- if (T) {
835
- if (!T.expanded) continue;
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
- }, 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="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>', Pe = '<?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>', Ye = {
841
- side: Ae,
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: Pe,
862
+ right: Ae,
844
863
  full: $e,
845
864
  living: He,
846
865
  zoomin: Ie,
847
866
  zoomout: Oe
848
- }, O = (t, e) => {
867
+ }, $ = (t, e) => {
849
868
  const n = document.createElement("span");
850
- return n.id = t, n.innerHTML = Ye[e], n;
869
+ return n.id = t, n.innerHTML = Be[e], n;
851
870
  };
852
- function Be(t) {
853
- const e = document.createElement("div"), n = O("fullscreen", "full"), o = O("toCenter", "living"), s = O("zoomout", "zoomout"), i = O("zoomin", "zoomin");
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 d = t.container.getBoundingClientRect(), h = it(t.map.style.transform), f = d.width / 2, p = d.height / 2, w = (f - h.x) / t.scaleVal, y = (p - h.y) / t.scaleVal;
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: d,
860
- currentTransform: h,
878
+ containerRect: a,
879
+ currentTransform: d,
861
880
  mapCenterX: w,
862
881
  mapCenterY: y
863
882
  };
864
- }, a = () => {
883
+ }, l = () => {
865
884
  if (r) {
866
- const d = t.container.getBoundingClientRect(), h = d.width / 2, f = d.height / 2, p = h - r.mapCenterX * t.scaleVal, w = f - r.mapCenterY * t.scaleVal, y = p - r.currentTransform.x, u = w - r.currentTransform.y;
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", a), n.onclick = () => {
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 We(t) {
881
- const e = document.createElement("div"), n = O("tbltl", "left"), o = O("tbltr", "right"), s = O("tblts", "side");
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(Be(t)), t.container.append(We(t));
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" ? ot : nt).cssVar,
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
- }, Ge = "#4dc4ff";
942
- function kt(t, e, n, o, s, i, r, c) {
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 ze(t, e, n) {
949
- t && (t.dataset.x = e.toString(), t.dataset.y = n.toString(), J(t));
967
+ function Fe(t, e, n) {
968
+ t && (t.dataset.x = e.toString(), t.dataset.y = n.toString(), U(t));
950
969
  }
951
- function z(t, e, n, o, s) {
952
- M(t, {
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, a, d) {
960
- const h = `M ${e} ${n} C ${o} ${s} ${i} ${r} ${c} ${a}`;
961
- if (t.line.setAttribute("d", h), d.style) {
962
- const u = d.style;
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", h);
967
- const p = j(i, r, c, a);
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} ${a} L ${p.x2} ${p.y2}`;
970
- if (t.arrow1.setAttribute("d", u), f.length > 1 && f[1].setAttribute("d", u), d.style) {
971
- const g = d.style;
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 (d.bidirectional) {
976
- const u = j(o, s, e, n);
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), d.style) {
980
- const b = d.style;
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 } = kt(e, n, o, s, i, r, c, a);
986
- if (t.labelEl && ze(t.labelEl, w, y), d.style?.labelColor) {
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 = d.style.labelColor);
1007
+ u && (u.style.color = a.style.labelColor);
989
1008
  }
990
1009
  Qe(t);
991
1010
  }
992
- function U(t, e, n) {
993
- const { offsetLeft: o, offsetTop: s } = N(t.nodes, e), i = e.offsetWidth, r = e.offsetHeight, c = o + i / 2, a = s + r / 2, d = c + n.x, h = a + n.y;
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: a,
999
- ctrlX: d,
1000
- ctrlY: h
1017
+ cy: l,
1018
+ ctrlX: a,
1019
+ ctrlY: d
1001
1020
  };
1002
1021
  }
1003
- function Y(t) {
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 Fe = function(t, e, n) {
1012
- const o = N(t.nodes, e), s = N(t.nodes, n), i = o.offsetLeft + e.offsetWidth / 2, r = o.offsetTop + e.offsetHeight / 2, c = s.offsetLeft + n.offsetWidth / 2, a = s.offsetTop + n.offsetHeight / 2, d = c - i, h = a - r, f = Math.sqrt(d * d + h * h), p = Math.max(50, Math.min(200, f * 0.3)), w = Math.abs(d), y = Math.abs(h);
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 = d > 0 ? e.offsetWidth / 2 : -e.offsetWidth / 2, C = d > 0 ? -n.offsetWidth / 2 : n.offsetWidth / 2;
1019
- u = { x: v + (d > 0 ? p : -p), y: 0 }, g = { x: C + (d > 0 ? -p : p), y: 0 };
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 = h > 0 ? e.offsetHeight / 2 : -e.offsetHeight / 2, C = h > 0 ? -n.offsetHeight / 2 : n.offsetHeight / 2;
1022
- u = { x: 0, y: v + (h > 0 ? p : -p) }, g = { x: 0, y: C + (h > 0 ? -p : p) };
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(h, d), C = e.offsetWidth / 2 * Math.cos(v), S = e.offsetHeight / 2 * Math.sin(v), T = -(n.offsetWidth / 2) * Math.cos(v), D = -(n.offsetHeight / 2) * Math.sin(v), l = p * 0.7 * (d > 0 ? 1 : -1), m = p * 0.7 * (h > 0 ? 1 : -1);
1025
- u = { x: C + l, y: S + m }, g = { x: T - l, y: D - m };
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
- }, ct = function(t, e, n, o, s) {
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 x = Fe(t, e, n);
1036
- o.delta1 = x.delta1, o.delta2 = x.delta2;
1054
+ const E = Ge(t, e, n);
1055
+ o.delta1 = E.delta1, o.delta2 = E.delta2;
1037
1056
  }
1038
- const i = U(t, e, o.delta1), r = U(t, n, o.delta2), { x: c, y: a } = Y(i), { ctrlX: d, ctrlY: h } = i, { ctrlX: f, ctrlY: p } = r, { x: w, y } = Y(r), u = j(f, p, w, y);
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 x = j(d, h, c, a);
1044
- if (!x) return;
1045
- b = `M ${x.x1} ${x.y1} L ${c} ${a} L ${x.x2} ${x.y2}`;
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} ${a} C ${d} ${h} ${f} ${p} ${w} ${y}`, g, b, o.style), { x: C, y: S } = kt(c, a, d, h, f, p, w, y), T = o.style?.labelColor || "rgb(235, 95, 82)", D = "arrow-" + o.id;
1048
- v.id = D;
1049
- const l = t.markdown ? t.markdown(o.label, o) : o.label, m = et(l, C, S, {
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: T,
1070
+ color: h,
1052
1071
  dataType: "arrow",
1053
- svgId: D
1072
+ svgId: m
1054
1073
  });
1055
- v.labelEl = m, v.arrowObj = o, v.dataset.linkid = o.id, t.labelContainer.appendChild(m), t.linkSvgGroup.appendChild(v), J(m), s || (t.arrows.push(o), t.currentArrow = v, At(t, o, i, r));
1056
- }, qe = function(t, e, n = {}) {
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: R(),
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
- ct(this, t, e, o), this.bus.fire("operation", {
1083
+ it(this, t, e, o), this.bus.fire("operation", {
1065
1084
  name: "createArrow",
1066
1085
  obj: o
1067
1086
  });
1068
- }, _e = function(t) {
1069
- Z(this);
1070
- const e = { ...t, id: R() };
1071
- ct(this, this.findEle(e.from), this.findEle(e.to), e), this.bus.fire("operation", {
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
- Z(this);
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 = U(this, n, e.delta1), i = U(this, o, e.delta2);
1089
- At(this, e, s, i), this.bus.fire("selectArrow", e);
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
- Z(this), this.currentArrow = null, this.bus.fire("unselectArrow");
1092
- }, tt = function(t, e) {
1093
- const n = document.createElementNS(P, "path");
1094
- return M(n, {
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(P, "g");
1122
+ const n = document.createElementNS(N, "g");
1104
1123
  n.setAttribute("class", "arrow-highlight"), n.setAttribute("opacity", "0.45");
1105
- const o = tt(t.line.getAttribute("d"), e);
1124
+ const o = Z(t.line.getAttribute("d"), e);
1106
1125
  n.appendChild(o);
1107
- const s = tt(t.arrow1.getAttribute("d"), e);
1126
+ const s = Z(t.arrow1.getAttribute("d"), e);
1108
1127
  if (n.appendChild(s), t.arrow2.getAttribute("d")) {
1109
- const i = tt(t.arrow2.getAttribute("d"), e);
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
- }, Z = function(t) {
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
- }, At = function(t, e, n, o) {
1124
- const { linkController: s, P2: i, P3: r, line1: c, line2: a, nodes: d, map: h, currentArrow: f, bus: p } = t;
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", d.appendChild(s), d.appendChild(i), d.appendChild(r), Je(f, Ge);
1127
- let { x: w, y } = Y(n), { ctrlX: u, ctrlY: g } = n, { ctrlX: b, ctrlY: v } = o, { x: C, y: S } = Y(o);
1128
- i.style.cssText = `top:${g}px;left:${u}px;`, r.style.cssText = `top:${v}px;left:${b}px;`, z(c, w, y, u, g), z(a, b, v, C, S), t.helper1 = gt.create(i), t.helper2 = gt.create(r), t.helper1.init(h, (T, D) => {
1129
- u = u + T / t.scaleVal, g = g + D / t.scaleVal;
1130
- const l = Y({ ...n, ctrlX: u, ctrlY: g });
1131
- w = l.x, y = l.y, i.style.top = g + "px", i.style.left = u + "px", mt(f, w, y, u, g, b, v, C, S, e), z(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);
1132
- }), t.helper2.init(h, (T, D) => {
1133
- b = b + T / t.scaleVal, v = v + D / t.scaleVal;
1134
- const l = Y({ ...o, ctrlX: b, ctrlY: v });
1135
- C = l.x, S = l.y, r.style.top = v + "px", r.style.left = b + "px", mt(f, w, y, u, g, b, v, C, S, e), z(a, b, v, C, S), e.delta2.x = Math.round(b - o.cx), e.delta2.y = Math.round(v - o.cy), p.fire("updateArrowDelta", e);
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.linkSvgGroup.innerHTML = "", this.labelContainer.querySelectorAll('.svg-label[data-type="arrow"]').forEach((e) => e.remove());
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
- ct(this, this.findEle(n.from), this.findEle(n.to), n, !0);
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.linkSvgGroup);
1166
+ this.nodes.appendChild(this.arrowSvg);
1148
1167
  }
1149
1168
  function en(t) {
1150
- Z(this), t && t.labelEl && Dt(this, t.labelEl, t.arrowObj);
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) => _(t.from, this.nodeData) && _(t.to, this.nodeData));
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: qe,
1158
- createArrowFrom: _e,
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 a = t[0].nodeObj, d = t[0].nodeObj.parent;
1169
- if (!d) throw new Error("Can not select root node.");
1170
- const h = d.children.findIndex((f) => a === f);
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: d.id,
1173
- start: h,
1174
- end: h
1191
+ parent: a.id,
1192
+ start: d,
1193
+ end: d
1175
1194
  };
1176
1195
  }
1177
1196
  let e = 0;
1178
- const n = t.map((a) => {
1179
- let d = a.nodeObj;
1180
- const h = [];
1181
- for (; d.parent; ) {
1182
- const f = d.parent, w = f.children?.indexOf(d);
1183
- d = f, h.unshift({ node: d, index: w });
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 h.length > e && (e = h.length), h;
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 a = n[0][o]?.node;
1190
- for (let d = 1; d < n.length; d++)
1191
- if (n[d][o]?.node !== a)
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((a) => a[o - 1].index).sort(), i = s[0] || 0, r = s[s.length - 1] || 0, c = n[0][o - 1].node;
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(P, "g");
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(P, "path");
1207
- return M(n, {
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
- }, lt = function(t, e) {
1219
- const { id: n, label: o, parent: s, start: i, end: r, style: c } = e, { nodes: a, theme: d, summarySvg: h } = t, p = t.findEle(s).nodeObj, w = ln(t, e);
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 A = i; A <= r; A++) {
1222
- const H = p.children?.[A];
1223
- if (!H)
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 X = cn(t.findEle(H.id)), { offsetLeft: V, offsetTop: at } = N(a, X), dt = i === r ? 10 : 20;
1226
- A === i && (g = at + dt), A === r && (b = at + X.offsetHeight - dt), V < y && (y = V), X.offsetWidth + V > u && (u = X.offsetWidth + V);
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 S = p.parent ? 10 : 0, T = g + S, D = b + S, l = (T + D) / 2, m = c?.stroke || d.cssVar["--color"], x = c?.labelColor || d.cssVar["--color"], L = "s-" + n, I = t.markdown ? t.markdown(o, e) : o;
1230
- w === B.LHS ? (v = yt(`M ${y + 10} ${T} c -5 0 -10 5 -10 10 L ${y} ${D - 10} c 0 5 5 10 10 10 M ${y} ${l} h -10`, m), C = et(I, y - 20, l, { anchor: "end", color: x, dataType: "summary", svgId: L })) : (v = yt(`M ${u - 10} ${T} c 5 0 10 5 10 10 L ${u} ${D - 10} c 0 5 -5 10 -10 10 M ${u} ${l} h 10`, m), C = et(I, u + 20, l, { anchor: "start", color: x, dataType: "summary", svgId: L }));
1231
- const E = rn(L);
1232
- return E.appendChild(v), t.labelContainer.appendChild(C), J(C), E.summaryObj = e, E.labelEl = C, h.appendChild(E), E;
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: R(), parent: s, start: i, end: r, label: "summary", style: t.style }, a = lt(this, c);
1236
- n.push(c), this.editSummary(a), o.fire("operation", {
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
- }, dn = function(t) {
1241
- const e = R(), n = { ...t, id: e };
1242
- lt(this, n), this.summaries.push(n), this.bus.fire("operation", {
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
- }, hn = function(t) {
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
- lt(this, t);
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 && Dt(this, t.labelEl, t.summaryObj);
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: dn,
1288
+ createSummaryFrom: hn,
1270
1289
  editSummary: gn,
1271
- removeSummary: hn,
1290
+ removeSummary: dn,
1272
1291
  renderSummary: pn,
1273
1292
  selectSummary: fn,
1274
1293
  unselectSummary: un
1275
- }, Symbol.toStringTag, { value: "Module" })), k = "http://www.w3.org/2000/svg";
1294
+ }, Symbol.toStringTag, { value: "Module" })), L = "http://www.w3.org/2000/svg";
1276
1295
  function yn(t, e) {
1277
- const n = document.createElementNS(k, "svg");
1278
- return M(n, {
1296
+ const n = document.createElementNS(L, "svg");
1297
+ return D(n, {
1279
1298
  version: "1.1",
1280
- xmlns: k,
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(k, "g");
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, a) => {
1293
- const d = document.createElementNS(k, "text");
1294
- M(d, {
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) * (a + 1) + parseFloat(e.fontSize) * (a + 1) + "",
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
- }), d.innerHTML = c, s.appendChild(d);
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(k, "foreignObject");
1309
- M(i, {
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 M(r, {
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 } = N(t.nodes, e), i = document.createElementNS(k, "rect");
1323
- return M(i, {
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 F(t, e, n = !1) {
1336
- const o = getComputedStyle(e), { offsetLeft: s, offsetTop: i } = N(t.nodes, e), r = document.createElementNS(k, "rect");
1337
- M(r, {
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(k, "g");
1367
+ const c = document.createElementNS(L, "g");
1349
1368
  c.appendChild(r);
1350
- let a;
1351
- return n ? a = bn(e, o, s, i) : a = vn(e, o, s, i), c.appendChild(a), c;
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 } = N(t.nodes, e), i = document.createElementNS(k, "a"), r = document.createElementNS(k, "text");
1355
- return M(r, {
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 En(t, e) {
1366
- const n = getComputedStyle(e), { offsetLeft: o, offsetTop: s } = N(t.nodes, e), i = document.createElementNS(k, "image");
1367
- return M(i, {
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 q = 100, Sn = '<?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) => {
1376
- const n = t.nodes, o = n.offsetHeight + q * 2, s = n.offsetWidth + q * 2, i = yn(o + "px", s + "px"), r = document.createElementNS(k, "svg"), c = document.createElementNS(k, "rect");
1377
- M(c, {
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 } = N(n, f.parentElement);
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 a = n.querySelector(".lines")?.cloneNode(!0);
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(".topiclinks")?.cloneNode(!0);
1390
- d && r.appendChild(d);
1391
- const h = n.querySelector(".summary")?.cloneNode(!0);
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(F(t, f));
1414
+ r.appendChild(z(t, f));
1396
1415
  }), n.querySelectorAll(".icons > span").forEach((f) => {
1397
- r.appendChild(F(t, f));
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(En(t, f));
1402
- }), M(r, {
1403
- x: q + "",
1404
- y: q + "",
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
- }, Ln = (t, e) => (e && t.insertAdjacentHTML("afterbegin", "<style>" + e + "</style>"), Sn + t.outerHTML);
1408
- function Dn(t) {
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 = Ln(n, e);
1438
+ const n = Tn(this, t), o = Dn(n, e);
1420
1439
  return new Blob([o], { type: "image/svg+xml" });
1421
- }, kn = async function(t = !1, e) {
1422
- const n = this.exportSvg(t, e), o = await Dn(n);
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
- }, An = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1449
+ }, kn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1431
1450
  __proto__: null,
1432
- exportPng: kn,
1451
+ exportPng: Pn,
1433
1452
  exportSvg: Mn
1434
- }, Symbol.toStringTag, { value: "Module" })), Nn = {}, Pn = {
1435
- getObjById: _,
1436
- generateNewObj: Pt,
1453
+ }, Symbol.toStringTag, { value: "Module" })), Nn = {}, An = {
1454
+ getObjById: G,
1455
+ generateNewObj: At,
1437
1456
  layout: Rt,
1438
- linkDiv: ke,
1439
- editTopic: _t,
1440
- createWrapper: Gt,
1441
- createParent: zt,
1442
- createChildren: Ft,
1443
- createTopic: qt,
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
- ...An,
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, st(this.nodeData), this.arrows = t.arrows || [], this.summaries = t.summaries || [], this.tidyArrow(), this.toolBar && Re(this), this.layout(), this.linkDiv(), this.toCenter();
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.linkSvgGroup = 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;
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: a, containerHeight: d }) {
1460
- let h = e + n / 2;
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
- a === B.LHS ? p = i + r : p = i;
1464
- const w = s + c / 2, u = (1 - Math.abs(w - f) / d) * 0.25 * (n / 2);
1465
- return a === B.LHS ? h = h - n / 10 - u : h = h + n / 10 + u, `M ${h} ${f} Q ${h} ${w} ${p} ${w}`;
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: a, isFirst: d }) {
1468
- const h = parseInt(this.container.style.getPropertyValue("--node-gap-x"));
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
- d ? f = t + o / 2 : f = t + o;
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 * h;
1474
- return a === B.LHS ? (g = e, y = g + h, u = g - h, p = i + h, `M ${y} ${f} C ${g} ${f} ${g + b} ${w} ${u} ${w} H ${p}`) : (g = e + n, y = g - h, u = g + h, p = i + r - h, `M ${y} ${f} C ${g} ${f} ${g - b} ${w} ${u} ${w} H ${p}`);
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.0";
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
- // diffrentiate click and move
1508
+ // differentiate click and move
1483
1509
  mousedown: !1,
1484
- onMove(e, n) {
1485
- this.mousedown && (this.moved = !0, t.move(e, n));
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: a,
1502
- newTopicName: d,
1503
- allowUndo: h,
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: S,
1514
- imageProxy: T,
1515
- pasteHandler: D
1551
+ markdown: T,
1552
+ imageProxy: h,
1553
+ pasteHandler: m,
1554
+ mobileMultiSelect: x
1516
1555
  }) {
1517
- let l = null;
1518
- const m = Object.prototype.toString.call(t);
1519
- if (m === "[object HTMLDivElement]" ? l = t : m === "[object String]" && (l = document.querySelector(t)), !l) throw new Error("MindElixir: el is not a valid element");
1520
- l.style.position = "relative", l.innerHTML = "", this.el = l, this.disposable = [], this.before = a || {}, this.newTopicName = d || "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 = h ?? !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 = S || void 0, this.imageProxy = T || void 0, this.currentNodes = [], this.currentArrow = null, this.scaleVal = 1, this.tempDirection = null, this.panHelper = On(this), this.bus = De(), this.container = document.createElement("div"), this.selectionContainer = c || this.container, this.container.className = "map-container";
1521
- const x = window.matchMedia("(prefers-color-scheme: dark)");
1522
- this.theme = y || (x.matches ? ot : nt);
1523
- const L = document.createElement("div");
1524
- L.className = "map-canvas", this.map = L, 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.linkSvgGroup = 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(Le(this)), D && (this.pasteHandler = D);
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
- $.prototype = Pn;
1527
- Object.defineProperty($.prototype, "currentNode", {
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
- $.LEFT = 0;
1534
- $.RIGHT = 1;
1535
- $.SIDE = 2;
1536
- $.THEME = nt;
1537
- $.DARK_THEME = ot;
1538
- $.version = In;
1539
- $.E = Ct;
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
- ot as DARK_THEME,
1542
- Yn as LEFT,
1543
- Bn as RIGHT,
1544
- Wn as SIDE,
1545
- nt as THEME,
1546
- $ as default
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
  };