markmap-toolbar 0.15.0-alpha.0 → 0.15.0-alpha.1

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/README.md CHANGED
@@ -15,7 +15,7 @@ $ npm i markmap-toolbar
15
15
  ```js
16
16
  import { Toolbar } from 'markmap-toolbar';
17
17
 
18
- const el = Toolbar.create(mm);
18
+ const { el } = Toolbar.create(mm);
19
19
  el.style.position = 'absolute';
20
20
  el.style.bottom = '0.5rem';
21
21
  el.style.right = '0.5rem';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! markmap-toolbar v0.15.0-alpha.0 | MIT License */
1
+ /*! markmap-toolbar v0.15.0-alpha.1+1308d8e | 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) :
@@ -251,7 +251,8 @@ class Toolbar {
251
251
  static create(mm) {
252
252
  const toolbar = new Toolbar();
253
253
  toolbar.attach(mm);
254
- return toolbar.render();
254
+ toolbar.render();
255
+ return toolbar;
255
256
  }
256
257
  static icon(path, attrs = {}) {
257
258
  attrs = _extends({
@@ -272,6 +273,9 @@ class Toolbar {
272
273
  this.showBrand = true;
273
274
  this.registry = {};
274
275
  this.markmap = null;
276
+ this.el = mountDom(jsx("div", {
277
+ className: "mm-toolbar"
278
+ }));
275
279
  this.register({
276
280
  id: 'zoomIn',
277
281
  title: 'Zoom in',
@@ -290,10 +294,11 @@ class Toolbar {
290
294
  content: Toolbar.icon('M4 7h2v-2h2v4h-4zM4 13h2v2h2v-4h-4zM16 7h-2v-2h-2v4h4zM16 13h-2v2h-2v-4h4z'),
291
295
  onClick: this.getHandler(mm => mm.fit())
292
296
  });
293
- this.setItems(Toolbar.defaultItems);
297
+ this.items = Toolbar.defaultItems;
294
298
  }
295
299
  setBrand(show) {
296
300
  this.showBrand = show;
301
+ return this.render();
297
302
  }
298
303
  register(data) {
299
304
  this.registry[data.id] = data;
@@ -306,6 +311,7 @@ class Toolbar {
306
311
  }
307
312
  setItems(items) {
308
313
  this.items = [...items];
314
+ return this.render();
309
315
  }
310
316
  attach(mm) {
311
317
  this.markmap = mm;
@@ -319,13 +325,16 @@ class Toolbar {
319
325
  }
320
326
  return item;
321
327
  }).filter(Boolean);
322
- return mountDom(jsxs("div", {
323
- className: "mm-toolbar",
328
+ while (this.el.firstChild) {
329
+ this.el.firstChild.remove();
330
+ }
331
+ this.el.append(mountDom(jsxs(Fragment, {
324
332
  children: [this.showBrand && renderBrand(), items.map(renderItem)]
325
- }));
333
+ })));
334
+ return this.el;
326
335
  }
327
336
  }
328
- Toolbar.defaultItems = ['zoomIn', 'zoomOut', 'fit', 'recurse'];
337
+ Toolbar.defaultItems = ['zoomIn', 'zoomOut', 'fit'];
329
338
 
330
339
  exports.Toolbar = Toolbar;
331
340
 
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- /*! markmap-toolbar v0.15.0-alpha.0 | MIT License */
1
+ /*! markmap-toolbar v0.15.0-alpha.1+1308d8e | MIT License */
2
2
  import { mountDom } from '@gera2ld/jsx-dom';
3
- import { jsx, jsxs } from '@gera2ld/jsx-dom/jsx-runtime';
3
+ import { jsx, jsxs, Fragment } from '@gera2ld/jsx-dom/jsx-runtime';
4
4
 
5
5
  function _extends() {
6
6
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -58,7 +58,8 @@ class Toolbar {
58
58
  static create(mm) {
59
59
  const toolbar = new Toolbar();
60
60
  toolbar.attach(mm);
61
- return toolbar.render();
61
+ toolbar.render();
62
+ return toolbar;
62
63
  }
63
64
  static icon(path, attrs = {}) {
64
65
  attrs = _extends({
@@ -79,6 +80,9 @@ class Toolbar {
79
80
  this.showBrand = true;
80
81
  this.registry = {};
81
82
  this.markmap = null;
83
+ this.el = mountDom(jsx("div", {
84
+ className: "mm-toolbar"
85
+ }));
82
86
  this.register({
83
87
  id: 'zoomIn',
84
88
  title: 'Zoom in',
@@ -97,10 +101,11 @@ class Toolbar {
97
101
  content: Toolbar.icon('M4 7h2v-2h2v4h-4zM4 13h2v2h2v-4h-4zM16 7h-2v-2h-2v4h4zM16 13h-2v2h-2v-4h4z'),
98
102
  onClick: this.getHandler(mm => mm.fit())
99
103
  });
100
- this.setItems(Toolbar.defaultItems);
104
+ this.items = Toolbar.defaultItems;
101
105
  }
102
106
  setBrand(show) {
103
107
  this.showBrand = show;
108
+ return this.render();
104
109
  }
105
110
  register(data) {
106
111
  this.registry[data.id] = data;
@@ -113,6 +118,7 @@ class Toolbar {
113
118
  }
114
119
  setItems(items) {
115
120
  this.items = [...items];
121
+ return this.render();
116
122
  }
117
123
  attach(mm) {
118
124
  this.markmap = mm;
@@ -126,12 +132,15 @@ class Toolbar {
126
132
  }
127
133
  return item;
128
134
  }).filter(Boolean);
129
- return mountDom(jsxs("div", {
130
- className: "mm-toolbar",
135
+ while (this.el.firstChild) {
136
+ this.el.firstChild.remove();
137
+ }
138
+ this.el.append(mountDom(jsxs(Fragment, {
131
139
  children: [this.showBrand && renderBrand(), items.map(renderItem)]
132
- }));
140
+ })));
141
+ return this.el;
133
142
  }
134
143
  }
135
- Toolbar.defaultItems = ['zoomIn', 'zoomOut', 'fit', 'recurse'];
144
+ Toolbar.defaultItems = ['zoomIn', 'zoomOut', 'fit'];
136
145
 
137
146
  export { Toolbar };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markmap-toolbar",
3
- "version": "0.15.0-alpha.0",
3
+ "version": "0.15.0-alpha.1+1308d8e",
4
4
  "description": "Extensible toolbar for markmap",
5
5
  "author": "Gerald <gera2ld@live.com>",
6
6
  "license": "MIT",
@@ -42,5 +42,5 @@
42
42
  "@babel/runtime": "^7.16.3",
43
43
  "@gera2ld/jsx-dom": "^2.1.1"
44
44
  },
45
- "gitHead": "cea14d4791b8483481a99baa5d256017f52f267c"
45
+ "gitHead": "1308d8ea5a6e6b24b6c5f053a50cc319df4ad93d"
46
46
  }
@@ -1,7 +1,7 @@
1
1
  import { VChildren } from '@gera2ld/jsx-dom';
2
2
  import type { Markmap } from 'markmap-view';
3
3
  import './style.css';
4
- interface IToolbarItem {
4
+ export interface IToolbarItem {
5
5
  id?: string;
6
6
  title?: string;
7
7
  content: VChildren;
@@ -12,17 +12,17 @@ export declare class Toolbar {
12
12
  private registry;
13
13
  private markmap;
14
14
  static defaultItems: (string | IToolbarItem)[];
15
+ el: HTMLDivElement;
15
16
  items: (string | IToolbarItem)[];
16
- static create(mm: Markmap): Node;
17
+ static create(mm: Markmap): Toolbar;
17
18
  static icon(path: string, attrs?: {}): import("@gera2ld/jsx-dom").VNode;
18
19
  constructor();
19
- setBrand(show: boolean): void;
20
+ setBrand(show: boolean): HTMLDivElement;
20
21
  register(data: IToolbarItem & {
21
22
  id: string;
22
23
  }): void;
23
24
  getHandler(handle: (mm: Markmap) => Promise<void>): () => void;
24
- setItems(items: (string | IToolbarItem)[]): void;
25
+ setItems(items: (string | IToolbarItem)[]): HTMLDivElement;
25
26
  attach(mm: Markmap): void;
26
- render(): Node;
27
+ render(): HTMLDivElement;
27
28
  }
28
- export {};