mirror of
https://github.com/pengzhanbo/vuepress-theme-plume.git
synced 2026-04-23 10:58:13 +08:00
1 line
6.0 KiB
JavaScript
1 line
6.0 KiB
JavaScript
var e=1,t=2,n=`http://www.w3.org/2000/svg`,r=`http://www.w3.org/1999/xlink`,i={show:r,actuate:r,href:r},a=e=>typeof e==`string`||typeof e==`number`,o=t=>t?.vtype===e,s=e=>e?.vtype===t;function c(n,r){let i;if(typeof n==`string`)i=e;else if(typeof n==`function`)i=t;else throw Error(`Invalid VNode type`);return{vtype:i,type:n,props:r}}var l=c;function u(e){return e.children}var d={isSvg:!1};function f(e,t){Array.isArray(t)||(t=[t]),t=t.filter(Boolean),t.length&&e.append(...t)}function p(e,t,n){for(let r in t)if(!(r===`key`||r===`children`||r===`ref`))if(r===`dangerouslySetInnerHTML`)e.innerHTML=t[r].__html;else if(r===`innerHTML`||r===`textContent`||r===`innerText`||r===`value`&&[`textarea`,`select`].includes(e.tagName)){let n=t[r];n!=null&&(e[r]=n)}else r.startsWith(`on`)?e[r.toLowerCase()]=t[r]:h(e,r,t[r],n.isSvg)}var m={className:`class`,labelFor:`for`};function h(e,t,n,r){if(t=m[t]||t,n===!0)e.setAttribute(t,``);else if(n===!1)e.removeAttribute(t);else{let a=r?i[t]:void 0;a===void 0?e.setAttribute(t,n):e.setAttributeNS(a,t,n)}}function g(e){return e.reduce((e,t)=>e.concat(t),[])}function _(e,t){return Array.isArray(e)?g(e.map(e=>_(e,t))):v(e,t)}function v(e,t=d){if(e==null||typeof e==`boolean`)return null;if(e instanceof Node)return e;if(s(e)){let{type:n,props:r}=e;if(n===u){let e=document.createDocumentFragment();return r.children&&f(e,_(r.children,t)),e}return v(n(r),t)}if(a(e))return document.createTextNode(`${e}`);if(o(e)){let r,{type:i,props:a}=e;if(!t.isSvg&&i===`svg`&&(t=Object.assign({},t,{isSvg:!0})),r=t.isSvg?document.createElementNS(n,i):document.createElement(i),p(r,a,t),a.children){let e=t;t.isSvg&&i===`foreignObject`&&(e=Object.assign({},e,{isSvg:!1}));let n=_(a.children,e);n!=null&&f(r,n)}let{ref:o}=a;return typeof o==`function`&&o(r),r}throw Error(`mount: Invalid Vnode!`)}function y(e){return v(e)}var b=`mm-toolbar-item`,x=`active`;function S(){return l(`a`,{className:`mm-toolbar-brand`,href:`https://markmap.js.org/`,children:[c(`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=`}),c(`span`,{children:`markmap`})]})}function C({title:e,content:t,onClick:n}){return c(`div`,{className:b,title:e,onClick:n,children:t})}var w;function T(e){return async(...t)=>{if(!w){w=e(...t);try{await w}finally{w=void 0}}}}var E=class e{constructor(){this.showBrand=!0,this.registry={},this.el=y(c(`div`,{className:`mm-toolbar`})),this.items=[...e.defaultItems],this.register({id:`zoomIn`,title:`Zoom in`,content:e.icon(`M9 5v4h-4v2h4v4h2v-4h4v-2h-4v-4z`),onClick:this.getHandler(e=>e.rescale(1.25))}),this.register({id:`zoomOut`,title:`Zoom out`,content:e.icon(`M5 9h10v2h-10z`),onClick:this.getHandler(e=>e.rescale(.8))}),this.register({id:`fit`,title:`Fit window size`,content:e.icon(`M4 7h2v-2h2v4h-4zM4 13h2v2h2v-4h-4zM16 7h-2v-2h-2v4h4zM16 13h-2v2h-2v-4h4z`),onClick:this.getHandler(e=>e.fit())}),this.register({id:`recurse`,title:`Toggle recursively`,content:e.icon(`M16 4h-12v12h12v-8h-8v4h2v-2h4v4h-8v-8h10z`),onClick:e=>{var t;let n=e.target.closest(`.${b}`)?.classList.toggle(x);(t=this.markmap)==null||t.setOptions({toggleRecursively:n})}}),this.register({id:`dark`,title:`Toggle dark theme`,content:e.icon(`M10 4a6 6 0 0 0 0 12a6 6 0 0 0 0 -12v2a4 4 0 0 1 0 8z`),onClick:()=>{document.documentElement.classList.toggle(`markmap-dark`)}}),this.render()}static create(t){let n=new e;return n.attach(t),n}static icon(e,t={}){return t={stroke:`none`,fill:`currentColor`,"fill-rule":`evenodd`,...t},c(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,children:c(`path`,{...t,d:e})})}setBrand(e){return this.showBrand=e,this.render()}register(e){this.registry[e.id]=e}getHandler(e){return e=T(e),()=>{this.markmap&&e(this.markmap)}}setItems(e){return this.items=[...e],this.render()}attach(e){this.markmap=e}render(){let e=this.items.map(e=>{if(typeof e==`string`){let t=this.registry[e];return t||console.warn(`[markmap-toolbar] ${e} not found`),t}return e}).filter(Boolean);for(;this.el.firstChild;)this.el.firstChild.remove();return this.el.append(y(l(u,{children:[this.showBrand&&S(),e.map(C)]}))),this.el}};E.defaultItems=[`zoomIn`,`zoomOut`,`fit`,`recurse`,`dark`];var D=E;export{D as Toolbar}; |