markmap-view 0.18.2 → 0.18.4-alpha.3

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