markmap-toolbar 0.13.3 → 0.13.5-alpha.0

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.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! markmap-toolbar v0.13.3 | MIT License */
1
+ /*! markmap-toolbar v0.13.5-alpha.0+5f11dcc | MIT License */
2
2
  import { mountDom } from '@gera2ld/jsx-dom';
3
3
  import { jsx, jsxs } from '@gera2ld/jsx-dom/jsx-runtime';
4
4
 
@@ -20,14 +20,33 @@ function _extends() {
20
20
  return _extends.apply(this, arguments);
21
21
  }
22
22
 
23
+ /*! markmap-common v0.13.4 | MIT License */
24
+
25
+ Math.random().toString(36).slice(2, 8);
26
+
27
+ function walkTree(tree, callback, key = 'children') {
28
+ const walk = (item, parent) => callback(item, () => {
29
+ var _item$key;
30
+
31
+ (_item$key = item[key]) == null ? void 0 : _item$key.forEach(child => {
32
+ walk(child, item);
33
+ });
34
+ }, parent);
35
+
36
+ walk(tree);
37
+ }
38
+
39
+ const clsToolbarItem = 'mm-toolbar-item';
40
+ const clsActive = 'active';
41
+
23
42
  function renderBrand() {
24
- return jsxs("div", {
43
+ return jsxs("a", {
25
44
  className: "mm-toolbar-brand",
45
+ href: "https://markmap.js.org/",
26
46
  children: [jsx("img", {
27
47
  alt: "markmap",
28
48
  src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACoFBMVEUAAAAAAAD//wAAAACAgAD//wAAAABVVQCqqgBAQACAQACAgABmZgBtbQAAAABgQABgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaFQAAAAAAAAAAAAAAAAAHAAARBQIdGAIYEwI/OgJYUQUfHQI+OgJDPgJJRARBPQRJQgRRSwRRTQRIQQRUTgRUUARZUgRSTQRPSQRjWgZORQRfWQZsZAhTTQRNRwRWUAZkXAZOSARUTgZPRwRRSQRoYwZWUQZWTgRbUwZmXQZoXghmXwdqYwdsYwdfVwVmXQdqYgdiWgVpYAl3bgl6cgl4cAqLggw8OAOWjA2Uig1OSAR2bQihlg55cAh5cAh6cQmMgwyOhAyUjA2QhQ2Uiw2Viw2soBCflA+voxGwpRGhlg+hlg+snxGroBGjmBCpnBC0pxKyphKxpRG2qhK0qBK5rBK5rBP/7h3/8B7/8R3/8h3/8R7/8h786x397B3+7R3EtxT66Rz66hz76hz86xz96xz97Bz+7Rz45xz56Bz76hz97Bz97B3MvRX15Rv25Rv45xz66Rz76hz97B3+7R3IuxX05Bv15Bv25Rz56Bz66Ry/sxPAsxPCtRTCthTNvxbZyxfczxfi0xjl1Rnn2Bnr2xrr3Brs3Rru3Rru3xrv3hrw3xrx4Bvx4Rvy4hvz4hvz4xv04xv05Bv14xv15Bv15Rv25Bv25Rv25Rz25hv35hv35xv45xv45xz55xz56Bv56Bz66Rv66Rz76Rv76Rz76hz86hv86xz+7h3/7R3/7h3/7x3/8B3/8B7/8R3/8R4Yqhj5AAAAq3RSTlMAAQECAgIDAwMEBAQFBwgICAwQERITFRYXGBkbHB0eHyQlJyguNTg8RUZISU5PV2FiY2RlZmdqa2xubnJzc3R2d3d3eXl5eXp7fH1+gIGCgoKDg4SEhIWGh4eHiYmJjIyMjZSUlJ+sra+zt7i4uru8ztHV1tbW2d7g4OHi4uPk5ufp7Ozv9fX29/f3+Pj6+vr7+/v7+/v7+/z8/Pz8/f39/f39/f3+/v7+/v7K6J1dAAACHklEQVQ4y2NgwAoYWdi5uLm5GXHIcrLCmMzYpDmAhKCKjoGtp40MFhVsDAwSxmmVEzZu2XvqSLkchjw3g0h445Ybd24vmTN1Usd5X3R5DgaNqgN35sycP2/GxMkTMRVwMOivvtO3YsWUm3duX790EcMKdgbNNXdnnJh1+9T6ipzU+FB0RzIyiFYB5WdfaElUF8TmTQ6GwH39J2bvypMHcpg4MAKKkUGo5s6KWRfyGRh4WJClGEGBCgS8DLobliy/3abMwM8NBYwQjXDgf3ryxOspyKYyg+RFTFwdnYDAzbrw+oLFm9Ot3J3AwNHFTBykQrhg++GDh48cOXzk4P6VZy8s230MyAGCwwcP7iyRBJpiur1n8hQIWHX27NkLi6bAwOSuow5ABeY7OydOhoCFIAULe6E8YFCf8QAqEC86evniZTA4tfLsuRXHr0E4ly9ePF0uC3KnpH1MZBQQxPoVgxyZ5RMdBQaRMc6yIEcihWbQGaA3k9G8CfQoN0pAtSoxCMACihk9qGtBQZ2LHtRIkRUMiqwd2TJADiswsrjQlAGju/o+MLrPNkWo8mFN1ewMWmvBCebQ0rKMJG87QzF0FRwMRuvugpLcrXu3rp7Zs61UCtMZ2nVHbk+fMX/+jMmTp3Sf9MLiULG45q237txaPG3yxPYrYQzYMo60RWbD3E27Ll68Uq+AK+uJqOlZBiSEKGLNnMA0iDfzwrI/NKgBOivk9piPdtUAAAAASUVORK5CYII="
29
- }), jsx("a", {
30
- href: "https://markmap.js.org/",
49
+ }), jsx("span", {
31
50
  children: "markmap"
32
51
  })]
33
52
  });
@@ -39,7 +58,7 @@ function renderItem({
39
58
  onClick
40
59
  }) {
41
60
  return jsx("div", {
42
- className: "mm-toolbar-item",
61
+ className: clsToolbarItem,
43
62
  title: title,
44
63
  onClick: onClick,
45
64
  children: content
@@ -88,7 +107,6 @@ class Toolbar {
88
107
  this.showBrand = true;
89
108
  this.registry = {};
90
109
  this.markmap = null;
91
- this.items = ['zoomIn', 'zoomOut', 'fit'];
92
110
  this.register({
93
111
  id: 'zoomIn',
94
112
  title: 'Zoom in',
@@ -107,6 +125,20 @@ class Toolbar {
107
125
  content: Toolbar.icon('M4 7h2v-2h2v4h-4zM4 13h2v2h2v-4h-4zM16 7h-2v-2h-2v4h4zM16 13h-2v2h-2v-4h4z'),
108
126
  onClick: this.getHandler(mm => mm.fit())
109
127
  });
128
+ this.register({
129
+ id: 'recurse',
130
+ title: 'Recursively toggle the next node',
131
+ content: Toolbar.icon('M16 4h-12v12h12v-8h-8v4h2v-2h4v4h-8v-8h10z'),
132
+ onClick: e => {
133
+ const button = e.target.closest(`.${clsToolbarItem}`);
134
+
135
+ const toggle = () => button.classList.toggle(clsActive);
136
+
137
+ const active = toggle();
138
+ this.handleRecurse(active, toggle);
139
+ }
140
+ });
141
+ this.setItems(Toolbar.defaultItems);
110
142
  }
111
143
 
112
144
  setBrand(show) {
@@ -132,6 +164,42 @@ class Toolbar {
132
164
  this.markmap = mm;
133
165
  }
134
166
 
167
+ handleRecurse(active, reset) {
168
+ const mm = this.markmap;
169
+
170
+ if (!active) {
171
+ var _mm$handleClick, _mm$handleClick$__res;
172
+
173
+ (_mm$handleClick = mm.handleClick) == null ? void 0 : (_mm$handleClick$__res = _mm$handleClick['__reset']) == null ? void 0 : _mm$handleClick$__res.call(_mm$handleClick);
174
+ return;
175
+ }
176
+
177
+ const originalClick = mm.handleClick;
178
+ if (!originalClick) return;
179
+
180
+ const handleClick = (_, d) => {
181
+ var _d$data$payload;
182
+
183
+ const fold = (_d$data$payload = d.data.payload) != null && _d$data$payload.fold ? 0 : 1;
184
+ walkTree(d.data, (item, next) => {
185
+ item.payload = _extends({}, item.payload, {
186
+ fold
187
+ });
188
+ next();
189
+ });
190
+ mm.renderData(d.data);
191
+ reset();
192
+
193
+ handleClick.__reset();
194
+ };
195
+
196
+ handleClick.__reset = () => {
197
+ mm.handleClick = originalClick;
198
+ };
199
+
200
+ mm.handleClick = handleClick;
201
+ }
202
+
135
203
  render() {
136
204
  const items = this.items.map(item => {
137
205
  if (typeof item === 'string') {
@@ -149,5 +217,6 @@ class Toolbar {
149
217
  }
150
218
 
151
219
  }
220
+ Toolbar.defaultItems = ['zoomIn', 'zoomOut', 'fit', 'recurse'];
152
221
 
153
222
  export { Toolbar };
package/dist/index.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! markmap-toolbar v0.13.3 | MIT License */
1
+ /*! markmap-toolbar v0.13.5-alpha.0+5f11dcc | MIT License */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
4
4
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -255,14 +255,33 @@ function mountDom(vnode) {
255
255
  return asDom(mount(vnode));
256
256
  }
257
257
 
258
+ /*! markmap-common v0.13.4 | MIT License */
259
+
260
+ Math.random().toString(36).slice(2, 8);
261
+
262
+ function walkTree(tree, callback, key = 'children') {
263
+ const walk = (item, parent) => callback(item, () => {
264
+ var _item$key;
265
+
266
+ (_item$key = item[key]) == null ? void 0 : _item$key.forEach(child => {
267
+ walk(child, item);
268
+ });
269
+ }, parent);
270
+
271
+ walk(tree);
272
+ }
273
+
274
+ const clsToolbarItem = 'mm-toolbar-item';
275
+ const clsActive = 'active';
276
+
258
277
  function renderBrand() {
259
- return jsxs("div", {
278
+ return jsxs("a", {
260
279
  className: "mm-toolbar-brand",
280
+ href: "https://markmap.js.org/",
261
281
  children: [jsx("img", {
262
282
  alt: "markmap",
263
283
  src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACoFBMVEUAAAAAAAD//wAAAACAgAD//wAAAABVVQCqqgBAQACAQACAgABmZgBtbQAAAABgQABgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaFQAAAAAAAAAAAAAAAAAHAAARBQIdGAIYEwI/OgJYUQUfHQI+OgJDPgJJRARBPQRJQgRRSwRRTQRIQQRUTgRUUARZUgRSTQRPSQRjWgZORQRfWQZsZAhTTQRNRwRWUAZkXAZOSARUTgZPRwRRSQRoYwZWUQZWTgRbUwZmXQZoXghmXwdqYwdsYwdfVwVmXQdqYgdiWgVpYAl3bgl6cgl4cAqLggw8OAOWjA2Uig1OSAR2bQihlg55cAh5cAh6cQmMgwyOhAyUjA2QhQ2Uiw2Viw2soBCflA+voxGwpRGhlg+hlg+snxGroBGjmBCpnBC0pxKyphKxpRG2qhK0qBK5rBK5rBP/7h3/8B7/8R3/8h3/8R7/8h786x397B3+7R3EtxT66Rz66hz76hz86xz96xz97Bz+7Rz45xz56Bz76hz97Bz97B3MvRX15Rv25Rv45xz66Rz76hz97B3+7R3IuxX05Bv15Bv25Rz56Bz66Ry/sxPAsxPCtRTCthTNvxbZyxfczxfi0xjl1Rnn2Bnr2xrr3Brs3Rru3Rru3xrv3hrw3xrx4Bvx4Rvy4hvz4hvz4xv04xv05Bv14xv15Bv15Rv25Bv25Rv25Rz25hv35hv35xv45xv45xz55xz56Bv56Bz66Rv66Rz76Rv76Rz76hz86hv86xz+7h3/7R3/7h3/7x3/8B3/8B7/8R3/8R4Yqhj5AAAAq3RSTlMAAQECAgIDAwMEBAQFBwgICAwQERITFRYXGBkbHB0eHyQlJyguNTg8RUZISU5PV2FiY2RlZmdqa2xubnJzc3R2d3d3eXl5eXp7fH1+gIGCgoKDg4SEhIWGh4eHiYmJjIyMjZSUlJ+sra+zt7i4uru8ztHV1tbW2d7g4OHi4uPk5ufp7Ozv9fX29/f3+Pj6+vr7+/v7+/v7+/z8/Pz8/f39/f39/f3+/v7+/v7K6J1dAAACHklEQVQ4y2NgwAoYWdi5uLm5GXHIcrLCmMzYpDmAhKCKjoGtp40MFhVsDAwSxmmVEzZu2XvqSLkchjw3g0h445Ybd24vmTN1Usd5X3R5DgaNqgN35sycP2/GxMkTMRVwMOivvtO3YsWUm3duX790EcMKdgbNNXdnnJh1+9T6ipzU+FB0RzIyiFYB5WdfaElUF8TmTQ6GwH39J2bvypMHcpg4MAKKkUGo5s6KWRfyGRh4WJClGEGBCgS8DLobliy/3abMwM8NBYwQjXDgf3ryxOspyKYyg+RFTFwdnYDAzbrw+oLFm9Ot3J3AwNHFTBykQrhg++GDh48cOXzk4P6VZy8s230MyAGCwwcP7iyRBJpiur1n8hQIWHX27NkLi6bAwOSuow5ABeY7OydOhoCFIAULe6E8YFCf8QAqEC86evniZTA4tfLsuRXHr0E4ly9ePF0uC3KnpH1MZBQQxPoVgxyZ5RMdBQaRMc6yIEcihWbQGaA3k9G8CfQoN0pAtSoxCMACihk9qGtBQZ2LHtRIkRUMiqwd2TJADiswsrjQlAGju/o+MLrPNkWo8mFN1ewMWmvBCebQ0rKMJG87QzF0FRwMRuvugpLcrXu3rp7Zs61UCtMZ2nVHbk+fMX/+jMmTp3Sf9MLiULG45q237txaPG3yxPYrYQzYMo60RWbD3E27Ll68Uq+AK+uJqOlZBiSEKGLNnMA0iDfzwrI/NKgBOivk9piPdtUAAAAASUVORK5CYII="
264
- }), jsx("a", {
265
- href: "https://markmap.js.org/",
284
+ }), jsx("span", {
266
285
  children: "markmap"
267
286
  })]
268
287
  });
@@ -274,7 +293,7 @@ function renderItem({
274
293
  onClick
275
294
  }) {
276
295
  return jsx("div", {
277
- className: "mm-toolbar-item",
296
+ className: clsToolbarItem,
278
297
  title: title,
279
298
  onClick: onClick,
280
299
  children: content
@@ -323,7 +342,6 @@ class Toolbar {
323
342
  this.showBrand = true;
324
343
  this.registry = {};
325
344
  this.markmap = null;
326
- this.items = ['zoomIn', 'zoomOut', 'fit'];
327
345
  this.register({
328
346
  id: 'zoomIn',
329
347
  title: 'Zoom in',
@@ -342,6 +360,20 @@ class Toolbar {
342
360
  content: Toolbar.icon('M4 7h2v-2h2v4h-4zM4 13h2v2h2v-4h-4zM16 7h-2v-2h-2v4h4zM16 13h-2v2h-2v-4h4z'),
343
361
  onClick: this.getHandler(mm => mm.fit())
344
362
  });
363
+ this.register({
364
+ id: 'recurse',
365
+ title: 'Recursively toggle the next node',
366
+ content: Toolbar.icon('M16 4h-12v12h12v-8h-8v4h2v-2h4v4h-8v-8h10z'),
367
+ onClick: e => {
368
+ const button = e.target.closest(`.${clsToolbarItem}`);
369
+
370
+ const toggle = () => button.classList.toggle(clsActive);
371
+
372
+ const active = toggle();
373
+ this.handleRecurse(active, toggle);
374
+ }
375
+ });
376
+ this.setItems(Toolbar.defaultItems);
345
377
  }
346
378
 
347
379
  setBrand(show) {
@@ -367,6 +399,42 @@ class Toolbar {
367
399
  this.markmap = mm;
368
400
  }
369
401
 
402
+ handleRecurse(active, reset) {
403
+ const mm = this.markmap;
404
+
405
+ if (!active) {
406
+ var _mm$handleClick, _mm$handleClick$__res;
407
+
408
+ (_mm$handleClick = mm.handleClick) == null ? void 0 : (_mm$handleClick$__res = _mm$handleClick['__reset']) == null ? void 0 : _mm$handleClick$__res.call(_mm$handleClick);
409
+ return;
410
+ }
411
+
412
+ const originalClick = mm.handleClick;
413
+ if (!originalClick) return;
414
+
415
+ const handleClick = (_, d) => {
416
+ var _d$data$payload;
417
+
418
+ const fold = (_d$data$payload = d.data.payload) != null && _d$data$payload.fold ? 0 : 1;
419
+ walkTree(d.data, (item, next) => {
420
+ item.payload = _extends({}, item.payload, {
421
+ fold
422
+ });
423
+ next();
424
+ });
425
+ mm.renderData(d.data);
426
+ reset();
427
+
428
+ handleClick.__reset();
429
+ };
430
+
431
+ handleClick.__reset = () => {
432
+ mm.handleClick = originalClick;
433
+ };
434
+
435
+ mm.handleClick = handleClick;
436
+ }
437
+
370
438
  render() {
371
439
  const items = this.items.map(item => {
372
440
  if (typeof item === 'string') {
@@ -384,6 +452,7 @@ class Toolbar {
384
452
  }
385
453
 
386
454
  }
455
+ Toolbar.defaultItems = ['zoomIn', 'zoomOut', 'fit', 'recurse'];
387
456
 
388
457
  exports.Toolbar = Toolbar;
389
458
 
@@ -1,3 +1,4 @@
1
- /*! markmap-toolbar v0.13.3 | MIT License */
2
- !function(A,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((A="undefined"!=typeof globalThis?globalThis:A||self).markmap=A.markmap||{})}(this,(function(A){"use strict";function t(){return t=Object.assign||function(A){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(A[r]=e[r])}return A},t.apply(this,arguments)}
3
- /*! @gera2ld/jsx-dom v2.1.1 | ISC License */var e="http://www.w3.org/1999/xlink",r={show:e,actuate:e,href:e};function n(A,t){var e;if("string"==typeof A)e=1;else{if("function"!=typeof A)throw new Error("Invalid VNode type");e=2}return{vtype:e,type:A,props:t}}var i=n;function o(A){return A.children}var s={isSvg:!1};function a(A,t){if(1===t.type)null!=t.node&&A.append(t.node);else{if(4!==t.type)throw new Error("Unkown ref type "+JSON.stringify(t));t.children.forEach((function(t){a(A,t)}))}}var h={className:"class",labelFor:"for"};function l(A,t,e,n){if(t=h[t]||t,!0===e)A.setAttribute(t,"");else if(!1===e)A.removeAttribute(t);else{var i=n?r[t]:void 0;void 0!==i?A.setAttributeNS(i,t,e):A.setAttribute(t,e)}}function c(A,t){if(void 0===t&&(t=s),null==A||"boolean"==typeof A)return{type:1,node:null};if(A instanceof Node)return{type:1,node:A};if(2===(null==(h=A)?void 0:h.vtype)){var e=A,r=e.type,n=e.props;if(r===o){var i=document.createDocumentFragment();if(n.children)a(i,c(n.children,t));return{type:1,node:i}}return c(r(n),t)}var h;if(function(A){return"string"==typeof A||"number"==typeof A}(A))return{type:1,node:document.createTextNode(""+A)};if(function(A){return 1===(null==A?void 0:A.vtype)}(A)){var v,u,f=A,d=f.type,g=f.props;if(t.isSvg||"svg"!==d||(t=Object.assign({},t,{isSvg:!0})),function(A,t,e){for(var r in t)"key"!==r&&"children"!==r&&"ref"!==r&&("dangerouslySetInnerHTML"===r?A.innerHTML=t[r].__html:"innerHTML"===r||"textContent"===r||"innerText"===r?A[r]=t[r]:r.startsWith("on")?A[r.toLowerCase()]=t[r]:l(A,r,t[r],e.isSvg))}(v=t.isSvg?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d),g,t),g.children){var p=t;t.isSvg&&"foreignObject"===d&&(p=Object.assign({},p,{isSvg:!1})),u=c(g.children,p)}null!=u&&a(v,u);var m=g.ref;return"function"==typeof m&&m(v),{type:1,node:v}}if(Array.isArray(A))return{type:4,children:A.map((function(A){return c(A,t)}))};throw new Error("mount: Invalid Vnode!")}function v(A){for(var t=[],e=0;e<A.length;e+=1){var r=A[e];Array.isArray(r)?t=t.concat(v(r)):null!=r&&t.push(r)}return t}function u(A){return 1===A.type?A.node:A.children.map(u)}function f(A){return Array.isArray(A)?v(A.map(f)):u(c(A))}function d({title:A,content:t,onClick:e}){return n("div",{className:"mm-toolbar-item",title:A,onClick:e,children:t})}let g;class p{static create(A){const t=new p;return t.attach(A),t.render()}static icon(A,e={}){return e=t({stroke:"none",fill:"currentColor","fill-rule":"evenodd"},e),n("svg",{width:"20",height:"20",viewBox:"0 0 20 20",children:n("path",t({},e,{d:A}))})}constructor(){this.showBrand=!0,this.registry={},this.markmap=null,this.items=["zoomIn","zoomOut","fit"],this.register({id:"zoomIn",title:"Zoom in",content:p.icon("M9 5v4h-4v2h4v4h2v-4h4v-2h-4v-4z"),onClick:this.getHandler((A=>A.rescale(1.25)))}),this.register({id:"zoomOut",title:"Zoom out",content:p.icon("M5 9h10v2h-10z"),onClick:this.getHandler((A=>A.rescale(.8)))}),this.register({id:"fit",title:"Fit window size",content:p.icon("M4 7h2v-2h2v4h-4zM4 13h2v2h2v-4h-4zM16 7h-2v-2h-2v4h4zM16 13h-2v2h-2v-4h4z"),onClick:this.getHandler((A=>A.fit()))})}setBrand(A){this.showBrand=A}register(A){this.registry[A.id]=A}getHandler(A){var t;return t=A,A=async(...A)=>{if(!g){g=t(...A);try{await g}finally{g=null}}},()=>{this.markmap&&A(this.markmap)}}setItems(A){this.items=[...A]}attach(A){this.markmap=A}render(){const A=this.items.map((A=>{if("string"==typeof A){const t=this.registry[A];return t||console.warn(`[markmap-toolbar] ${A} not found`),t}return A})).filter(Boolean);return f(i("div",{className:"mm-toolbar",children:[this.showBrand&&i("div",{className:"mm-toolbar-brand",children:[n("img",{alt:"markmap",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACoFBMVEUAAAAAAAD//wAAAACAgAD//wAAAABVVQCqqgBAQACAQACAgABmZgBtbQAAAABgQABgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaFQAAAAAAAAAAAAAAAAAHAAARBQIdGAIYEwI/OgJYUQUfHQI+OgJDPgJJRARBPQRJQgRRSwRRTQRIQQRUTgRUUARZUgRSTQRPSQRjWgZORQRfWQZsZAhTTQRNRwRWUAZkXAZOSARUTgZPRwRRSQRoYwZWUQZWTgRbUwZmXQZoXghmXwdqYwdsYwdfVwVmXQdqYgdiWgVpYAl3bgl6cgl4cAqLggw8OAOWjA2Uig1OSAR2bQihlg55cAh5cAh6cQmMgwyOhAyUjA2QhQ2Uiw2Viw2soBCflA+voxGwpRGhlg+hlg+snxGroBGjmBCpnBC0pxKyphKxpRG2qhK0qBK5rBK5rBP/7h3/8B7/8R3/8h3/8R7/8h786x397B3+7R3EtxT66Rz66hz76hz86xz96xz97Bz+7Rz45xz56Bz76hz97Bz97B3MvRX15Rv25Rv45xz66Rz76hz97B3+7R3IuxX05Bv15Bv25Rz56Bz66Ry/sxPAsxPCtRTCthTNvxbZyxfczxfi0xjl1Rnn2Bnr2xrr3Brs3Rru3Rru3xrv3hrw3xrx4Bvx4Rvy4hvz4hvz4xv04xv05Bv14xv15Bv15Rv25Bv25Rv25Rz25hv35hv35xv45xv45xz55xz56Bv56Bz66Rv66Rz76Rv76Rz76hz86hv86xz+7h3/7R3/7h3/7x3/8B3/8B7/8R3/8R4Yqhj5AAAAq3RSTlMAAQECAgIDAwMEBAQFBwgICAwQERITFRYXGBkbHB0eHyQlJyguNTg8RUZISU5PV2FiY2RlZmdqa2xubnJzc3R2d3d3eXl5eXp7fH1+gIGCgoKDg4SEhIWGh4eHiYmJjIyMjZSUlJ+sra+zt7i4uru8ztHV1tbW2d7g4OHi4uPk5ufp7Ozv9fX29/f3+Pj6+vr7+/v7+/v7+/z8/Pz8/f39/f39/f3+/v7+/v7K6J1dAAACHklEQVQ4y2NgwAoYWdi5uLm5GXHIcrLCmMzYpDmAhKCKjoGtp40MFhVsDAwSxmmVEzZu2XvqSLkchjw3g0h445Ybd24vmTN1Usd5X3R5DgaNqgN35sycP2/GxMkTMRVwMOivvtO3YsWUm3duX790EcMKdgbNNXdnnJh1+9T6ipzU+FB0RzIyiFYB5WdfaElUF8TmTQ6GwH39J2bvypMHcpg4MAKKkUGo5s6KWRfyGRh4WJClGEGBCgS8DLobliy/3abMwM8NBYwQjXDgf3ryxOspyKYyg+RFTFwdnYDAzbrw+oLFm9Ot3J3AwNHFTBykQrhg++GDh48cOXzk4P6VZy8s230MyAGCwwcP7iyRBJpiur1n8hQIWHX27NkLi6bAwOSuow5ABeY7OydOhoCFIAULe6E8YFCf8QAqEC86evniZTA4tfLsuRXHr0E4ly9ePF0uC3KnpH1MZBQQxPoVgxyZ5RMdBQaRMc6yIEcihWbQGaA3k9G8CfQoN0pAtSoxCMACihk9qGtBQZ2LHtRIkRUMiqwd2TJADiswsrjQlAGju/o+MLrPNkWo8mFN1ewMWmvBCebQ0rKMJG87QzF0FRwMRuvugpLcrXu3rp7Zs61UCtMZ2nVHbk+fMX/+jMmTp3Sf9MLiULG45q237txaPG3yxPYrYQzYMo60RWbD3E27Ll68Uq+AK+uJqOlZBiSEKGLNnMA0iDfzwrI/NKgBOivk9piPdtUAAAAASUVORK5CYII="}),n("a",{href:"https://markmap.js.org/",children:"markmap"})]}),A.map(d)]}))}}A.Toolbar=p}));
1
+ /*! markmap-toolbar v0.13.5-alpha.0+5f11dcc | MIT License */
2
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).markmap=t.markmap||{})}(this,(function(t){"use strict";function e(){return e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var A in r)Object.prototype.hasOwnProperty.call(r,A)&&(t[A]=r[A])}return t},e.apply(this,arguments)}
3
+ /*! @gera2ld/jsx-dom v2.1.1 | ISC License */var r="http://www.w3.org/1999/xlink",A={show:r,actuate:r,href:r};function n(t,e){var r;if("string"==typeof t)r=1;else{if("function"!=typeof t)throw new Error("Invalid VNode type");r=2}return{vtype:r,type:t,props:e}}var i=n;function o(t){return t.children}var a={isSvg:!1};function s(t,e){if(1===e.type)null!=e.node&&t.append(e.node);else{if(4!==e.type)throw new Error("Unkown ref type "+JSON.stringify(e));e.children.forEach((function(e){s(t,e)}))}}var l={className:"class",labelFor:"for"};function h(t,e,r,n){if(e=l[e]||e,!0===r)t.setAttribute(e,"");else if(!1===r)t.removeAttribute(e);else{var i=n?A[e]:void 0;void 0!==i?t.setAttributeNS(i,e,r):t.setAttribute(e,r)}}function c(t,e){if(void 0===e&&(e=a),null==t||"boolean"==typeof t)return{type:1,node:null};if(t instanceof Node)return{type:1,node:t};if(2===(null==(l=t)?void 0:l.vtype)){var r=t,A=r.type,n=r.props;if(A===o){var i=document.createDocumentFragment();if(n.children)s(i,c(n.children,e));return{type:1,node:i}}return c(A(n),e)}var l;if(function(t){return"string"==typeof t||"number"==typeof t}(t))return{type:1,node:document.createTextNode(""+t)};if(function(t){return 1===(null==t?void 0:t.vtype)}(t)){var d,u,v=t,f=v.type,g=v.props;if(e.isSvg||"svg"!==f||(e=Object.assign({},e,{isSvg:!0})),function(t,e,r){for(var A in e)"key"!==A&&"children"!==A&&"ref"!==A&&("dangerouslySetInnerHTML"===A?t.innerHTML=e[A].__html:"innerHTML"===A||"textContent"===A||"innerText"===A?t[A]=e[A]:A.startsWith("on")?t[A.toLowerCase()]=e[A]:h(t,A,e[A],r.isSvg))}(d=e.isSvg?document.createElementNS("http://www.w3.org/2000/svg",f):document.createElement(f),g,e),g.children){var p=e;e.isSvg&&"foreignObject"===f&&(p=Object.assign({},p,{isSvg:!1})),u=c(g.children,p)}null!=u&&s(d,u);var m=g.ref;return"function"==typeof m&&m(d),{type:1,node:d}}if(Array.isArray(t))return{type:4,children:t.map((function(t){return c(t,e)}))};throw new Error("mount: Invalid Vnode!")}function d(t){for(var e=[],r=0;r<t.length;r+=1){var A=t[r];Array.isArray(A)?e=e.concat(d(A)):null!=A&&e.push(A)}return e}function u(t){return 1===t.type?t.node:t.children.map(u)}function v(t){return Array.isArray(t)?d(t.map(v)):u(c(t))}
4
+ /*! markmap-common v0.13.4 | MIT License */Math.random().toString(36).slice(2,8);const f="mm-toolbar-item";function g({title:t,content:e,onClick:r}){return n("div",{className:f,title:t,onClick:r,children:e})}let p;class m{static create(t){const e=new m;return e.attach(t),e.render()}static icon(t,r={}){return r=e({stroke:"none",fill:"currentColor","fill-rule":"evenodd"},r),n("svg",{width:"20",height:"20",viewBox:"0 0 20 20",children:n("path",e({},r,{d:t}))})}constructor(){this.showBrand=!0,this.registry={},this.markmap=null,this.register({id:"zoomIn",title:"Zoom in",content:m.icon("M9 5v4h-4v2h4v4h2v-4h4v-2h-4v-4z"),onClick:this.getHandler((t=>t.rescale(1.25)))}),this.register({id:"zoomOut",title:"Zoom out",content:m.icon("M5 9h10v2h-10z"),onClick:this.getHandler((t=>t.rescale(.8)))}),this.register({id:"fit",title:"Fit window size",content:m.icon("M4 7h2v-2h2v4h-4zM4 13h2v2h2v-4h-4zM16 7h-2v-2h-2v4h4zM16 13h-2v2h-2v-4h4z"),onClick:this.getHandler((t=>t.fit()))}),this.register({id:"recurse",title:"Recursively toggle the next node",content:m.icon("M16 4h-12v12h12v-8h-8v4h2v-2h4v4h-8v-8h10z"),onClick:t=>{const e=t.target.closest(".mm-toolbar-item"),r=()=>e.classList.toggle("active"),A=r();this.handleRecurse(A,r)}}),this.setItems(m.defaultItems)}setBrand(t){this.showBrand=t}register(t){this.registry[t.id]=t}getHandler(t){var e;return e=t,t=async(...t)=>{if(!p){p=e(...t);try{await p}finally{p=null}}},()=>{this.markmap&&t(this.markmap)}}setItems(t){this.items=[...t]}attach(t){this.markmap=t}handleRecurse(t,r){const A=this.markmap;var n,i;if(!t)return void(null==(n=A.handleClick)||null==(i=n.__reset)||i.call(n));const o=A.handleClick;if(!o)return;const a=(t,n)=>{var i;const o=null!=(i=n.data.payload)&&i.fold?0:1;!function(t,e,r="children"){const A=(t,n)=>e(t,(()=>{var e;null==(e=t[r])||e.forEach((e=>{A(e,t)}))}),n);A(t)}(n.data,((t,r)=>{t.payload=e({},t.payload,{fold:o}),r()})),A.renderData(n.data),r(),a.__reset()};a.__reset=()=>{A.handleClick=o},A.handleClick=a}render(){const t=this.items.map((t=>{if("string"==typeof t){const e=this.registry[t];return e||console.warn(`[markmap-toolbar] ${t} not found`),e}return t})).filter(Boolean);return v(i("div",{className:"mm-toolbar",children:[this.showBrand&&i("a",{className:"mm-toolbar-brand",href:"https://markmap.js.org/",children:[n("img",{alt:"markmap",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACoFBMVEUAAAAAAAD//wAAAACAgAD//wAAAABVVQCqqgBAQACAQACAgABmZgBtbQAAAABgQABgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaFQAAAAAAAAAAAAAAAAAHAAARBQIdGAIYEwI/OgJYUQUfHQI+OgJDPgJJRARBPQRJQgRRSwRRTQRIQQRUTgRUUARZUgRSTQRPSQRjWgZORQRfWQZsZAhTTQRNRwRWUAZkXAZOSARUTgZPRwRRSQRoYwZWUQZWTgRbUwZmXQZoXghmXwdqYwdsYwdfVwVmXQdqYgdiWgVpYAl3bgl6cgl4cAqLggw8OAOWjA2Uig1OSAR2bQihlg55cAh5cAh6cQmMgwyOhAyUjA2QhQ2Uiw2Viw2soBCflA+voxGwpRGhlg+hlg+snxGroBGjmBCpnBC0pxKyphKxpRG2qhK0qBK5rBK5rBP/7h3/8B7/8R3/8h3/8R7/8h786x397B3+7R3EtxT66Rz66hz76hz86xz96xz97Bz+7Rz45xz56Bz76hz97Bz97B3MvRX15Rv25Rv45xz66Rz76hz97B3+7R3IuxX05Bv15Bv25Rz56Bz66Ry/sxPAsxPCtRTCthTNvxbZyxfczxfi0xjl1Rnn2Bnr2xrr3Brs3Rru3Rru3xrv3hrw3xrx4Bvx4Rvy4hvz4hvz4xv04xv05Bv14xv15Bv15Rv25Bv25Rv25Rz25hv35hv35xv45xv45xz55xz56Bv56Bz66Rv66Rz76Rv76Rz76hz86hv86xz+7h3/7R3/7h3/7x3/8B3/8B7/8R3/8R4Yqhj5AAAAq3RSTlMAAQECAgIDAwMEBAQFBwgICAwQERITFRYXGBkbHB0eHyQlJyguNTg8RUZISU5PV2FiY2RlZmdqa2xubnJzc3R2d3d3eXl5eXp7fH1+gIGCgoKDg4SEhIWGh4eHiYmJjIyMjZSUlJ+sra+zt7i4uru8ztHV1tbW2d7g4OHi4uPk5ufp7Ozv9fX29/f3+Pj6+vr7+/v7+/v7+/z8/Pz8/f39/f39/f3+/v7+/v7K6J1dAAACHklEQVQ4y2NgwAoYWdi5uLm5GXHIcrLCmMzYpDmAhKCKjoGtp40MFhVsDAwSxmmVEzZu2XvqSLkchjw3g0h445Ybd24vmTN1Usd5X3R5DgaNqgN35sycP2/GxMkTMRVwMOivvtO3YsWUm3duX790EcMKdgbNNXdnnJh1+9T6ipzU+FB0RzIyiFYB5WdfaElUF8TmTQ6GwH39J2bvypMHcpg4MAKKkUGo5s6KWRfyGRh4WJClGEGBCgS8DLobliy/3abMwM8NBYwQjXDgf3ryxOspyKYyg+RFTFwdnYDAzbrw+oLFm9Ot3J3AwNHFTBykQrhg++GDh48cOXzk4P6VZy8s230MyAGCwwcP7iyRBJpiur1n8hQIWHX27NkLi6bAwOSuow5ABeY7OydOhoCFIAULe6E8YFCf8QAqEC86evniZTA4tfLsuRXHr0E4ly9ePF0uC3KnpH1MZBQQxPoVgxyZ5RMdBQaRMc6yIEcihWbQGaA3k9G8CfQoN0pAtSoxCMACihk9qGtBQZ2LHtRIkRUMiqwd2TJADiswsrjQlAGju/o+MLrPNkWo8mFN1ewMWmvBCebQ0rKMJG87QzF0FRwMRuvugpLcrXu3rp7Zs61UCtMZ2nVHbk+fMX/+jMmTp3Sf9MLiULG45q237txaPG3yxPYrYQzYMo60RWbD3E27Ll68Uq+AK+uJqOlZBiSEKGLNnMA0iDfzwrI/NKgBOivk9piPdtUAAAAASUVORK5CYII="}),n("span",{children:"markmap"})]}),t.map(g)]}))}}m.defaultItems=["zoomIn","zoomOut","fit","recurse"],t.Toolbar=m}));
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .mm-toolbar{--tw-border-opacity:1;--tw-bg-opacity:1;align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.25rem;border-style:solid;border-width:1px;display:flex;line-height:1;-moz-user-select:none;user-select:none}.mm-toolbar:hover{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.mm-toolbar svg{display:block}.mm-toolbar>*{cursor:pointer;margin:.25rem}.mm-toolbar>*>*{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.mm-toolbar>:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity));border-radius:.25rem}.mm-toolbar>:hover>*{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.mm-toolbar-brand>img{height:1rem;vertical-align:middle;width:1rem}.mm-toolbar-brand>a{display:inline-block;font-size:.75rem;line-height:1rem;padding-right:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none}.mm-toolbar-item>*{height:20px;line-height:20px;min-width:20px;text-align:center}
1
+ .mm-toolbar{--tw-border-opacity:1;--tw-bg-opacity:1;align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.25rem;border-style:solid;border-width:1px;display:flex;line-height:1;padding:.25rem;-moz-user-select:none;user-select:none}.mm-toolbar:hover{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.mm-toolbar svg{display:block}.mm-toolbar a{display:inline-block;-webkit-text-decoration-line:none;text-decoration-line:none}.mm-toolbar-brand>img{height:1rem;vertical-align:middle;width:1rem}.mm-toolbar-brand>span{padding-left:.25rem;padding-right:.25rem}.mm-toolbar-brand:not(:first-child),.mm-toolbar-item:not(:first-child){margin-left:.25rem}.mm-toolbar-brand>*,.mm-toolbar-item>*{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity));cursor:pointer;font-size:.75rem;height:20px;line-height:1rem;line-height:20px;min-width:20px;text-align:center}.mm-toolbar-brand.active,.mm-toolbar-brand:hover,.mm-toolbar-item.active,.mm-toolbar-item:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity));border-radius:.25rem}.mm-toolbar-brand.active>*,.mm-toolbar-brand:hover>*,.mm-toolbar-item.active>*,.mm-toolbar-item:hover>*{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.mm-toolbar-brand.active,.mm-toolbar-item.active{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markmap-toolbar",
3
- "version": "0.13.3",
3
+ "version": "0.13.5-alpha.0+5f11dcc",
4
4
  "description": "Extensible toolbar for markmap",
5
5
  "author": "Gerald <gera2ld@live.com>",
6
6
  "license": "MIT",
@@ -24,11 +24,11 @@
24
24
  },
25
25
  "typings": "types/index.d.ts",
26
26
  "devDependencies": {
27
- "markmap-view": "^0.13.3"
27
+ "markmap-view": "^0.13.5-alpha.0+5f11dcc"
28
28
  },
29
29
  "dependencies": {
30
30
  "@babel/runtime": "^7.16.3",
31
31
  "@gera2ld/jsx-dom": "^2.1.1"
32
32
  },
33
- "gitHead": "01d316cf6e7375cc3adfc94ccd257797fc0462db"
33
+ "gitHead": "5f11dcc8115a3e5ce4f39815dac4a844bc925f21"
34
34
  }
@@ -11,9 +11,10 @@ export declare class Toolbar {
11
11
  private showBrand;
12
12
  private registry;
13
13
  private markmap;
14
- private items;
14
+ static defaultItems: (string | IToolbarItem)[];
15
+ items: (string | IToolbarItem)[];
15
16
  static create(mm: Markmap): Node;
16
- static icon(path: string, attrs?: {}): any;
17
+ static icon(path: string, attrs?: {}): import("@gera2ld/jsx-dom").VNode;
17
18
  constructor();
18
19
  setBrand(show: boolean): void;
19
20
  register(data: IToolbarItem & {
@@ -22,6 +23,7 @@ export declare class Toolbar {
22
23
  getHandler(handle: (mm: Markmap) => Promise<void>): () => void;
23
24
  setItems(items: (string | IToolbarItem)[]): void;
24
25
  attach(mm: Markmap): void;
26
+ handleRecurse(active: boolean, reset: () => void): void;
25
27
  render(): Node;
26
28
  }
27
29
  export {};