markmap-view 0.18.3 → 0.18.4-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,11 +1,10 @@
1
- import { Hook as it, getId as ot, debounce as at, addClass as lt, walkTree as j, childSelector as y, noop as C } from "markmap-common";
2
- import { loadCSS as me, loadJS as ge } from "markmap-common";
3
- import { scaleOrdinal as W, schemeCategory10 as ct, linkHorizontal as ht, zoomTransform as w, select as dt, zoom as pt, min as H, max as N, zoomIdentity as ut, minIndex as mt } from "d3";
4
- const I = typeof navigator < "u" && navigator.userAgent.includes("Macintosh"), gt = W(ct), K = {
1
+ import { scaleOrdinal as G, schemeCategory10 as at, linkHorizontal as lt, zoomTransform as w, select as ct, zoom as ht, min as P, max as W, zoomIdentity as dt, minIndex as pt } from "d3";
2
+ import { Hook as ut, getId as mt, debounce as gt, addClass as ft, walkTree as C, childSelector as v, noop as S } from "markmap-common";
3
+ const V = typeof navigator < "u" && navigator.userAgent.includes("Macintosh"), xt = G(at), U = {
5
4
  autoFit: !1,
6
5
  color: (e) => {
7
6
  var t;
8
- return gt(`${((t = e.state) == null ? void 0 : t.path) || ""}`);
7
+ return xt(`${((t = e.state) == null ? void 0 : t.path) || ""}`);
9
8
  },
10
9
  duration: 500,
11
10
  embedGlobalCSS: !0,
@@ -14,7 +13,7 @@ const I = typeof navigator < "u" && navigator.userAgent.includes("Macintosh"), g
14
13
  maxWidth: 0,
15
14
  nodeMinHeight: 16,
16
15
  paddingX: 8,
17
- scrollForPan: I,
16
+ scrollForPan: V,
18
17
  spacingHorizontal: 80,
19
18
  spacingVertical: 5,
20
19
  initialExpandLevel: -1,
@@ -22,24 +21,24 @@ const I = typeof navigator < "u" && navigator.userAgent.includes("Macintosh"), g
22
21
  pan: !0,
23
22
  toggleRecursively: !1
24
23
  };
25
- function he(e) {
26
- const t = {}, s = { ...e }, { color: n, colorFreezeLevel: i } = s;
24
+ function ue(e) {
25
+ const t = {}, s = { ...e }, { color: n, colorFreezeLevel: o } = s;
27
26
  if ((n == null ? void 0 : n.length) === 1) {
28
27
  const r = n[0];
29
28
  t.color = () => r;
30
29
  } else if (n != null && n.length) {
31
- const r = W(n);
32
- t.color = (l) => r(`${l.state.path}`);
30
+ const r = G(n);
31
+ t.color = (c) => r(`${c.state.path}`);
33
32
  }
34
- if (i) {
35
- const r = t.color || K.color;
36
- t.color = (l) => (l = {
37
- ...l,
33
+ if (o) {
34
+ const r = t.color || U.color;
35
+ t.color = (c) => (c = {
36
+ ...c,
38
37
  state: {
39
- ...l.state,
40
- path: l.state.path.split(".").slice(0, i).join(".")
38
+ ...c.state,
39
+ path: c.state.path.split(".").slice(0, o).join(".")
41
40
  }
42
- }, r(l));
41
+ }, r(c));
43
42
  }
44
43
  return [
45
44
  "duration",
@@ -52,185 +51,185 @@ function he(e) {
52
51
  "spacingHorizontal",
53
52
  "spacingVertical"
54
53
  ].forEach((r) => {
55
- const l = s[r];
56
- typeof l == "number" && (t[r] = l);
54
+ const c = s[r];
55
+ typeof c == "number" && (t[r] = c);
57
56
  }), ["zoom", "pan"].forEach((r) => {
58
- const l = s[r];
59
- l != null && (t[r] = !!l);
57
+ const c = s[r];
58
+ c != null && (t[r] = !!c);
60
59
  }), t;
61
60
  }
62
- function ft(e) {
61
+ function yt(e) {
63
62
  let t = 0;
64
63
  for (let s = 0; s < e.length; s++)
65
64
  t = (t << 5) - t + e.charCodeAt(s) | 0;
66
65
  return (t >>> 0).toString(36);
67
66
  }
68
- function xt(e) {
67
+ function kt(e) {
69
68
  var t = 0, s = e.children, n = s && s.length;
70
69
  if (!n) t = 1;
71
70
  else for (; --n >= 0; ) t += s[n].value;
72
71
  e.value = t;
73
72
  }
74
- function yt() {
75
- return this.eachAfter(xt);
73
+ function vt() {
74
+ return this.eachAfter(kt);
76
75
  }
77
- function kt(e) {
78
- var t = this, s, n = [t], i, a, c;
76
+ function bt(e) {
77
+ var t = this, s, n = [t], o, a, l;
79
78
  do
80
79
  for (s = n.reverse(), n = []; t = s.pop(); )
81
- if (e(t), i = t.children, i) for (a = 0, c = i.length; a < c; ++a)
82
- n.push(i[a]);
80
+ if (e(t), o = t.children, o) for (a = 0, l = o.length; a < l; ++a)
81
+ n.push(o[a]);
83
82
  while (n.length);
84
83
  return this;
85
84
  }
86
- function vt(e) {
87
- for (var t = this, s = [t], n, i; t = s.pop(); )
88
- if (e(t), n = t.children, n) for (i = n.length - 1; i >= 0; --i)
89
- s.push(n[i]);
85
+ function zt(e) {
86
+ for (var t = this, s = [t], n, o; t = s.pop(); )
87
+ if (e(t), n = t.children, n) for (o = n.length - 1; o >= 0; --o)
88
+ s.push(n[o]);
90
89
  return this;
91
90
  }
92
- function bt(e) {
93
- for (var t = this, s = [t], n = [], i, a, c; t = s.pop(); )
94
- if (n.push(t), i = t.children, i) for (a = 0, c = i.length; a < c; ++a)
95
- s.push(i[a]);
91
+ function Et(e) {
92
+ for (var t = this, s = [t], n = [], o, a, l; t = s.pop(); )
93
+ if (n.push(t), o = t.children, o) for (a = 0, l = o.length; a < l; ++a)
94
+ s.push(o[a]);
96
95
  for (; t = n.pop(); )
97
96
  e(t);
98
97
  return this;
99
98
  }
100
- function zt(e) {
99
+ function wt(e) {
101
100
  return this.eachAfter(function(t) {
102
- for (var s = +e(t.data) || 0, n = t.children, i = n && n.length; --i >= 0; ) s += n[i].value;
101
+ for (var s = +e(t.data) || 0, n = t.children, o = n && n.length; --o >= 0; ) s += n[o].value;
103
102
  t.value = s;
104
103
  });
105
104
  }
106
- function Et(e) {
105
+ function Ct(e) {
107
106
  return this.eachBefore(function(t) {
108
107
  t.children && t.children.sort(e);
109
108
  });
110
109
  }
111
- function Ct(e) {
112
- for (var t = this, s = wt(t, e), n = [t]; t !== s; )
110
+ function St(e) {
111
+ for (var t = this, s = Rt(t, e), n = [t]; t !== s; )
113
112
  t = t.parent, n.push(t);
114
- for (var i = n.length; e !== s; )
115
- n.splice(i, 0, e), e = e.parent;
113
+ for (var o = n.length; e !== s; )
114
+ n.splice(o, 0, e), e = e.parent;
116
115
  return n;
117
116
  }
118
- function wt(e, t) {
117
+ function Rt(e, t) {
119
118
  if (e === t) return e;
120
- var s = e.ancestors(), n = t.ancestors(), i = null;
119
+ var s = e.ancestors(), n = t.ancestors(), o = null;
121
120
  for (e = s.pop(), t = n.pop(); e === t; )
122
- i = e, e = s.pop(), t = n.pop();
123
- return i;
121
+ o = e, e = s.pop(), t = n.pop();
122
+ return o;
124
123
  }
125
- function St() {
124
+ function Xt() {
126
125
  for (var e = this, t = [e]; e = e.parent; )
127
126
  t.push(e);
128
127
  return t;
129
128
  }
130
- function Xt() {
129
+ function Mt() {
131
130
  var e = [];
132
131
  return this.each(function(t) {
133
132
  e.push(t);
134
133
  }), e;
135
134
  }
136
- function Rt() {
135
+ function jt() {
137
136
  var e = [];
138
137
  return this.eachBefore(function(t) {
139
138
  t.children || e.push(t);
140
139
  }), e;
141
140
  }
142
- function jt() {
141
+ function Ot() {
143
142
  var e = this, t = [];
144
143
  return e.each(function(s) {
145
144
  s !== e && t.push({ source: s.parent, target: s });
146
145
  }), t;
147
146
  }
148
- function A(e, t) {
149
- var s = new S(e), n = +e.value && (s.value = e.value), i, a = [s], c, r, l, d;
150
- for (t == null && (t = Bt); i = a.pop(); )
151
- if (n && (i.value = +i.data.value), (r = t(i.data)) && (d = r.length))
152
- for (i.children = new Array(d), l = d - 1; l >= 0; --l)
153
- a.push(c = i.children[l] = new S(r[l])), c.parent = i, c.depth = i.depth + 1;
154
- return s.eachBefore(Ot);
147
+ function B(e, t) {
148
+ var s = new R(e), n = +e.value && (s.value = e.value), o, a = [s], l, r, c, p;
149
+ for (t == null && (t = At); o = a.pop(); )
150
+ if (n && (o.value = +o.data.value), (r = t(o.data)) && (p = r.length))
151
+ for (o.children = new Array(p), c = p - 1; c >= 0; --c)
152
+ a.push(l = o.children[c] = new R(r[c])), l.parent = o, l.depth = o.depth + 1;
153
+ return s.eachBefore(Ft);
155
154
  }
156
- function Mt() {
157
- return A(this).eachBefore(At);
155
+ function Bt() {
156
+ return B(this).eachBefore($t);
158
157
  }
159
- function Bt(e) {
158
+ function At(e) {
160
159
  return e.children;
161
160
  }
162
- function At(e) {
161
+ function $t(e) {
163
162
  e.data = e.data.data;
164
163
  }
165
- function Ot(e) {
164
+ function Ft(e) {
166
165
  var t = 0;
167
166
  do
168
167
  e.height = t;
169
168
  while ((e = e.parent) && e.height < ++t);
170
169
  }
171
- function S(e) {
170
+ function R(e) {
172
171
  this.data = e, this.depth = this.height = 0, this.parent = null;
173
172
  }
174
- S.prototype = A.prototype = {
175
- constructor: S,
176
- count: yt,
177
- each: kt,
178
- eachAfter: bt,
179
- eachBefore: vt,
180
- sum: zt,
181
- sort: Et,
182
- path: Ct,
183
- ancestors: St,
184
- descendants: Xt,
185
- leaves: Rt,
186
- links: jt,
187
- copy: Mt
173
+ R.prototype = B.prototype = {
174
+ constructor: R,
175
+ count: vt,
176
+ each: bt,
177
+ eachAfter: Et,
178
+ eachBefore: zt,
179
+ sum: wt,
180
+ sort: Ct,
181
+ path: St,
182
+ ancestors: Xt,
183
+ descendants: Mt,
184
+ leaves: jt,
185
+ links: Ot,
186
+ copy: Bt
188
187
  };
189
- const $t = "d3-flextree", Dt = "2.1.2", Ft = "build/d3-flextree.js", Tt = "index", _t = { name: "Chris Maloney", url: "http://chrismaloney.org" }, Ht = "Flexible tree layout algorithm that allows for variable node sizes.", Nt = ["d3", "d3-module", "layout", "tree", "hierarchy", "d3-hierarchy", "plugin", "d3-plugin", "infovis", "visualization", "2d"], Lt = "https://github.com/klortho/d3-flextree", Pt = "WTFPL", Wt = { type: "git", url: "https://github.com/klortho/d3-flextree.git" }, It = { clean: "rm -rf build demo test", "build:demo": "rollup -c --environment BUILD:demo", "build:dev": "rollup -c --environment BUILD:dev", "build:prod": "rollup -c --environment BUILD:prod", "build:test": "rollup -c --environment BUILD:test", build: "rollup -c", lint: "eslint index.js src", "test:main": "node test/bundle.js", "test:browser": "node test/browser-tests.js", test: "npm-run-all test:*", prepare: "npm-run-all clean build lint test" }, Kt = { "d3-hierarchy": "^1.1.5" }, Gt = { "babel-plugin-external-helpers": "^6.22.0", "babel-preset-es2015-rollup": "^3.0.0", d3: "^4.13.0", "d3-selection-multi": "^1.0.1", eslint: "^4.19.1", jsdom: "^11.6.2", "npm-run-all": "^4.1.2", rollup: "^0.55.3", "rollup-plugin-babel": "^2.7.1", "rollup-plugin-commonjs": "^8.0.2", "rollup-plugin-copy": "^0.2.3", "rollup-plugin-json": "^2.3.0", "rollup-plugin-node-resolve": "^3.0.2", "rollup-plugin-uglify": "^3.0.0", "uglify-es": "^3.3.9" }, Vt = {
190
- name: $t,
188
+ const Tt = "d3-flextree", Dt = "2.1.2", _t = "build/d3-flextree.js", Ht = "index", Nt = { name: "Chris Maloney", url: "http://chrismaloney.org" }, Lt = "Flexible tree layout algorithm that allows for variable node sizes.", Pt = ["d3", "d3-module", "layout", "tree", "hierarchy", "d3-hierarchy", "plugin", "d3-plugin", "infovis", "visualization", "2d"], Wt = "https://github.com/klortho/d3-flextree", It = "WTFPL", Kt = { type: "git", url: "https://github.com/klortho/d3-flextree.git" }, Gt = { clean: "rm -rf build demo test", "build:demo": "rollup -c --environment BUILD:demo", "build:dev": "rollup -c --environment BUILD:dev", "build:prod": "rollup -c --environment BUILD:prod", "build:test": "rollup -c --environment BUILD:test", build: "rollup -c", lint: "eslint index.js src", "test:main": "node test/bundle.js", "test:browser": "node test/browser-tests.js", test: "npm-run-all test:*", prepare: "npm-run-all clean build lint test" }, Vt = { "d3-hierarchy": "^1.1.5" }, Ut = { "babel-plugin-external-helpers": "^6.22.0", "babel-preset-es2015-rollup": "^3.0.0", d3: "^4.13.0", "d3-selection-multi": "^1.0.1", eslint: "^4.19.1", jsdom: "^11.6.2", "npm-run-all": "^4.1.2", rollup: "^0.55.3", "rollup-plugin-babel": "^2.7.1", "rollup-plugin-commonjs": "^8.0.2", "rollup-plugin-copy": "^0.2.3", "rollup-plugin-json": "^2.3.0", "rollup-plugin-node-resolve": "^3.0.2", "rollup-plugin-uglify": "^3.0.0", "uglify-es": "^3.3.9" }, Yt = {
189
+ name: Tt,
191
190
  version: Dt,
192
- main: Ft,
193
- module: Tt,
191
+ main: _t,
192
+ module: Ht,
194
193
  "jsnext:main": "index",
195
- author: _t,
196
- description: Ht,
197
- keywords: Nt,
198
- homepage: Lt,
199
- license: Pt,
200
- repository: Wt,
201
- scripts: It,
202
- dependencies: Kt,
203
- devDependencies: Gt
204
- }, { version: Ut } = Vt, Yt = Object.freeze({
194
+ author: Nt,
195
+ description: Lt,
196
+ keywords: Pt,
197
+ homepage: Wt,
198
+ license: It,
199
+ repository: Kt,
200
+ scripts: Gt,
201
+ dependencies: Vt,
202
+ devDependencies: Ut
203
+ }, { version: Zt } = Yt, qt = Object.freeze({
205
204
  children: (e) => e.children,
206
205
  nodeSize: (e) => e.data.size,
207
206
  spacing: 0
208
207
  });
209
- function V(e) {
210
- const t = Object.assign({}, Yt, e);
208
+ function Z(e) {
209
+ const t = Object.assign({}, qt, e);
211
210
  function s(r) {
212
- const l = t[r];
213
- return typeof l == "function" ? l : () => l;
211
+ const c = t[r];
212
+ return typeof c == "function" ? c : () => c;
214
213
  }
215
214
  function n(r) {
216
- const l = c(a(), r, (d) => d.children);
217
- return l.update(), l.data;
215
+ const c = l(a(), r, (p) => p.children);
216
+ return c.update(), c.data;
218
217
  }
219
- function i() {
220
- const r = s("nodeSize"), l = s("spacing");
221
- return class G extends A.prototype.constructor {
218
+ function o() {
219
+ const r = s("nodeSize"), c = s("spacing");
220
+ return class Y extends B.prototype.constructor {
222
221
  constructor(h) {
223
222
  super(h);
224
223
  }
225
224
  copy() {
226
- const h = c(this.constructor, this, (p) => p.children);
227
- return h.each((p) => p.data = p.data.data), h;
225
+ const h = l(this.constructor, this, (u) => u.children);
226
+ return h.each((u) => u.data = u.data.data), h;
228
227
  }
229
228
  get size() {
230
229
  return r(this);
231
230
  }
232
231
  spacing(h) {
233
- return l(this, h);
232
+ return c(this, h);
234
233
  }
235
234
  get nodes() {
236
235
  return this.descendants();
@@ -274,7 +273,7 @@ function V(e) {
274
273
  }
275
274
  get extents() {
276
275
  return (this.children || []).reduce(
277
- (h, p) => G.maxExtents(h, p.extents),
276
+ (h, u) => Y.maxExtents(h, u.extents),
278
277
  this.nodeExtents
279
278
  );
280
279
  }
@@ -286,18 +285,18 @@ function V(e) {
286
285
  right: this.right
287
286
  };
288
287
  }
289
- static maxExtents(h, p) {
288
+ static maxExtents(h, u) {
290
289
  return {
291
- top: Math.min(h.top, p.top),
292
- bottom: Math.max(h.bottom, p.bottom),
293
- left: Math.min(h.left, p.left),
294
- right: Math.max(h.right, p.right)
290
+ top: Math.min(h.top, u.top),
291
+ bottom: Math.max(h.bottom, u.bottom),
292
+ left: Math.min(h.left, u.left),
293
+ right: Math.max(h.right, u.right)
295
294
  };
296
295
  }
297
296
  };
298
297
  }
299
298
  function a() {
300
- const r = i(), l = s("nodeSize"), d = s("spacing");
299
+ const r = o(), c = s("nodeSize"), p = s("spacing");
301
300
  return class extends r {
302
301
  constructor(h) {
303
302
  super(h), Object.assign(this, {
@@ -316,10 +315,10 @@ function V(e) {
316
315
  });
317
316
  }
318
317
  get size() {
319
- return l(this.data);
318
+ return c(this.data);
320
319
  }
321
320
  spacing(h) {
322
- return d(this.data, h.data);
321
+ return p(this.data, h.data);
323
322
  }
324
323
  get x() {
325
324
  return this.data.x;
@@ -334,29 +333,29 @@ function V(e) {
334
333
  this.data.y = h;
335
334
  }
336
335
  update() {
337
- return U(this), Y(this), this;
336
+ return q(this), J(this), this;
338
337
  }
339
338
  };
340
339
  }
341
- function c(r, l, d) {
342
- const h = (p, u) => {
343
- const g = new r(p);
340
+ function l(r, c, p) {
341
+ const h = (u, m) => {
342
+ const g = new r(u);
344
343
  Object.assign(g, {
345
- parent: u,
346
- depth: u === null ? 0 : u.depth + 1,
344
+ parent: m,
345
+ depth: m === null ? 0 : m.depth + 1,
347
346
  height: 0,
348
347
  length: 1
349
348
  });
350
- const f = d(p) || [];
351
- return g.children = f.length === 0 ? null : f.map((x) => h(x, g)), g.children && Object.assign(g, g.children.reduce(
352
- (x, k) => ({
353
- height: Math.max(x.height, k.height + 1),
354
- length: x.length + k.length
349
+ const y = p(u) || [];
350
+ return g.children = y.length === 0 ? null : y.map((x) => h(x, g)), g.children && Object.assign(g, g.children.reduce(
351
+ (x, b) => ({
352
+ height: Math.max(x.height, b.height + 1),
353
+ length: x.length + b.length
355
354
  }),
356
355
  g
357
356
  )), g;
358
357
  };
359
- return h(l, null);
358
+ return h(c, null);
360
359
  }
361
360
  return Object.assign(n, {
362
361
  nodeSize(r) {
@@ -368,67 +367,67 @@ function V(e) {
368
367
  children(r) {
369
368
  return arguments.length ? (t.children = r, n) : t.children;
370
369
  },
371
- hierarchy(r, l) {
372
- const d = typeof l > "u" ? t.children : l;
373
- return c(i(), r, d);
370
+ hierarchy(r, c) {
371
+ const p = typeof c > "u" ? t.children : c;
372
+ return l(o(), r, p);
374
373
  },
375
374
  dump(r) {
376
- const l = s("nodeSize"), d = (h) => (p) => {
377
- const u = h + " ", g = h + " ", { x: f, y: x } = p, k = l(p), b = p.children || [], E = b.length === 0 ? " " : `,${u}children: [${g}${b.map(d(g)).join(g)}${u}],${h}`;
378
- return `{ size: [${k.join(", ")}],${u}x: ${f}, y: ${x}${E}},`;
375
+ const c = s("nodeSize"), p = (h) => (u) => {
376
+ const m = h + " ", g = h + " ", { x: y, y: x } = u, b = c(u), k = u.children || [], z = k.length === 0 ? " " : `,${m}children: [${g}${k.map(p(g)).join(g)}${m}],${h}`;
377
+ return `{ size: [${b.join(", ")}],${m}x: ${y}, y: ${x}${z}},`;
379
378
  };
380
- return d(`
379
+ return p(`
381
380
  `)(r);
382
381
  }
383
382
  }), n;
384
383
  }
385
- V.version = Ut;
386
- const U = (e, t = 0) => (e.y = t, (e.children || []).reduce((s, n) => {
387
- const [i, a] = s;
388
- U(n, e.y + e.ySize);
389
- const c = (i === 0 ? n.lExt : n.rExt).bottom;
390
- i !== 0 && qt(e, i, a);
391
- const r = ie(c, i, a);
392
- return [i + 1, r];
393
- }, [0, null]), Zt(e), se(e), e), Y = (e, t, s) => {
384
+ Z.version = Zt;
385
+ const q = (e, t = 0) => (e.y = t, (e.children || []).reduce((s, n) => {
386
+ const [o, a] = s;
387
+ q(n, e.y + e.ySize);
388
+ const l = (o === 0 ? n.lExt : n.rExt).bottom;
389
+ o !== 0 && Qt(e, o, a);
390
+ const r = ae(l, o, a);
391
+ return [o + 1, r];
392
+ }, [0, null]), Jt(e), oe(e), e), J = (e, t, s) => {
394
393
  typeof t > "u" && (t = -e.relX - e.prelim, s = 0);
395
394
  const n = t + e.relX;
396
- return e.relX = n + e.prelim - s, e.prelim = 0, e.x = s + e.relX, (e.children || []).forEach((i) => Y(i, n, e.x)), e;
397
- }, Zt = (e) => {
395
+ return e.relX = n + e.prelim - s, e.prelim = 0, e.x = s + e.relX, (e.children || []).forEach((o) => J(o, n, e.x)), e;
396
+ }, Jt = (e) => {
398
397
  (e.children || []).reduce((t, s) => {
399
- const [n, i] = t, a = n + s.shift, c = i + a + s.change;
400
- return s.relX += c, [a, c];
398
+ const [n, o] = t, a = n + s.shift, l = o + a + s.change;
399
+ return s.relX += l, [a, l];
401
400
  }, [0, 0]);
402
- }, qt = (e, t, s) => {
403
- const n = e.children[t - 1], i = e.children[t];
404
- let a = n, c = n.relX, r = i, l = i.relX, d = !0;
401
+ }, Qt = (e, t, s) => {
402
+ const n = e.children[t - 1], o = e.children[t];
403
+ let a = n, l = n.relX, r = o, c = o.relX, p = !0;
405
404
  for (; a && r; ) {
406
405
  a.bottom > s.lowY && (s = s.next);
407
- const h = c + a.prelim - (l + r.prelim) + a.xSize / 2 + r.xSize / 2 + a.spacing(r);
408
- (h > 0 || h < 0 && d) && (l += h, Jt(i, h), Qt(e, t, s.index, h)), d = !1;
409
- const p = a.bottom, u = r.bottom;
410
- p <= u && (a = ee(a), a && (c += a.relX)), p >= u && (r = te(r), r && (l += r.relX));
406
+ const h = l + a.prelim - (c + r.prelim) + a.xSize / 2 + r.xSize / 2 + a.spacing(r);
407
+ (h > 0 || h < 0 && p) && (c += h, te(o, h), ee(e, t, s.index, h)), p = !1;
408
+ const u = a.bottom, m = r.bottom;
409
+ u <= m && (a = ne(a), a && (l += a.relX)), u >= m && (r = re(r), r && (c += r.relX));
411
410
  }
412
- !a && r ? ne(e, t, r, l) : a && !r && re(e, t, a, c);
413
- }, Jt = (e, t) => {
411
+ !a && r ? se(e, t, r, c) : a && !r && ie(e, t, a, l);
412
+ }, te = (e, t) => {
414
413
  e.relX += t, e.lExtRelX += t, e.rExtRelX += t;
415
- }, Qt = (e, t, s, n) => {
416
- const i = e.children[t], a = t - s;
414
+ }, ee = (e, t, s, n) => {
415
+ const o = e.children[t], a = t - s;
417
416
  if (a > 1) {
418
- const c = n / a;
419
- e.children[s + 1].shift += c, i.shift -= c, i.change -= n - c;
417
+ const l = n / a;
418
+ e.children[s + 1].shift += l, o.shift -= l, o.change -= n - l;
420
419
  }
421
- }, te = (e) => e.hasChildren ? e.firstChild : e.lThr, ee = (e) => e.hasChildren ? e.lastChild : e.rThr, ne = (e, t, s, n) => {
422
- const i = e.firstChild, a = i.lExt, c = e.children[t];
420
+ }, re = (e) => e.hasChildren ? e.firstChild : e.lThr, ne = (e) => e.hasChildren ? e.lastChild : e.rThr, se = (e, t, s, n) => {
421
+ const o = e.firstChild, a = o.lExt, l = e.children[t];
423
422
  a.lThr = s;
424
- const r = n - s.relX - i.lExtRelX;
425
- a.relX += r, a.prelim -= r, i.lExt = c.lExt, i.lExtRelX = c.lExtRelX;
426
- }, re = (e, t, s, n) => {
427
- const i = e.children[t], a = i.rExt, c = e.children[t - 1];
423
+ const r = n - s.relX - o.lExtRelX;
424
+ a.relX += r, a.prelim -= r, o.lExt = l.lExt, o.lExtRelX = l.lExtRelX;
425
+ }, ie = (e, t, s, n) => {
426
+ const o = e.children[t], a = o.rExt, l = e.children[t - 1];
428
427
  a.rThr = s;
429
- const r = n - s.relX - i.rExtRelX;
430
- a.relX += r, a.prelim -= r, i.rExt = c.rExt, i.rExtRelX = c.rExtRelX;
431
- }, se = (e) => {
428
+ const r = n - s.relX - o.rExtRelX;
429
+ a.relX += r, a.prelim -= r, o.rExt = l.rExt, o.rExtRelX = l.rExtRelX;
430
+ }, oe = (e) => {
432
431
  if (e.hasChildren) {
433
432
  const t = e.firstChild, s = e.lastChild, n = (t.prelim + t.relX - t.xSize / 2 + s.relX + s.prelim + s.xSize / 2) / 2;
434
433
  Object.assign(e, {
@@ -439,7 +438,7 @@ const U = (e, t = 0) => (e.y = t, (e.children || []).reduce((s, n) => {
439
438
  rExtRelX: s.rExtRelX
440
439
  });
441
440
  }
442
- }, ie = (e, t, s) => {
441
+ }, ae = (e, t, s) => {
443
442
  for (; s !== null && e >= s.lowY; )
444
443
  s = s.next;
445
444
  return {
@@ -447,65 +446,66 @@ const U = (e, t = 0) => (e.y = t, (e.children || []).reduce((s, n) => {
447
446
  index: t,
448
447
  next: s
449
448
  };
450
- }, Z = ".markmap{--markmap-max-width: 9999px;--markmap-a-color: #0097e6;--markmap-a-hover-color: #00a8ff;--markmap-code-bg: #f0f0f0;--markmap-code-color: #555;--markmap-highlight-bg: #ffeaa7;--markmap-table-border: 1px solid currentColor;--markmap-font: 300 16px/20px sans-serif;--markmap-circle-open-bg: #fff;--markmap-text-color: #333;font:var(--markmap-font);color:var(--markmap-text-color)}.markmap-link{fill:none}.markmap-node>circle{cursor:pointer}.markmap-foreign{display:inline-block}.markmap-foreign p{margin:0}.markmap-foreign a{color:var(--markmap-a-color)}.markmap-foreign a:hover{color:var(--markmap-a-hover-color)}.markmap-foreign code{padding:.25em;font-size:calc(1em - 2px);color:var(--markmap-code-color);background-color:var(--markmap-code-bg);border-radius:2px}.markmap-foreign pre{margin:0}.markmap-foreign pre>code{display:block}.markmap-foreign del{text-decoration:line-through}.markmap-foreign em{font-style:italic}.markmap-foreign strong{font-weight:700}.markmap-foreign mark{background:var(--markmap-highlight-bg)}.markmap-foreign table,.markmap-foreign th,.markmap-foreign td{border-collapse:collapse;border:var(--markmap-table-border)}.markmap-foreign img{display:inline-block}.markmap-foreign svg{fill:currentColor}.markmap-foreign>div{width:var(--markmap-max-width);text-align:left}.markmap-foreign>div>div{display:inline-block}.markmap-dark .markmap{--markmap-code-bg: #1a1b26;--markmap-code-color: #ddd;--markmap-circle-open-bg: #444;--markmap-text-color: #eee}", de = Z, M = ht();
451
- function L(e) {
449
+ }, Q = ".markmap{--markmap-max-width: 9999px;--markmap-a-color: #0097e6;--markmap-a-hover-color: #00a8ff;--markmap-code-bg: #f0f0f0;--markmap-code-color: #555;--markmap-highlight-bg: #ffeaa7;--markmap-table-border: 1px solid currentColor;--markmap-font: 300 16px/20px sans-serif;--markmap-circle-open-bg: #fff;--markmap-text-color: #333;font:var(--markmap-font);color:var(--markmap-text-color)}.markmap-link{fill:none}.markmap-node>circle{cursor:pointer}.markmap-foreign{display:inline-block}.markmap-foreign p{margin:0}.markmap-foreign a{color:var(--markmap-a-color)}.markmap-foreign a:hover{color:var(--markmap-a-hover-color)}.markmap-foreign code{padding:.25em;font-size:calc(1em - 2px);color:var(--markmap-code-color);background-color:var(--markmap-code-bg);border-radius:2px}.markmap-foreign pre{margin:0}.markmap-foreign pre>code{display:block}.markmap-foreign del{text-decoration:line-through}.markmap-foreign em{font-style:italic}.markmap-foreign strong{font-weight:700}.markmap-foreign mark{background:var(--markmap-highlight-bg)}.markmap-foreign table,.markmap-foreign th,.markmap-foreign td{border-collapse:collapse;border:var(--markmap-table-border)}.markmap-foreign img{display:inline-block}.markmap-foreign svg{fill:currentColor}.markmap-foreign>div{width:var(--markmap-max-width);text-align:left}.markmap-foreign>div>div{display:inline-block}.markmap-dark .markmap{--markmap-code-bg: #1a1b26;--markmap-code-color: #ddd;--markmap-circle-open-bg: #444;--markmap-text-color: #eee}", me = Q, j = lt();
450
+ function I(e) {
452
451
  return Math.max(4 - 2 * e.state.depth, 1.5);
453
452
  }
454
- function P(e, t) {
455
- const s = mt(e, t);
453
+ function K(e, t) {
454
+ const s = pt(e, t);
456
455
  return e[s];
457
456
  }
458
- function B(e) {
457
+ function O(e) {
459
458
  e.stopPropagation();
460
459
  }
461
- const oe = new it();
462
- class q {
460
+ const le = new ut();
461
+ class tt {
463
462
  constructor(t, s) {
464
- this.options = K, this.revokers = [], this.handleZoom = (n) => {
465
- const { transform: i } = n;
466
- this.g.attr("transform", i);
463
+ this.options = U, this.revokers = [], this.handleZoom = (n) => {
464
+ const { transform: o } = n;
465
+ this.g.attr("transform", o);
467
466
  }, this.handlePan = (n) => {
468
467
  n.preventDefault();
469
- const i = w(this.svg.node()), a = i.translate(
470
- -n.deltaX / i.k,
471
- -n.deltaY / i.k
468
+ const o = w(this.svg.node()), a = o.translate(
469
+ -n.deltaX / o.k,
470
+ -n.deltaY / o.k
472
471
  );
473
472
  this.svg.call(this.zoom.transform, a);
474
- }, this.handleClick = (n, i) => {
473
+ }, this.handleClick = (n, o) => {
475
474
  let a = this.options.toggleRecursively;
476
- (I ? n.metaKey : n.ctrlKey) && (a = !a), this.toggleNode(i, a);
477
- }, this.ensureView = this.ensureVisible, this.svg = t.datum ? t : dt(t), this.styleNode = this.svg.append("style"), this.zoom = pt().filter((n) => this.options.scrollForPan && n.type === "wheel" ? n.ctrlKey && !n.button : (!n.ctrlKey || n.type === "wheel") && !n.button).on("zoom", this.handleZoom), this.setOptions(s), this.state = {
478
- id: this.options.id || this.svg.attr("id") || ot(),
475
+ (V ? n.metaKey : n.ctrlKey) && (a = !a), this.toggleNode(o, a);
476
+ }, this.ensureView = this.ensureVisible, this.svg = t.datum ? t : ct(t), this.styleNode = this.svg.append("style"), this.zoom = ht().filter((n) => this.options.scrollForPan && n.type === "wheel" ? n.ctrlKey && !n.button : (!n.ctrlKey || n.type === "wheel") && !n.button).on("zoom", this.handleZoom), this.setOptions(s), this.state = {
477
+ id: this.options.id || this.svg.attr("id") || mt(),
479
478
  rect: { x1: 0, y1: 0, x2: 0, y2: 0 }
480
479
  }, this.g = this.svg.append("g"), this.observer = new ResizeObserver(
481
- at(() => {
480
+ gt(() => {
482
481
  this.renderData();
483
482
  }, 100)
484
483
  ), this.revokers.push(
485
- oe.tap(() => {
484
+ le.tap(() => {
486
485
  this.setData();
487
- })
486
+ }),
487
+ () => this.observer.disconnect()
488
488
  );
489
489
  }
490
490
  getStyleContent() {
491
491
  const { style: t } = this.options, { id: s } = this.state, n = typeof t == "function" ? t(s) : "";
492
- return [this.options.embedGlobalCSS && Z, n].filter(Boolean).join(`
492
+ return [this.options.embedGlobalCSS && Q, n].filter(Boolean).join(`
493
493
  `);
494
494
  }
495
495
  updateStyle() {
496
496
  this.svg.attr(
497
497
  "class",
498
- lt(this.svg.attr("class"), "markmap", this.state.id)
498
+ ft(this.svg.attr("class"), "markmap", this.state.id)
499
499
  );
500
500
  const t = this.getStyleContent();
501
501
  this.styleNode.text(t);
502
502
  }
503
503
  async toggleNode(t, s = !1) {
504
- var i, a;
505
- const n = (i = t.payload) != null && i.fold ? 0 : 1;
506
- s ? j(t, (c, r) => {
507
- c.payload = {
508
- ...c.payload,
504
+ var o, a;
505
+ const n = (o = t.payload) != null && o.fold ? 0 : 1;
506
+ s ? C(t, (l, r) => {
507
+ l.payload = {
508
+ ...l.payload,
509
509
  fold: n
510
510
  }, r();
511
511
  }) : t.payload = {
@@ -515,13 +515,13 @@ class q {
515
515
  }
516
516
  _initializeData(t) {
517
517
  let s = 0;
518
- const { color: n, initialExpandLevel: i } = this.options;
519
- let a = 0, c = 0;
520
- j(t, (r, l, d) => {
521
- var p, u, g, f;
522
- c += 1, r.children = (p = r.children) == null ? void 0 : p.map((x) => ({ ...x })), s += 1, r.state = {
518
+ const { color: n, initialExpandLevel: o } = this.options;
519
+ let a = 0, l = 0;
520
+ C(t, (r, c, p) => {
521
+ var u, m, g, y;
522
+ l += 1, r.children = (u = r.children) == null ? void 0 : u.map((x) => ({ ...x })), s += 1, r.state = {
523
523
  ...r.state,
524
- depth: c,
524
+ depth: l,
525
525
  id: s,
526
526
  rect: {
527
527
  x: 0,
@@ -530,46 +530,46 @@ class q {
530
530
  height: 0
531
531
  },
532
532
  size: [0, 0]
533
- }, r.state.key = [(u = d == null ? void 0 : d.state) == null ? void 0 : u.id, r.state.id].filter(Boolean).join(".") + ft(r.content), r.state.path = [(g = d == null ? void 0 : d.state) == null ? void 0 : g.path, r.state.id].filter(Boolean).join("."), n(r);
534
- const h = ((f = r.payload) == null ? void 0 : f.fold) === 2;
535
- h ? a += 1 : (a || i >= 0 && r.state.depth >= i) && (r.payload = { ...r.payload, fold: 1 }), l(), h && (a -= 1), c -= 1;
533
+ }, r.state.key = [(m = p == null ? void 0 : p.state) == null ? void 0 : m.id, r.state.id].filter(Boolean).join(".") + yt(r.content), r.state.path = [(g = p == null ? void 0 : p.state) == null ? void 0 : g.path, r.state.id].filter(Boolean).join("."), n(r);
534
+ const h = ((y = r.payload) == null ? void 0 : y.fold) === 2;
535
+ h ? a += 1 : (a || o >= 0 && r.state.depth >= o) && (r.payload = { ...r.payload, fold: 1 }), c(), h && (a -= 1), l -= 1;
536
536
  });
537
537
  }
538
538
  _relayout() {
539
539
  if (!this.state.data) return;
540
- this.g.selectAll(y("g")).selectAll(
541
- y("foreignObject")
540
+ this.g.selectAll(v("g")).selectAll(
541
+ v("foreignObject")
542
542
  ).each(function(r) {
543
543
  var h;
544
- const l = (h = this.firstChild) == null ? void 0 : h.firstChild, d = [l.scrollWidth, l.scrollHeight];
545
- r.state.size = d;
544
+ const c = (h = this.firstChild) == null ? void 0 : h.firstChild, p = [c.scrollWidth, c.scrollHeight];
545
+ r.state.size = p;
546
546
  });
547
- const { spacingHorizontal: t, paddingX: s, spacingVertical: n } = this.options, i = V({}).children((r) => {
548
- var l;
549
- if (!((l = r.payload) != null && l.fold)) return r.children;
547
+ const { spacingHorizontal: t, paddingX: s, spacingVertical: n } = this.options, o = Z({}).children((r) => {
548
+ var c;
549
+ if (!((c = r.payload) != null && c.fold)) return r.children;
550
550
  }).nodeSize((r) => {
551
- const [l, d] = r.data.state.size;
552
- return [d, l + (l ? s * 2 : 0) + t];
553
- }).spacing((r, l) => r.parent === l.parent ? n : n * 2), a = i.hierarchy(this.state.data);
554
- i(a);
555
- const c = a.descendants();
556
- c.forEach((r) => {
557
- const l = r.data;
558
- l.state.rect = {
551
+ const [c, p] = r.data.state.size;
552
+ return [p, c + (c ? s * 2 : 0) + t];
553
+ }).spacing((r, c) => r.parent === c.parent ? n : n * 2), a = o.hierarchy(this.state.data);
554
+ o(a);
555
+ const l = a.descendants();
556
+ l.forEach((r) => {
557
+ const c = r.data;
558
+ c.state.rect = {
559
559
  x: r.y,
560
560
  y: r.x - r.xSize / 2,
561
561
  width: r.ySize - t,
562
562
  height: r.xSize
563
563
  };
564
564
  }), this.state.rect = {
565
- x1: H(c, (r) => r.data.state.rect.x) || 0,
566
- y1: H(c, (r) => r.data.state.rect.y) || 0,
567
- x2: N(
568
- c,
565
+ x1: P(l, (r) => r.data.state.rect.x) || 0,
566
+ y1: P(l, (r) => r.data.state.rect.y) || 0,
567
+ x2: W(
568
+ l,
569
569
  (r) => r.data.state.rect.x + r.data.state.rect.width
570
570
  ) || 0,
571
- y2: N(
572
- c,
571
+ y2: W(
572
+ l,
573
573
  (r) => r.data.state.rect.y + r.data.state.rect.height
574
574
  ) || 0
575
575
  };
@@ -584,96 +584,110 @@ class q {
584
584
  s && this.setOptions(s), t && (this.state.data = t), this.state.data && (this._initializeData(this.state.data), this.updateStyle(), await this.renderData());
585
585
  }
586
586
  async renderData(t) {
587
- const { paddingX: s, autoFit: n, color: i, maxWidth: a } = this.options;
588
- if (!this.state.data) return;
589
- const c = [];
590
- j(this.state.data, (o, m) => {
591
- var v;
592
- (v = o.payload) != null && v.fold || m(), c.push(o);
587
+ const { paddingX: s, autoFit: n, color: o, maxWidth: a } = this.options, l = this.state.data;
588
+ if (!l) return;
589
+ const r = {}, c = {}, p = [];
590
+ C(l, (i, d, f) => {
591
+ var E;
592
+ (E = i.payload) != null && E.fold || d(), r[i.state.id] = i, f && (c[i.state.id] = f.state.id), p.push(i);
593
593
  });
594
- const r = t || this.state.data, l = r.state.rect, d = this.g.selectAll(y("g")).data(c, (o) => o.state.key), h = d.enter().append("g").attr("data-depth", (o) => o.state.depth).attr("data-path", (o) => o.state.path), p = d.exit(), u = d.merge(h).attr(
594
+ const h = {}, u = {}, m = (i) => {
595
+ !i || h[i.state.id] || C(i, (d, f) => {
596
+ h[d.state.id] = i.state.id, f();
597
+ });
598
+ }, g = (i) => u[h[i.state.id]] || l.state.rect, y = (i) => (r[h[i.state.id]] || l).state.rect;
599
+ u[l.state.id] = l.state.rect, t && m(t);
600
+ const x = this.g.selectAll(v("g")).each((i) => {
601
+ u[i.state.id] = i.state.rect;
602
+ }).data(p, (i) => i.state.key), b = x.enter().append("g").attr("data-depth", (i) => i.state.depth).attr("data-path", (i) => i.state.path).each((i) => {
603
+ m(r[c[i.state.id]]);
604
+ }), k = x.exit().each((i) => {
605
+ m(r[c[i.state.id]]);
606
+ }), z = x.merge(b).attr(
595
607
  "class",
596
- (o) => {
597
- var m;
598
- return ["markmap-node", ((m = o.payload) == null ? void 0 : m.fold) && "markmap-fold"].filter(Boolean).join(" ");
599
- }
600
- ), g = u.selectAll(y("line")).data(
601
- (o) => [o],
602
- (o) => o.state.key
603
- ), f = g.enter().append("line").attr("stroke", (o) => i(o)).attr("stroke-width", 0), x = g.merge(f), k = u.selectAll(y("circle")).data(
604
- (o) => {
605
- var m;
606
- return (m = o.children) != null && m.length ? [o] : [];
608
+ (i) => {
609
+ var d;
610
+ return ["markmap-node", ((d = i.payload) == null ? void 0 : d.fold) && "markmap-fold"].filter(Boolean).join(" ");
611
+ }
612
+ ), A = z.selectAll(v("line")).data(
613
+ (i) => [i],
614
+ (i) => i.state.key
615
+ ), $ = A.enter().append("line").attr("stroke", (i) => o(i)).attr("stroke-width", 0), F = A.merge($), T = z.selectAll(v("circle")).data(
616
+ (i) => {
617
+ var d;
618
+ return (d = i.children) != null && d.length ? [i] : [];
607
619
  },
608
- (o) => o.state.key
609
- ), E = k.enter().append("circle").attr("stroke-width", 0).attr("r", 0).on("click", (o, m) => this.handleClick(o, m)).on("mousedown", B).merge(k).attr("stroke", (o) => i(o)).attr(
620
+ (i) => i.state.key
621
+ ), D = T.enter().append("circle").attr("stroke-width", 0).attr("r", 0).on("click", (i, d) => this.handleClick(i, d)).on("mousedown", O).merge(T).attr("stroke", (i) => o(i)).attr(
610
622
  "fill",
611
- (o) => {
612
- var m;
613
- return (m = o.payload) != null && m.fold && o.children ? i(o) : "var(--markmap-circle-open-bg)";
614
- }
615
- ), O = this.observer, $ = u.selectAll(y("foreignObject")).data(
616
- (o) => [o],
617
- (o) => o.state.key
618
- ), X = $.enter().append("foreignObject").attr("class", "markmap-foreign").attr("x", s).attr("y", 0).style("opacity", 0).on("mousedown", B).on("dblclick", B);
619
- X.append("xhtml:div").append("xhtml:div").html((o) => o.content).attr("xmlns", "http://www.w3.org/1999/xhtml"), X.each(function() {
620
- var m;
621
- const o = (m = this.firstChild) == null ? void 0 : m.firstChild;
622
- O.observe(o);
623
+ (i) => {
624
+ var d;
625
+ return (d = i.payload) != null && d.fold && i.children ? o(i) : "var(--markmap-circle-open-bg)";
626
+ }
627
+ ), _ = this.observer, H = z.selectAll(v("foreignObject")).data(
628
+ (i) => [i],
629
+ (i) => i.state.key
630
+ ), X = H.enter().append("foreignObject").attr("class", "markmap-foreign").attr("x", s).attr("y", 0).style("opacity", 0).on("mousedown", O).on("dblclick", O);
631
+ X.append("xhtml:div").append("xhtml:div").html((i) => i.content).attr("xmlns", "http://www.w3.org/1999/xhtml"), X.each(function() {
632
+ var d;
633
+ const i = (d = this.firstChild) == null ? void 0 : d.firstChild;
634
+ _.observe(i);
623
635
  });
624
- const D = p.selectAll(
625
- y("foreignObject")
636
+ const N = k.selectAll(
637
+ v("foreignObject")
626
638
  );
627
- D.each(function() {
628
- var m;
629
- const o = (m = this.firstChild) == null ? void 0 : m.firstChild;
630
- O.unobserve(o);
639
+ N.each(function() {
640
+ var d;
641
+ const i = (d = this.firstChild) == null ? void 0 : d.firstChild;
642
+ _.unobserve(i);
631
643
  });
632
- const F = X.merge($), J = c.flatMap(
633
- (o) => {
634
- var m;
635
- return (m = o.payload) != null && m.fold ? [] : o.children.map((v) => ({ source: o, target: v }));
636
- }
637
- ), R = this.g.selectAll(y("path")).data(J, (o) => o.target.state.key), Q = R.exit(), T = [
638
- l.x + l.width,
639
- l.y + l.height
640
- ], tt = R.enter().insert("path", "g").attr("class", "markmap-link").attr("data-depth", (o) => o.target.state.depth).attr("data-path", (o) => o.target.state.path).attr("d", M({ source: T, target: T })).attr("stroke-width", 0).merge(R);
644
+ const L = X.merge(H), et = p.flatMap(
645
+ (i) => {
646
+ var d;
647
+ return (d = i.payload) != null && d.fold ? [] : i.children.map((f) => ({ source: i, target: f }));
648
+ }
649
+ ), M = this.g.selectAll(v("path")).data(et, (i) => i.target.state.key), rt = M.exit(), nt = M.enter().insert("path", "g").attr("class", "markmap-link").attr("data-depth", (i) => i.target.state.depth).attr("data-path", (i) => i.target.state.path).attr("d", (i) => {
650
+ const d = g(i.target), f = [
651
+ d.x + d.width,
652
+ d.y + d.height
653
+ ];
654
+ return j({ source: f, target: f });
655
+ }).attr("stroke-width", 0).merge(M);
641
656
  this.svg.style(
642
657
  "--markmap-max-width",
643
658
  a ? `${a}px` : null
644
- ), await new Promise(requestAnimationFrame), this._relayout();
645
- const z = r.state.rect;
646
- h.attr(
659
+ ), await new Promise(requestAnimationFrame), this._relayout(), b.attr("transform", (i) => {
660
+ const d = g(i);
661
+ return `translate(${d.x + d.width - i.state.rect.width},${d.y + d.height - i.state.rect.height})`;
662
+ }), this.transition(k).attr("transform", (i) => {
663
+ const d = y(i), f = d.x + d.width - i.state.rect.width, E = d.y + d.height - i.state.rect.height;
664
+ return `translate(${f},${E})`;
665
+ }).remove(), this.transition(z).attr(
647
666
  "transform",
648
- (o) => `translate(${l.x + l.width - o.state.rect.width},${l.y + l.height - o.state.rect.height})`
649
- ), this.transition(p).attr("transform", (o) => {
650
- const m = z.x + z.width - o.state.rect.width, v = z.y + z.height - o.state.rect.height;
651
- return `translate(${m},${v})`;
652
- }).remove(), this.transition(u).attr(
653
- "transform",
654
- (o) => `translate(${o.state.rect.x},${o.state.rect.y})`
667
+ (i) => `translate(${i.state.rect.x},${i.state.rect.y})`
655
668
  );
656
- const et = p.selectAll(
657
- y("line")
669
+ const st = k.selectAll(
670
+ v("line")
658
671
  );
659
- this.transition(et).attr("x1", (o) => o.state.rect.width).attr("stroke-width", 0), f.attr("x1", (o) => o.state.rect.width).attr("x2", (o) => o.state.rect.width), x.attr("y1", (o) => o.state.rect.height).attr("y2", (o) => o.state.rect.height), this.transition(x).attr("x1", -1).attr("x2", (o) => o.state.rect.width + 2).attr("stroke", (o) => i(o)).attr("stroke-width", L);
660
- const nt = p.selectAll(
661
- y("circle")
672
+ this.transition(st).attr("x1", (i) => i.state.rect.width).attr("stroke-width", 0), $.attr("x1", (i) => i.state.rect.width).attr("x2", (i) => i.state.rect.width), F.attr("y1", (i) => i.state.rect.height).attr("y2", (i) => i.state.rect.height), this.transition(F).attr("x1", -1).attr("x2", (i) => i.state.rect.width + 2).attr("stroke", (i) => o(i)).attr("stroke-width", I);
673
+ const it = k.selectAll(
674
+ v("circle")
662
675
  );
663
- this.transition(nt).attr("r", 0).attr("stroke-width", 0), E.attr("cx", (o) => o.state.rect.width).attr("cy", (o) => o.state.rect.height), this.transition(E).attr("r", 6).attr("stroke-width", "1.5"), this.transition(D).style("opacity", 0), F.attr("width", (o) => Math.max(0, o.state.rect.width - s * 2)).attr("height", (o) => o.state.rect.height), this.transition(F).style("opacity", 1);
664
- const _ = [
665
- z.x + z.width,
666
- z.y + z.height
667
- ];
668
- this.transition(Q).attr("d", M({ source: _, target: _ })).attr("stroke-width", 0).remove(), this.transition(tt).attr("stroke", (o) => i(o.target)).attr("stroke-width", (o) => L(o.target)).attr("d", (o) => {
669
- const m = o.source, v = o.target, rt = [
670
- m.state.rect.x + m.state.rect.width,
671
- m.state.rect.y + m.state.rect.height
672
- ], st = [
673
- v.state.rect.x,
674
- v.state.rect.y + v.state.rect.height
676
+ this.transition(it).attr("r", 0).attr("stroke-width", 0), D.attr("cx", (i) => i.state.rect.width).attr("cy", (i) => i.state.rect.height), this.transition(D).attr("r", 6).attr("stroke-width", "1.5"), this.transition(N).style("opacity", 0), L.attr("width", (i) => Math.max(0, i.state.rect.width - s * 2)).attr("height", (i) => i.state.rect.height), this.transition(L).style("opacity", 1), this.transition(rt).attr("d", (i) => {
677
+ const d = y(i.target), f = [
678
+ d.x + d.width,
679
+ d.y + d.height
680
+ ];
681
+ return j({ source: f, target: f });
682
+ }).attr("stroke-width", 0).remove(), this.transition(nt).attr("stroke", (i) => o(i.target)).attr("stroke-width", (i) => I(i.target)).attr("d", (i) => {
683
+ const d = i.source, f = i.target, E = [
684
+ d.state.rect.x + d.state.rect.width,
685
+ d.state.rect.y + d.state.rect.height
686
+ ], ot = [
687
+ f.state.rect.x,
688
+ f.state.rect.y + f.state.rect.height
675
689
  ];
676
- return M({ source: rt, target: st });
690
+ return j({ source: E, target: ot });
677
691
  }), n && this.fit();
678
692
  }
679
693
  transition(t) {
@@ -684,21 +698,21 @@ class q {
684
698
  * Fit the content to the viewport.
685
699
  */
686
700
  async fit(t = this.options.maxInitialScale) {
687
- const s = this.svg.node(), { width: n, height: i } = s.getBoundingClientRect(), { fitRatio: a } = this.options, { x1: c, y1: r, x2: l, y2: d } = this.state.rect, h = l - c, p = d - r, u = Math.min(
701
+ const s = this.svg.node(), { width: n, height: o } = s.getBoundingClientRect(), { fitRatio: a } = this.options, { x1: l, y1: r, x2: c, y2: p } = this.state.rect, h = c - l, u = p - r, m = Math.min(
688
702
  n / h * a,
689
- i / p * a,
703
+ o / u * a,
690
704
  t
691
- ), g = ut.translate(
692
- (n - h * u) / 2 - c * u,
693
- (i - p * u) / 2 - r * u
694
- ).scale(u);
695
- return this.transition(this.svg).call(this.zoom.transform, g).end().catch(C);
705
+ ), g = dt.translate(
706
+ (n - h * m) / 2 - l * m,
707
+ (o - u * m) / 2 - r * m
708
+ ).scale(m);
709
+ return this.transition(this.svg).call(this.zoom.transform, g).end().catch(S);
696
710
  }
697
711
  findElement(t) {
698
712
  let s;
699
- return this.g.selectAll(y("g")).each(function(i) {
700
- i === t && (s = {
701
- data: i,
713
+ return this.g.selectAll(v("g")).each(function(o) {
714
+ o === t && (s = {
715
+ data: o,
702
716
  g: this
703
717
  });
704
718
  }), s;
@@ -707,52 +721,52 @@ class q {
707
721
  * Pan the content to make the provided node visible in the viewport.
708
722
  */
709
723
  async ensureVisible(t, s) {
710
- var k;
711
- const n = (k = this.findElement(t)) == null ? void 0 : k.data;
724
+ var b;
725
+ const n = (b = this.findElement(t)) == null ? void 0 : b.data;
712
726
  if (!n) return;
713
- const i = this.svg.node(), a = i.getBoundingClientRect(), c = w(i), [r, l] = [
727
+ const o = this.svg.node(), a = o.getBoundingClientRect(), l = w(o), [r, c] = [
714
728
  n.state.rect.x,
715
729
  n.state.rect.x + n.state.rect.width + 2
716
- ].map((b) => b * c.k + c.x), [d, h] = [
730
+ ].map((k) => k * l.k + l.x), [p, h] = [
717
731
  n.state.rect.y,
718
732
  n.state.rect.y + n.state.rect.height
719
- ].map((b) => b * c.k + c.y), p = {
733
+ ].map((k) => k * l.k + l.y), u = {
720
734
  left: 0,
721
735
  right: 0,
722
736
  top: 0,
723
737
  bottom: 0,
724
738
  ...s
725
- }, u = [p.left - r, a.width - p.right - l], g = [p.top - d, a.height - p.bottom - h], f = u[0] * u[1] > 0 ? P(u, Math.abs) / c.k : 0, x = g[0] * g[1] > 0 ? P(g, Math.abs) / c.k : 0;
726
- if (f || x) {
727
- const b = c.translate(f, x);
728
- return this.transition(this.svg).call(this.zoom.transform, b).end().catch(C);
739
+ }, m = [u.left - r, a.width - u.right - c], g = [u.top - p, a.height - u.bottom - h], y = m[0] * m[1] > 0 ? K(m, Math.abs) / l.k : 0, x = g[0] * g[1] > 0 ? K(g, Math.abs) / l.k : 0;
740
+ if (y || x) {
741
+ const k = l.translate(y, x);
742
+ return this.transition(this.svg).call(this.zoom.transform, k).end().catch(S);
729
743
  }
730
744
  }
731
745
  async centerNode(t, s) {
732
- var f;
733
- const n = (f = this.findElement(t)) == null ? void 0 : f.data;
746
+ var y;
747
+ const n = (y = this.findElement(t)) == null ? void 0 : y.data;
734
748
  if (!n) return;
735
- const i = this.svg.node(), a = i.getBoundingClientRect(), c = w(i), r = (n.state.rect.x + n.state.rect.width / 2) * c.k + c.x, l = (n.state.rect.y + n.state.rect.height / 2) * c.k + c.y, d = {
749
+ const o = this.svg.node(), a = o.getBoundingClientRect(), l = w(o), r = (n.state.rect.x + n.state.rect.width / 2) * l.k + l.x, c = (n.state.rect.y + n.state.rect.height / 2) * l.k + l.y, p = {
736
750
  left: 0,
737
751
  right: 0,
738
752
  top: 0,
739
753
  bottom: 0,
740
754
  ...s
741
- }, h = (d.left + a.width - d.right) / 2, p = (d.top + a.height - d.bottom) / 2, u = (h - r) / c.k, g = (p - l) / c.k;
742
- if (u || g) {
743
- const x = c.translate(u, g);
744
- return this.transition(this.svg).call(this.zoom.transform, x).end().catch(C);
755
+ }, h = (p.left + a.width - p.right) / 2, u = (p.top + a.height - p.bottom) / 2, m = (h - r) / l.k, g = (u - c) / l.k;
756
+ if (m || g) {
757
+ const x = l.translate(m, g);
758
+ return this.transition(this.svg).call(this.zoom.transform, x).end().catch(S);
745
759
  }
746
760
  }
747
761
  /**
748
762
  * Scale content with it pinned at the center of the viewport.
749
763
  */
750
764
  async rescale(t) {
751
- const s = this.svg.node(), { width: n, height: i } = s.getBoundingClientRect(), a = n / 2, c = i / 2, r = w(s), l = r.translate(
765
+ const s = this.svg.node(), { width: n, height: o } = s.getBoundingClientRect(), a = n / 2, l = o / 2, r = w(s), c = r.translate(
752
766
  (a - r.x) * (1 - t) / r.k,
753
- (c - r.y) * (1 - t) / r.k
767
+ (l - r.y) * (1 - t) / r.k
754
768
  ).scale(t);
755
- return this.transition(this.svg).call(this.zoom.transform, l).end().catch(C);
769
+ return this.transition(this.svg).call(this.zoom.transform, c).end().catch(S);
756
770
  }
757
771
  destroy() {
758
772
  this.svg.on(".zoom", null), this.svg.html(null), this.revokers.forEach((t) => {
@@ -760,21 +774,19 @@ class q {
760
774
  });
761
775
  }
762
776
  static create(t, s, n = null) {
763
- const i = new q(t, s);
764
- return n && i.setData(n).then(() => {
765
- i.fit();
766
- }), i;
777
+ const o = new tt(t, s);
778
+ return n && o.setData(n).then(() => {
779
+ o.fit();
780
+ }), o;
767
781
  }
768
782
  }
769
783
  export {
770
- q as Markmap,
771
- gt as defaultColorFn,
772
- K as defaultOptions,
773
- he as deriveOptions,
774
- de as globalCSS,
775
- I as isMacintosh,
776
- me as loadCSS,
777
- ge as loadJS,
778
- oe as refreshHook,
779
- ft as simpleHash
784
+ tt as Markmap,
785
+ xt as defaultColorFn,
786
+ U as defaultOptions,
787
+ ue as deriveOptions,
788
+ me as globalCSS,
789
+ V as isMacintosh,
790
+ le as refreshHook,
791
+ yt as simpleHash
780
792
  };