markmap-toolbar 0.1.6 → 0.13.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,15 +1,36 @@
1
- /*! markmap-toolbar v0.1.6 | MIT License */
2
- import * as React from '@gera2ld/jsx-dom';
1
+ /*! markmap-toolbar v0.13.0 | MIT License */
2
+ import { mountDom } from '@gera2ld/jsx-dom';
3
+ import { jsx, jsxs } from '@gera2ld/jsx-dom/jsx-runtime';
4
+
5
+ function _extends() {
6
+ _extends = Object.assign || function (target) {
7
+ for (var i = 1; i < arguments.length; i++) {
8
+ var source = arguments[i];
9
+
10
+ for (var key in source) {
11
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
12
+ target[key] = source[key];
13
+ }
14
+ }
15
+ }
16
+
17
+ return target;
18
+ };
19
+
20
+ return _extends.apply(this, arguments);
21
+ }
3
22
 
4
23
  function renderBrand() {
5
- return /*#__PURE__*/React.createElement("div", {
6
- className: "mm-toolbar-brand"
7
- }, /*#__PURE__*/React.createElement("img", {
8
- alt: "markmap",
9
- 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="
10
- }), /*#__PURE__*/React.createElement("a", {
11
- href: "https://markmap.js.org/"
12
- }, "markmap"));
24
+ return jsxs("div", {
25
+ className: "mm-toolbar-brand",
26
+ children: [jsx("img", {
27
+ alt: "markmap",
28
+ 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/",
31
+ children: "markmap"
32
+ })]
33
+ });
13
34
  }
14
35
 
15
36
  function renderItem({
@@ -17,11 +38,11 @@ function renderItem({
17
38
  content,
18
39
  onClick
19
40
  }) {
20
- return /*#__PURE__*/React.createElement("div", {
41
+ return jsx("div", {
21
42
  className: "mm-toolbar-item",
22
43
  title: title,
23
- innerHTML: content,
24
- onClick: onClick
44
+ onClick: onClick,
45
+ children: content
25
46
  });
26
47
  }
27
48
 
@@ -47,8 +68,20 @@ class Toolbar {
47
68
  return toolbar.render();
48
69
  }
49
70
 
50
- static icon(path) {
51
- return `<svg width="20" height="20" viewBox="0 0 20 20" on:click={onZoomIn}><path fill="none" stroke-width="2" stroke="currentColor" d="${path}"/></svg>`;
71
+ static icon(path, attrs = {}) {
72
+ attrs = _extends({
73
+ stroke: 'none',
74
+ fill: 'currentColor',
75
+ 'fill-rule': 'evenodd'
76
+ }, attrs);
77
+ return jsx("svg", {
78
+ width: "20",
79
+ height: "20",
80
+ viewBox: "0 0 20 20",
81
+ children: jsx("path", _extends({}, attrs, {
82
+ d: path
83
+ }))
84
+ });
52
85
  }
53
86
 
54
87
  constructor() {
@@ -59,19 +92,19 @@ class Toolbar {
59
92
  this.register({
60
93
  id: 'zoomIn',
61
94
  title: 'Zoom in',
62
- content: Toolbar.icon('M10 6 v8 M6 10 h8'),
95
+ content: Toolbar.icon('M9 5v4h-4v2h4v4h2v-4h4v-2h-4v-4z'),
63
96
  onClick: this.getHandler(mm => mm.rescale(1.25))
64
97
  });
65
98
  this.register({
66
99
  id: 'zoomOut',
67
100
  title: 'Zoom out',
68
- content: Toolbar.icon('M6 10 h8'),
101
+ content: Toolbar.icon('M5 9h10v2h-10z'),
69
102
  onClick: this.getHandler(mm => mm.rescale(0.8))
70
103
  });
71
104
  this.register({
72
105
  id: 'fit',
73
106
  title: 'Fit window size',
74
- content: Toolbar.icon('M4 8 h3 v-3 M4 12 h3 v3 M16 8 h-3 v-3 M16 12 h-3 v3'),
107
+ content: Toolbar.icon('M4 7h2v-2h2v4h-4zM4 13h2v2h2v-4h-4zM16 7h-2v-2h-2v4h4zM16 13h-2v2h-2v-4h4z'),
75
108
  onClick: this.getHandler(mm => mm.fit())
76
109
  });
77
110
  }
@@ -86,7 +119,7 @@ class Toolbar {
86
119
 
87
120
  getHandler(handle) {
88
121
  handle = safeCaller(handle);
89
- return e => {
122
+ return () => {
90
123
  if (this.markmap) handle(this.markmap);
91
124
  };
92
125
  }
@@ -109,9 +142,10 @@ class Toolbar {
109
142
 
110
143
  return item;
111
144
  }).filter(Boolean);
112
- return /*#__PURE__*/React.createElement("div", {
113
- className: "mm-toolbar"
114
- }, this.showBrand && renderBrand(), items.map(renderItem));
145
+ return mountDom(jsxs("div", {
146
+ className: "mm-toolbar",
147
+ children: [this.showBrand && renderBrand(), items.map(renderItem)]
148
+ }));
115
149
  }
116
150
 
117
151
  }
package/dist/index.umd.js CHANGED
@@ -1,119 +1,271 @@
1
- /*! markmap-toolbar v0.1.6 | MIT License */
1
+ /*! markmap-toolbar v0.13.0 | 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) :
5
5
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.markmap = global.markmap || {}));
6
- }(this, (function (exports) { 'use strict';
7
-
8
- /*! @gera2ld/jsx-dom v1.2.1 | ISC License */
9
- var propRules = ['innerHTML', 'innerText', 'textContent', {
10
- key: 'value',
11
- tag: 'textarea'
12
- }];
13
- var Fragment = {
14
- name: 'Fragment'
15
- };
6
+ })(this, (function (exports) { 'use strict';
16
7
 
17
- function createElement(tag, props) {
18
- var result;
19
- var ref;
8
+ function _extends() {
9
+ _extends = Object.assign || function (target) {
10
+ for (var i = 1; i < arguments.length; i++) {
11
+ var source = arguments[i];
20
12
 
21
- if (tag === Fragment) {
22
- result = document.createDocumentFragment();
23
- } else if (typeof tag !== 'string') {
24
- throw new Error("Invalid element type: " + tag);
25
- } else {
26
- var _el = createElement.createElement(tag);
27
-
28
- result = _el;
29
-
30
- if (props) {
31
- Object.keys(props).forEach(function (key) {
32
- var value = props[key];
33
- if (value == null) return;
34
-
35
- if (key.startsWith('on')) {
36
- _el.addEventListener(key.slice(2).toLowerCase(), value);
37
- } else if (key === 'children') {
38
- renderChildren(_el, value);
39
- } else if (key === 'style' && typeof value === 'object') {
40
- renderStyle(_el, value);
41
- } else if (key === 'dangerouslySetInnerHTML' && value) {
42
- _el.innerHTML = value.__html || ''; // eslint-disable-line no-underscore-dangle
43
- } else if (key === 'ref' && typeof value === 'function') {
44
- ref = value;
45
- } else if (typeof value === 'boolean') {
46
- if (value) _el.setAttribute(key, key);else _el.removeAttribute(key);
47
- } else if (isProp(tag, key)) {
48
- _el[key] = value;
49
- } else {
50
- if (key === 'className') key = 'class';else if (key === 'labelFor') key = 'for';
51
-
52
- _el.setAttribute(key, "" + value);
13
+ for (var key in source) {
14
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
15
+ target[key] = source[key];
53
16
  }
54
- });
17
+ }
55
18
  }
56
- }
57
19
 
58
- for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
59
- children[_key - 2] = arguments[_key];
60
- }
20
+ return target;
21
+ };
61
22
 
62
- renderChildren(result, children);
63
- if (ref) ref(result);
64
- return result;
23
+ return _extends.apply(this, arguments);
65
24
  }
66
25
 
67
- createElement.createElement = function (tag) {
68
- return document.createElement(tag);
26
+ /*! @gera2ld/jsx-dom v2.1.1 | ISC License */
27
+ var VTYPE_ELEMENT = 1;
28
+ var VTYPE_FUNCTION = 2;
29
+ var MOUNT_SINGLE = 1;
30
+ var MOUNT_ARRAY = 4;
31
+ var SVG_NS = 'http://www.w3.org/2000/svg';
32
+ var XLINK_NS = 'http://www.w3.org/1999/xlink';
33
+ var NS_ATTRS = {
34
+ show: XLINK_NS,
35
+ actuate: XLINK_NS,
36
+ href: XLINK_NS
37
+ };
38
+
39
+ var isLeaf = function isLeaf(c) {
40
+ return typeof c === 'string' || typeof c === 'number';
41
+ };
42
+
43
+ var isElement = function isElement(c) {
44
+ return (c == null ? void 0 : c.vtype) === VTYPE_ELEMENT;
69
45
  };
70
46
 
71
- function isProp(tag, key) {
72
- var ctx = {
73
- tag: tag,
74
- key: key
47
+ var isRenderFunction = function isRenderFunction(c) {
48
+ return (c == null ? void 0 : c.vtype) === VTYPE_FUNCTION;
49
+ };
50
+
51
+ function jsx(type, props) {
52
+ var vtype;
53
+ if (typeof type === 'string') vtype = VTYPE_ELEMENT;else if (typeof type === 'function') vtype = VTYPE_FUNCTION;else throw new Error('Invalid VNode type');
54
+ return {
55
+ vtype: vtype,
56
+ type: type,
57
+ props: props
75
58
  };
76
- return propRules.some(function (rule) {
77
- if (typeof rule === 'string') return key === rule;
78
- return Object.keys(rule).every(function (rk) {
79
- return rule[rk] === ctx[rk];
59
+ }
60
+
61
+ var jsxs = jsx;
62
+
63
+ function Fragment(props) {
64
+ return props.children;
65
+ }
66
+
67
+ var DEFAULT_ENV = {
68
+ isSvg: false
69
+ };
70
+
71
+ function insertDom(parent, ref) {
72
+ if (ref.type === MOUNT_SINGLE) {
73
+ if (ref.node != null) parent.append(ref.node);
74
+ } else if (ref.type === MOUNT_ARRAY) {
75
+ ref.children.forEach(function (ch) {
76
+ insertDom(parent, ch);
80
77
  });
81
- });
78
+ } else {
79
+ throw new Error("Unkown ref type " + JSON.stringify(ref));
80
+ }
82
81
  }
83
82
 
84
- function renderChildren(el, children) {
85
- children.forEach(function (child) {
86
- if (child == null || child === false) return;
83
+ function mountAttributes(domElement, props, env) {
84
+ for (var key in props) {
85
+ if (key === 'key' || key === 'children' || key === 'ref') continue;
87
86
 
88
- if (Array.isArray(child)) {
89
- renderChildren(el, child);
90
- return;
87
+ if (key === 'dangerouslySetInnerHTML') {
88
+ domElement.innerHTML = props[key].__html;
89
+ } else if (key === 'innerHTML' || key === 'textContent' || key === 'innerText') {
90
+ domElement[key] = props[key];
91
+ } else if (key.startsWith('on')) {
92
+ domElement[key.toLowerCase()] = props[key];
93
+ } else {
94
+ setDOMAttribute(domElement, key, props[key], env.isSvg);
91
95
  }
96
+ }
97
+ }
98
+
99
+ var attrMap = {
100
+ className: 'class',
101
+ labelFor: 'for'
102
+ };
92
103
 
93
- if (typeof child !== 'object') {
94
- el.appendChild(document.createTextNode("" + child));
104
+ function setDOMAttribute(el, attr, value, isSVG) {
105
+ attr = attrMap[attr] || attr;
106
+
107
+ if (value === true) {
108
+ el.setAttribute(attr, '');
109
+ } else if (value === false) {
110
+ el.removeAttribute(attr);
111
+ } else {
112
+ var namespace = isSVG ? NS_ATTRS[attr] : undefined;
113
+
114
+ if (namespace !== undefined) {
115
+ el.setAttributeNS(namespace, attr, value);
95
116
  } else {
96
- el.appendChild(child);
117
+ el.setAttribute(attr, value);
97
118
  }
98
- });
119
+ }
99
120
  }
100
121
 
101
- function renderStyle(el, style) {
102
- Object.keys(style).forEach(function (key) {
103
- var value = style[key];
104
- if (typeof value === 'number') el.style[key] = value + "px";else el.style[key] = value;
105
- });
122
+ function mount(vnode, env) {
123
+ if (env === void 0) {
124
+ env = DEFAULT_ENV;
125
+ }
126
+
127
+ if (vnode == null || typeof vnode === 'boolean') {
128
+ return {
129
+ type: MOUNT_SINGLE,
130
+ node: null
131
+ };
132
+ }
133
+
134
+ if (vnode instanceof Node) {
135
+ return {
136
+ type: MOUNT_SINGLE,
137
+ node: vnode
138
+ };
139
+ }
140
+
141
+ if (isRenderFunction(vnode)) {
142
+ var _ref = vnode,
143
+ type = _ref.type,
144
+ props = _ref.props;
145
+
146
+ if (type === Fragment) {
147
+ var node = document.createDocumentFragment();
148
+
149
+ if (props.children) {
150
+ var childrenRef = mount(props.children, env);
151
+ insertDom(node, childrenRef);
152
+ }
153
+
154
+ return {
155
+ type: MOUNT_SINGLE,
156
+ node: node
157
+ };
158
+ }
159
+
160
+ var childVNode = type(props);
161
+ return mount(childVNode, env);
162
+ }
163
+
164
+ if (isLeaf(vnode)) {
165
+ return {
166
+ type: MOUNT_SINGLE,
167
+ node: document.createTextNode("" + vnode)
168
+ };
169
+ }
170
+
171
+ if (isElement(vnode)) {
172
+ var _node;
173
+
174
+ var _ref2 = vnode,
175
+ _type = _ref2.type,
176
+ _props = _ref2.props;
177
+
178
+ if (!env.isSvg && _type === 'svg') {
179
+ env = Object.assign({}, env, {
180
+ isSvg: true
181
+ });
182
+ }
183
+
184
+ if (!env.isSvg) {
185
+ _node = document.createElement(_type);
186
+ } else {
187
+ _node = document.createElementNS(SVG_NS, _type);
188
+ }
189
+
190
+ mountAttributes(_node, _props, env);
191
+
192
+ var _childrenRef;
193
+
194
+ if (_props.children) {
195
+ var childEnv = env;
196
+
197
+ if (env.isSvg && _type === 'foreignObject') {
198
+ childEnv = Object.assign({}, childEnv, {
199
+ isSvg: false
200
+ });
201
+ }
202
+
203
+ _childrenRef = mount(_props.children, childEnv);
204
+ }
205
+
206
+ if (_childrenRef != null) insertDom(_node, _childrenRef);
207
+ var ref = _props.ref;
208
+ if (typeof ref === 'function') ref(_node);
209
+ return {
210
+ type: MOUNT_SINGLE,
211
+ node: _node
212
+ };
213
+ }
214
+
215
+ if (Array.isArray(vnode)) {
216
+ return {
217
+ type: MOUNT_ARRAY,
218
+ children: vnode.map(function (child) {
219
+ return mount(child, env);
220
+ })
221
+ };
222
+ }
223
+
224
+ throw new Error('mount: Invalid Vnode!');
225
+ }
226
+
227
+ function flattenWithoutNull(array) {
228
+ var result = [];
229
+
230
+ for (var i = 0; i < array.length; i += 1) {
231
+ var item = array[i];
232
+ if (Array.isArray(item)) result = result.concat(flattenWithoutNull(item));else if (item != null) result.push(item);
233
+ }
234
+
235
+ return result;
236
+ }
237
+
238
+ function asDom(result) {
239
+ if (result.type === MOUNT_SINGLE) {
240
+ return result.node;
241
+ }
242
+
243
+ return result.children.map(asDom);
244
+ }
245
+ /**
246
+ * Mount vdom as real DOM nodes.
247
+ */
248
+
249
+
250
+ function mountDom(vnode) {
251
+ if (Array.isArray(vnode)) {
252
+ return flattenWithoutNull(vnode.map(mountDom));
253
+ }
254
+
255
+ return asDom(mount(vnode));
106
256
  }
107
257
 
108
258
  function renderBrand() {
109
- return /*#__PURE__*/createElement("div", {
110
- className: "mm-toolbar-brand"
111
- }, /*#__PURE__*/createElement("img", {
112
- alt: "markmap",
113
- 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="
114
- }), /*#__PURE__*/createElement("a", {
115
- href: "https://markmap.js.org/"
116
- }, "markmap"));
259
+ return jsxs("div", {
260
+ className: "mm-toolbar-brand",
261
+ children: [jsx("img", {
262
+ alt: "markmap",
263
+ 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/",
266
+ children: "markmap"
267
+ })]
268
+ });
117
269
  }
118
270
 
119
271
  function renderItem({
@@ -121,11 +273,11 @@ function renderItem({
121
273
  content,
122
274
  onClick
123
275
  }) {
124
- return /*#__PURE__*/createElement("div", {
276
+ return jsx("div", {
125
277
  className: "mm-toolbar-item",
126
278
  title: title,
127
- innerHTML: content,
128
- onClick: onClick
279
+ onClick: onClick,
280
+ children: content
129
281
  });
130
282
  }
131
283
 
@@ -151,8 +303,20 @@ class Toolbar {
151
303
  return toolbar.render();
152
304
  }
153
305
 
154
- static icon(path) {
155
- return `<svg width="20" height="20" viewBox="0 0 20 20" on:click={onZoomIn}><path fill="none" stroke-width="2" stroke="currentColor" d="${path}"/></svg>`;
306
+ static icon(path, attrs = {}) {
307
+ attrs = _extends({
308
+ stroke: 'none',
309
+ fill: 'currentColor',
310
+ 'fill-rule': 'evenodd'
311
+ }, attrs);
312
+ return jsx("svg", {
313
+ width: "20",
314
+ height: "20",
315
+ viewBox: "0 0 20 20",
316
+ children: jsx("path", _extends({}, attrs, {
317
+ d: path
318
+ }))
319
+ });
156
320
  }
157
321
 
158
322
  constructor() {
@@ -163,19 +327,19 @@ class Toolbar {
163
327
  this.register({
164
328
  id: 'zoomIn',
165
329
  title: 'Zoom in',
166
- content: Toolbar.icon('M10 6 v8 M6 10 h8'),
330
+ content: Toolbar.icon('M9 5v4h-4v2h4v4h2v-4h4v-2h-4v-4z'),
167
331
  onClick: this.getHandler(mm => mm.rescale(1.25))
168
332
  });
169
333
  this.register({
170
334
  id: 'zoomOut',
171
335
  title: 'Zoom out',
172
- content: Toolbar.icon('M6 10 h8'),
336
+ content: Toolbar.icon('M5 9h10v2h-10z'),
173
337
  onClick: this.getHandler(mm => mm.rescale(0.8))
174
338
  });
175
339
  this.register({
176
340
  id: 'fit',
177
341
  title: 'Fit window size',
178
- content: Toolbar.icon('M4 8 h3 v-3 M4 12 h3 v3 M16 8 h-3 v-3 M16 12 h-3 v3'),
342
+ content: Toolbar.icon('M4 7h2v-2h2v4h-4zM4 13h2v2h2v-4h-4zM16 7h-2v-2h-2v4h4zM16 13h-2v2h-2v-4h4z'),
179
343
  onClick: this.getHandler(mm => mm.fit())
180
344
  });
181
345
  }
@@ -190,7 +354,7 @@ class Toolbar {
190
354
 
191
355
  getHandler(handle) {
192
356
  handle = safeCaller(handle);
193
- return e => {
357
+ return () => {
194
358
  if (this.markmap) handle(this.markmap);
195
359
  };
196
360
  }
@@ -213,13 +377,14 @@ class Toolbar {
213
377
 
214
378
  return item;
215
379
  }).filter(Boolean);
216
- return /*#__PURE__*/createElement("div", {
217
- className: "mm-toolbar"
218
- }, this.showBrand && renderBrand(), items.map(renderItem));
380
+ return mountDom(jsxs("div", {
381
+ className: "mm-toolbar",
382
+ children: [this.showBrand && renderBrand(), items.map(renderItem)]
383
+ }));
219
384
  }
220
385
 
221
386
  }
222
387
 
223
388
  exports.Toolbar = Toolbar;
224
389
 
225
- })));
390
+ }));
@@ -1,3 +1,3 @@
1
- /*! markmap-toolbar v0.1.6 | 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";
3
- /*! @gera2ld/jsx-dom v1.2.1 | ISC License */var t=["innerHTML","innerText","textContent",{key:"value",tag:"textarea"}],e={name:"Fragment"};function r(A,t){var a,s;if(A===e)a=document.createDocumentFragment();else{if("string"!=typeof A)throw new Error("Invalid element type: "+A);var h=r.createElement(A);a=h,t&&Object.keys(t).forEach((function(e){var r=t[e];null!=r&&(e.startsWith("on")?h.addEventListener(e.slice(2).toLowerCase(),r):"children"===e?i(h,r):"style"===e&&"object"==typeof r?o(h,r):"dangerouslySetInnerHTML"===e&&r?h.innerHTML=r.__html||"":"ref"===e&&"function"==typeof r?s=r:"boolean"==typeof r?r?h.setAttribute(e,e):h.removeAttribute(e):n(A,e)?h[e]=r:("className"===e?e="class":"labelFor"===e&&(e="for"),h.setAttribute(e,""+r)))}))}for(var l=arguments.length,c=new Array(l>2?l-2:0),m=2;m<l;m++)c[m-2]=arguments[m];return i(a,c),s&&s(a),a}function n(A,e){var r={tag:A,key:e};return t.some((function(A){return"string"==typeof A?e===A:Object.keys(A).every((function(t){return A[t]===r[t]}))}))}function i(A,t){t.forEach((function(t){null!=t&&!1!==t&&(Array.isArray(t)?i(A,t):"object"!=typeof t?A.appendChild(document.createTextNode(""+t)):A.appendChild(t))}))}function o(A,t){Object.keys(t).forEach((function(e){var r=t[e];A.style[e]="number"==typeof r?r+"px":r}))}function a({title:A,content:t,onClick:e}){return r("div",{className:"mm-toolbar-item",title:A,innerHTML:t,onClick:e})}let s;r.createElement=function(A){return document.createElement(A)};class h{static create(A){const t=new h;return t.attach(A),t.render()}static icon(A){return`<svg width="20" height="20" viewBox="0 0 20 20" on:click={onZoomIn}><path fill="none" stroke-width="2" stroke="currentColor" d="${A}"/></svg>`}constructor(){this.showBrand=!0,this.registry={},this.markmap=null,this.items=["zoomIn","zoomOut","fit"],this.register({id:"zoomIn",title:"Zoom in",content:h.icon("M10 6 v8 M6 10 h8"),onClick:this.getHandler((A=>A.rescale(1.25)))}),this.register({id:"zoomOut",title:"Zoom out",content:h.icon("M6 10 h8"),onClick:this.getHandler((A=>A.rescale(.8)))}),this.register({id:"fit",title:"Fit window size",content:h.icon("M4 8 h3 v-3 M4 12 h3 v3 M16 8 h-3 v-3 M16 12 h-3 v3"),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(!s){s=t(...A);try{await s}finally{s=null}}},t=>{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 r("div",{className:"mm-toolbar"},this.showBrand&&r("div",{className:"mm-toolbar-brand"},r("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="}),r("a",{href:"https://markmap.js.org/"},"markmap")),A.map(a))}}A.Toolbar=h}));
1
+ /*! markmap-toolbar v0.13.0 | 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}));
package/dist/style.css CHANGED
@@ -1,61 +1 @@
1
- .mm-toolbar {
2
- display: flex;
3
- align-items: center;
4
- border-radius: 0.25rem;
5
- --bg-opacity: 1;
6
- background-color: #fff;
7
- background-color: rgba(255, 255, 255, var(--bg-opacity));
8
- border-width: 1px;
9
- border-style: solid;
10
- --border-opacity: 1;
11
- border-color: #e2e8f0;
12
- border-color: rgba(226, 232, 240, var(--border-opacity));
13
- line-height: 1;
14
- -moz-user-select: none;
15
- user-select: none
16
- }
17
- .mm-toolbar:hover {
18
- --border-opacity: 1;
19
- border-color: #cbd5e0;
20
- border-color: rgba(203, 213, 224, var(--border-opacity));
21
- }
22
- .mm-toolbar svg {
23
- display: block;
24
- }
25
- .mm-toolbar > * {
26
- margin: 0.25rem;
27
- cursor: pointer;
28
- }
29
- .mm-toolbar > * > * {
30
- --text-opacity: 1;
31
- color: #a0aec0;
32
- color: rgba(160, 174, 192, var(--text-opacity));
33
- }
34
- .mm-toolbar > *:hover {
35
- --bg-opacity: 1;
36
- background-color: #edf2f7;
37
- background-color: rgba(237, 242, 247, var(--bg-opacity));
38
- border-radius: 0.25rem;
39
- }
40
- .mm-toolbar > *:hover > * {
41
- --text-opacity: 1;
42
- color: #2d3748;
43
- color: rgba(45, 55, 72, var(--text-opacity));
44
- }
45
- .mm-toolbar-brand > img {
46
- width: 1rem;
47
- height: 1rem;
48
- vertical-align: middle;
49
- }
50
- .mm-toolbar-brand > a {
51
- display: inline-block;
52
- font-size: 0.75rem;
53
- text-decoration: none;
54
- padding-right: 0.25rem;
55
- }
56
- .mm-toolbar-item > * {
57
- min-width: 20px;
58
- height: 20px;
59
- line-height: 20px;
60
- text-align: center;
61
- }
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}
package/package.json CHANGED
@@ -1,13 +1,12 @@
1
1
  {
2
2
  "name": "markmap-toolbar",
3
- "version": "0.1.6",
3
+ "version": "0.13.0",
4
4
  "description": "Extensible toolbar for markmap",
5
5
  "author": "Gerald <gera2ld@live.com>",
6
6
  "license": "MIT",
7
7
  "scripts": {
8
8
  "dev": "rollup -wc rollup.conf.js",
9
9
  "clean": "del-cli dist types",
10
- "lint": "eslint --ext .ts,.tsx .",
11
10
  "build:types": "tsc",
12
11
  "build:js": "rollup -c rollup.conf.js"
13
12
  },
@@ -24,9 +23,12 @@
24
23
  "registry": "https://registry.npmjs.org/"
25
24
  },
26
25
  "typings": "types/index.d.ts",
26
+ "devDependencies": {
27
+ "markmap-view": "^0.13.0"
28
+ },
27
29
  "dependencies": {
28
- "@babel/runtime": "^7.12.1",
29
- "@gera2ld/jsx-dom": "^1.2.1"
30
+ "@babel/runtime": "^7.16.3",
31
+ "@gera2ld/jsx-dom": "^2.1.1"
30
32
  },
31
- "gitHead": "cbb56b8ede93b15000a31013a0474891b774a977"
33
+ "gitHead": "4f5096be2e5ee0d666c0868dbb0d163b19b00ffe"
32
34
  }
package/types/index.d.ts CHANGED
@@ -1 +1 @@
1
- export * from './toolbar';
1
+ export * from './toolbar';
@@ -1,25 +1,27 @@
1
- import './style.css';
2
- interface IToolbarItem {
3
- id?: string;
4
- title?: string;
5
- content: string;
6
- onClick?: (e: Event) => void;
7
- }
8
- export declare class Toolbar {
9
- private showBrand;
10
- private registry;
11
- private markmap;
12
- private items;
13
- static create(mm: any): any;
14
- static icon(path: string): string;
15
- constructor();
16
- setBrand(show: boolean): void;
17
- register(data: IToolbarItem & {
18
- id: string;
19
- }): void;
20
- getHandler(handle: (mm: any) => void): (e: any) => void;
21
- setItems(items: (string | IToolbarItem)[]): void;
22
- attach(mm: any): void;
23
- render(): any;
24
- }
25
- export {};
1
+ import { VChildren } from '@gera2ld/jsx-dom';
2
+ import type { Markmap } from 'markmap-view';
3
+ import './style.css';
4
+ interface IToolbarItem {
5
+ id?: string;
6
+ title?: string;
7
+ content: VChildren;
8
+ onClick?: (e: Event) => void;
9
+ }
10
+ export declare class Toolbar {
11
+ private showBrand;
12
+ private registry;
13
+ private markmap;
14
+ private items;
15
+ static create(mm: Markmap): Node;
16
+ static icon(path: string, attrs?: {}): any;
17
+ constructor();
18
+ setBrand(show: boolean): void;
19
+ register(data: IToolbarItem & {
20
+ id: string;
21
+ }): void;
22
+ getHandler(handle: (mm: Markmap) => Promise<void>): () => void;
23
+ setItems(items: (string | IToolbarItem)[]): void;
24
+ attach(mm: Markmap): void;
25
+ render(): Node;
26
+ }
27
+ export {};
@@ -1 +0,0 @@
1
- .mm-toolbar{display:flex;align-items:center;border-radius:.25rem;--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));--border-opacity:1;border:1px solid #e2e8f0;border-color:rgba(226,232,240,var(--border-opacity));line-height:1;-moz-user-select:none;user-select:none}.mm-toolbar:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.mm-toolbar svg{display:block}.mm-toolbar>*{margin:.25rem;cursor:pointer}.mm-toolbar>*>*{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.mm-toolbar>:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity));border-radius:.25rem}.mm-toolbar>:hover>*{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.mm-toolbar-brand>img{width:1rem;height:1rem;vertical-align:middle}.mm-toolbar-brand>a{display:inline-block;font-size:.75rem;text-decoration:none;padding-right:.25rem}.mm-toolbar-item>*{min-width:20px;height:20px;line-height:20px;text-align:center}