1 Star 0 Fork 34

liming0101/outline.js

forked from Yaohaixiao/outline.js 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
reader.min.js 34.77 KB
一键复制 编辑 原始数据 按行查看 历史
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Reader=e()}(this,(function(){"use strict";const t=t=>Object.prototype.toString.apply(t),e=e=>"function"==typeof e||"[object Function]"===t(e),s=s=>("[object Object]"===t(s)||"object"==typeof s||e(s))&&null!==s,i=e=>Array.isArray?Array.isArray(e):"[object Array]"===t(e),n=t=>{let e={};return null===t?null:(i(t)?e=Array.from(t):(e=Object.assign({},t),Object.keys(e).forEach((i=>e[i]=s(t[i])?n(t[i]):t[i]))),e)},r=function(t){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:300;return!!e(t)&&setTimeout((()=>{t()}),s)},o=t=>"string"==typeof t,l=t=>!!(s(t)&&t.nodeName&&t.tagName&&1===t.nodeType),a=e=>{return!(!s(e)||!(l(e)||(e=>!(!s(e)||"[object NodeList]"!==t(e)))(e)||(i=e,s(i)&&"[object DocumentFragment]"===t(i))||(e=>!(!s(e)||!("[object Text]"===t(e)||e.tagName&&3===e.nodeType)))(e)));var i},h=(t,e)=>{const s=Object.prototype.hasOwnProperty;return t&&s.call(t,e)},c=(t,e,s)=>{let i=t.tagName.toLowerCase();switch(e){case"style":t.style.cssText=s;break;case"value":"input"===i||"textarea"===i?t.value=s:t.setAttribute(e,s);break;case"htmlFor":t.setAttribute("for",s);break;case"className":t.className=s;break;case"innerHTML":t.innerHTML=s;break;case"innerText":t.innerText=s;break;default:t.setAttribute(e,s)}},u=(t,e)=>{if(!t||!s(e))return!1;Object.keys(e).forEach((s=>{const i=e[s];h(e,s)&&c(t,s,i)}))},d=(t,e,n)=>{const r=document.createDocumentFragment(),l=document.createElement(t),h=t=>a(t)||o(t),c=t=>{let e;if(!h(t))return!1;a(t)?e=t:o(t)&&(e=document.createTextNode(t)),r.appendChild(e)};return s(e)?u(l,e):i(e)&&e.every((t=>h(t)))?e.forEach((t=>{c(t)})):a(e)?c(e):o(e)&&c(document.createTextNode(e)),i(n)?n.forEach((t=>{c(t)})):c(n),l.appendChild(r),l},m=(t,e)=>{const s=new RegExp("(\\s|^)"+e+"(\\s|$)");let i,n;return!!l(t)&&(i=t.className,!!i&&(n=t.classList,n&&n.contains?t.classList.contains(e):!!s.exec(i)))},p=(t,e)=>{var s;let i,n;if(m(t,e))return!1;i=t.classList,null!==(s=i)&&void 0!==s&&s.add?i.add(e):(n=t.className,n+=n.length>0?" "+e:e,t.className=n)},f=(t,e)=>{var s;let i,n=t.className;if(!n||!m(t,e))return!1;var r;i=t.classList,null!==(s=i)&&void 0!==s&&s.remove?i.remove(e):(r=n.replace(e,""),n=!!o(r)&&r.replace(/(^\s+)|(\s+$)/g,""),t.className=n)},g=["focusout","blur","focusin","focus","load","unload","mouseenter","mouseleave"],b=(t,e,s)=>{const i=g.indexOf(e)>-1;s._delegateListener&&delete(s=s._delegateListener)._delegateListener,function(t,e,s){const i=t._listeners;let n=-1;if(i.length<1)return!1;i.forEach(((t,i)=>{const r=t.fn;e===t.type&&(n=i,r===s&&(n=i))})),n>-1&&i.splice(n,1)}(t,e,s),t.removeEventListener(e,s,i)},y=function(t,e){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=o(t)?document.querySelector(t):t,n=i.childNodes,r=((t,e)=>{let s=t._listeners||[];return o(e)&&e&&(s=s.filter((t=>t.type===e))),s})(i,e);r.forEach((t=>{b(i,t.type,t.fn)})),(s||!0===e||1===arguments.length)&&i&&n&&n.forEach((t=>{l(t)&&y(t,e,s)}))},v=(t,s,i)=>{if(!e(i))return y(t,s),!1;b(t,s,i)},_=(t,e)=>{Object.keys(e).forEach((s=>{h(e,s)&&(t[s]=e[s])}))},$={},x=t=>h($,t)&&$[t].length>0,z=function(t){return!(arguments.length>1&&void 0!==arguments[1])||arguments[1]?x(t):(t=>{let e=x(t),s=t.lastIndexOf(".");for(;!e&&-1!==s;)s=(t=t.substring(0,s)).lastIndexOf("."),e=x(t);return e})(t)},L=function(e,s){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const n=e=>{if(!x(e))return!1;$[e].forEach((e=>{const i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]","[object BigInt64Array]","[object BigUint64Array]"].indexOf(t(s))>-1?s.toString():s;e.callback.call(e.context||e,i)}))},r=()=>{let t=e,s=e.lastIndexOf(".");for(;-1!==s;)t=t.substring(0,s),s=t.lastIndexOf("."),n(t);n(e),n("*")};if(!z(e))return!1;i?setTimeout(r,10):r()},M=(()=>{let t=0;return e=>(t+=1,e?e+"-"+t:"guid-"+t)})(),S=t=>{if(!h($,t))return!1;delete $[t]},E=(t,e)=>{if(!z(t))return!1;e?(t=>{const e=Object.keys($);if(!t||e.length<1)return!1;e.forEach((e=>{const s=$[e];let i;s.forEach(((e,n)=>{e.callback!==t&&e.token!==t||(i=e.topic,s.splice(-1,n))})),s.length<1&&S(i)}))})(e):S(t)};class C{constructor(t){this.attrs={},t&&this.initialize(t)}initialize(t){return this.attr(t).render().addListeners(),this}attr(t,e){const i=this.attrs;return o(t)?e&&h(i,t)?(i[t]=e,this):i[t]:s(t)?(_(i,t),this):0===arguments.length?i:this}render(){return this}refresh(){return this}destroy(){return this.removeListeners(),this}reload(t){let e=this.attr();return t&&(e=this.attr(t)),this.destroy().initialize(e),this}$emit(t,e){return L(t,e),this}$on(t,s){return function(t,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const n=M();let r="symbol"==typeof t?t.toString():t;e(s)&&($[r]||($[r]=[]),$[r].push({topic:r,callback:s,context:i,token:n}))}(t,s,this),this}$off(t,e){return E(t,e),this}addListeners(){return this}removeListeners(){return this}}const w=t=>{const e=Object.getPrototypeOf;let i;if(!(t=>s(t)&&null!==t)(t))return!1;if(i=t.prototype,!i)return!0;for(i=t;null!==e(i);)i=e(i);return e(t)===i},T=t=>t.replace(/<script[^>]*>.*?<\/script>/gi,""),k=t=>{const e={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"};return t.replace(/[&<>'"]/g,(t=>e[t]||t))},N=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s="outline-icon",n=e.size||0,r=e.color||"",l=e.iconSet||"",a=i(n)?n[0]:n,h=i(n)?n[1]:n,c=n?`width:${a}px;height:${h}px;`:"",d=r?c+`color:${r}`:c,m=e.attrs||{},p=document.createElement("i");let f,g="",b="";return o(t)?((t=>{const e=new RegExp("^\\s*(?:<\\?xml[^>]*>\\s*)?(?:<\\!doctype svg[^>]*\\s*(?:\\[?(?:\\s*<![^>]*>\\s*)*\\]?)*[^>]*>\\s*)?<svg[^>]*>[^]*<\\/svg>\\s*$\\s*$","i");return o(t)&&e.test(t)})(t)?b=t:(g=l&&"icon"!==l?`xlink:href="#${l}-icon-${t}"`:`xlink:href="#icon-${t}"`,b=`<svg><use ${g}></use></svg>`),p.innerHTML=b,m.className?m.className=`${s} ${m.className}`:m.className=s,u(p,m),f=p.querySelector("svg"),u(f,{"aria-hidden":!0,xmlns:"http://www.w3.org/2000/svg",class:"outline-icon__svg",width:200,height:200,style:d}),p):null},A=function(t){return N(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})},D=['<symbol id="outline-icon-up" viewBox="0 0 1024 1024"><path d="M494.784 261.696c0.832-0.448 1.536-1.216 2.368-1.536a38.72 38.72 0 0 1 46.08 8.256l277.824 302.272a41.92 41.92 0 0 1-1.536 58.048 39.104 39.104 0 0 1-56.448-1.6L513.728 355.904 260.736 626.048a39.104 39.104 0 0 1-56.448 1.088 41.6 41.6 0 0 1-1.088-57.984L483.84 269.696c0.512-0.512 1.344-0.768 1.92-1.408l1.088-1.344c2.368-2.496 5.312-3.648 8-5.248z"></path></symbol>','<symbol id="outline-icon-down" viewBox="0 0 1024 1024"><path d="M494.784 762.304c0.832 0.448 1.536 1.216 2.368 1.536 15.232 7.488 33.92 4.992 46.08-8.256l277.824-302.272a41.92 41.92 0 0 0-1.536-58.048 39.104 39.104 0 0 0-56.448 1.6l-249.344 271.232-252.992-270.144a39.104 39.104 0 0 0-56.448-1.088 41.6 41.6 0 0 0-1.088 57.984l280.576 299.456c0.512 0.512 1.344 0.768 1.92 1.408l1.088 1.344c2.368 2.496 5.312 3.648 8 5.248z"></path></symbol>','<symbol id="outline-icon-menu" viewBox="0 0 1024 1024"><path d="M320 256h640V128H320zM320 576h640V448H320zM320 896h640v-128H320zM64 256h128V128H64zM64 576h128V448H64zM64 896h128v-128H64z"></path></symbol>','<symbol id="outline-icon-file" viewBox="0 0 1024 1024"><path d="M320 640h256v128H320z"></path><path d="M320 448h384v128H320z"></path><path d="M640 0l320 320v557.696C960 958.528 909.824 1024 848 1024H176C114.176 1024 64 958.528 64 877.696V146.304C64 65.472 114.176 0 176 0H640z m0 128H192v768h640V320h-192V128z"></path></symbol>','<symbol id="outline-icon-hash" viewBox="0 0 24 24"><path d="M14.216 10l-0.444 4h-3.988l0.444-4zM15.006 2.89l-0.568 5.11h-3.988l0.543-4.89c0.061-0.549-0.335-1.043-0.883-1.104s-1.043 0.335-1.104 0.884l-0.568 5.11h-4.438c-0.552 0-1 0.448-1 1s0.448 1 1 1h4.216l-0.444 4h-3.772c-0.552 0-1 0.448-1 1s0.448 1 1 1h3.549l-0.543 4.89c-0.061 0.549 0.335 1.043 0.883 1.104s1.043-0.335 1.104-0.883l0.569-5.111h3.988l-0.543 4.89c-0.061 0.549 0.335 1.043 0.883 1.104s1.043-0.335 1.104-0.883l0.568-5.111h4.438c0.552 0 1-0.448 1-1s-0.448-1-1-1h-4.216l0.444-4h3.772c0.552 0 1-0.448 1-1s-0.448-1-1-1h-3.549l0.543-4.89c0.061-0.549-0.335-1.043-0.883-1.104s-1.043 0.335-1.104 0.883z"></path></symbol>','<symbol id="outline-icon-close" viewBox="0 0 1024 1024"><path d="M536.96 491.648L310.592 265.344a32 32 0 1 0-45.248 45.248L491.584 536.96l-226.304 226.304a32 32 0 0 0 45.312 45.248l226.24-226.304 226.304 226.304a32 32 0 0 0 45.248-45.248L582.144 536.896l226.304-226.24a32 32 0 0 0-45.248-45.248L536.896 491.584z"></path></symbol>','<symbol id="outline-icon-homepage" viewBox="0 0 26 28"><path d="M22 15.5v7.5c0 0.547-0.453 1-1 1h-6v-6h-4v6h-6c-0.547 0-1-0.453-1-1v-7.5c0-0.031 0.016-0.063 0.016-0.094l8.984-7.406 8.984 7.406c0.016 0.031 0.016 0.063 0.016 0.094zM25.484 14.422l-0.969 1.156c-0.078 0.094-0.203 0.156-0.328 0.172h-0.047c-0.125 0-0.234-0.031-0.328-0.109l-10.813-9.016-10.813 9.016c-0.109 0.078-0.234 0.125-0.375 0.109-0.125-0.016-0.25-0.078-0.328-0.172l-0.969-1.156c-0.172-0.203-0.141-0.531 0.063-0.703l11.234-9.359c0.656-0.547 1.719-0.547 2.375 0l3.813 3.187v-3.047c0-0.281 0.219-0.5 0.5-0.5h3c0.281 0 0.5 0.219 0.5 0.5v6.375l3.422 2.844c0.203 0.172 0.234 0.5 0.063 0.703z"></path></symbol>','<symbol id="outline-icon-github" viewBox="0 0 24 28"><path d="M12 2c6.625 0 12 5.375 12 12 0 5.297-3.437 9.797-8.203 11.391-0.609 0.109-0.828-0.266-0.828-0.578 0-0.391 0.016-1.687 0.016-3.297 0-1.125-0.375-1.844-0.812-2.219 2.672-0.297 5.484-1.313 5.484-5.922 0-1.313-0.469-2.375-1.234-3.219 0.125-0.313 0.531-1.531-0.125-3.187-1-0.313-3.297 1.234-3.297 1.234-0.953-0.266-1.984-0.406-3-0.406s-2.047 0.141-3 0.406c0 0-2.297-1.547-3.297-1.234-0.656 1.656-0.25 2.875-0.125 3.187-0.766 0.844-1.234 1.906-1.234 3.219 0 4.594 2.797 5.625 5.469 5.922-0.344 0.313-0.656 0.844-0.766 1.609-0.688 0.313-2.438 0.844-3.484-1-0.656-1.141-1.844-1.234-1.844-1.234-1.172-0.016-0.078 0.734-0.078 0.734 0.781 0.359 1.328 1.75 1.328 1.75 0.703 2.141 4.047 1.422 4.047 1.422 0 1 0.016 1.937 0.016 2.234 0 0.313-0.219 0.688-0.828 0.578-4.766-1.594-8.203-6.094-8.203-11.391 0-6.625 5.375-12 12-12zM4.547 19.234c0.031-0.063-0.016-0.141-0.109-0.187-0.094-0.031-0.172-0.016-0.203 0.031-0.031 0.063 0.016 0.141 0.109 0.187 0.078 0.047 0.172 0.031 0.203-0.031zM5.031 19.766c0.063-0.047 0.047-0.156-0.031-0.25-0.078-0.078-0.187-0.109-0.25-0.047-0.063 0.047-0.047 0.156 0.031 0.25 0.078 0.078 0.187 0.109 0.25 0.047zM5.5 20.469c0.078-0.063 0.078-0.187 0-0.297-0.063-0.109-0.187-0.156-0.266-0.094-0.078 0.047-0.078 0.172 0 0.281s0.203 0.156 0.266 0.109zM6.156 21.125c0.063-0.063 0.031-0.203-0.063-0.297-0.109-0.109-0.25-0.125-0.313-0.047-0.078 0.063-0.047 0.203 0.063 0.297 0.109 0.109 0.25 0.125 0.313 0.047zM7.047 21.516c0.031-0.094-0.063-0.203-0.203-0.25-0.125-0.031-0.266 0.016-0.297 0.109s0.063 0.203 0.203 0.234c0.125 0.047 0.266 0 0.297-0.094zM8.031 21.594c0-0.109-0.125-0.187-0.266-0.172-0.141 0-0.25 0.078-0.25 0.172 0 0.109 0.109 0.187 0.266 0.172 0.141 0 0.25-0.078 0.25-0.172zM8.937 21.438c-0.016-0.094-0.141-0.156-0.281-0.141-0.141 0.031-0.234 0.125-0.219 0.234 0.016 0.094 0.141 0.156 0.281 0.125s0.234-0.125 0.219-0.219z"></path></symbol>','<symbol id="outline-icon-issues" viewBox="0 0 24 28"><path d="M25.5 15c0 0.547-0.453 1-1 1h-3.5c0 1.953-0.422 3.422-1.047 4.531l3.25 3.266c0.391 0.391 0.391 1.016 0 1.406-0.187 0.203-0.453 0.297-0.703 0.297s-0.516-0.094-0.703-0.297l-3.094-3.078s-2.047 1.875-4.703 1.875v-14h-2v14c-2.828 0-4.891-2.063-4.891-2.063l-2.859 3.234c-0.203 0.219-0.469 0.328-0.75 0.328-0.234 0-0.469-0.078-0.672-0.25-0.406-0.375-0.438-1-0.078-1.422l3.156-3.547c-0.547-1.078-0.906-2.469-0.906-4.281h-3.5c-0.547 0-1-0.453-1-1s0.453-1 1-1h3.5v-4.594l-2.703-2.703c-0.391-0.391-0.391-1.016 0-1.406s1.016-0.391 1.406 0l2.703 2.703h13.188l2.703-2.703c0.391-0.391 1.016-0.391 1.406 0s0.391 1.016 0 1.406l-2.703 2.703v4.594h3.5c0.547 0 1 0.453 1 1zM18 6h-10c0-2.766 2.234-5 5-5s5 2.234 5 5z"></path></symbol>','<symbol id="outline-icon-tags" viewBox="0 0 26 28"><path d="M7 7c0-1.109-0.891-2-2-2s-2 0.891-2 2 0.891 2 2 2 2-0.891 2-2zM23.672 16c0 0.531-0.219 1.047-0.578 1.406l-7.672 7.688c-0.375 0.359-0.891 0.578-1.422 0.578s-1.047-0.219-1.406-0.578l-11.172-11.188c-0.797-0.781-1.422-2.297-1.422-3.406v-6.5c0-1.094 0.906-2 2-2h6.5c1.109 0 2.625 0.625 3.422 1.422l11.172 11.156c0.359 0.375 0.578 0.891 0.578 1.422zM29.672 16c0 0.531-0.219 1.047-0.578 1.406l-7.672 7.688c-0.375 0.359-0.891 0.578-1.422 0.578-0.812 0-1.219-0.375-1.75-0.922l7.344-7.344c0.359-0.359 0.578-0.875 0.578-1.406s-0.219-1.047-0.578-1.422l-11.172-11.156c-0.797-0.797-2.312-1.422-3.422-1.422h3.5c1.109 0 2.625 0.625 3.422 1.422l11.172 11.156c0.359 0.375 0.578 0.891 0.578 1.422z"></path></symbol>','<symbol id="outline-icon-print" viewBox="0 0 24 24"><path d="M18 3v3.984h-12v-3.984h12zM18.984 12q0.422 0 0.727-0.281t0.305-0.703-0.305-0.727-0.727-0.305-0.703 0.305-0.281 0.727 0.281 0.703 0.703 0.281zM15.984 18.984v-4.969h-7.969v4.969h7.969zM18.984 8.016q1.219 0 2.109 0.891t0.891 2.109v6h-3.984v3.984h-12v-3.984h-3.984v-6q0-1.219 0.891-2.109t2.109-0.891h13.969z"></path></symbol>','<symbol id="outline-icon-info" viewBox="0 0 1024 1024"><path d="M512 384.295982a95.994 95.994 0 0 1 95.994 95.994V928.006a95.994 95.994 0 0 1-191.988 0V480.289982a95.994 95.994 0 0 1 95.994-95.994z m0-128.375977A127.992 127.992 0 1 1 512 0.063996a127.992 127.992 0 0 1 0 255.984001z"></path></symbol>','<symbol id="outline-icon-warning" viewBox="0 0 1024 1024"><path d="M512 639.704018a95.994 95.994 0 0 1-95.994-95.994V95.994a95.994 95.994 0 0 1 191.988 0v447.716018a95.994 95.994 0 0 1-95.994 95.994z m0 128.375977A127.992 127.992 0 1 1 512 1023.936004a127.992 127.992 0 0 1 0-255.984001z"></path></symbol>','<symbol id="outline-icon-error" viewBox="0 0 1024 1024"><path d="M512.64 376.96L263.744 128 128 263.744l248.96 248.96L128 761.472l135.744 135.808 248.96-248.96 248.832 248.96 135.808-135.808-248.96-248.896 248.96-248.896L761.536 128 512.64 376.96z"></path></symbol>','<symbol id="outline-icon-success" viewBox="0 0 1024 1024"><path d="M426.368 580.864l-226.56-226.56L64 489.984l362.048 362.112 0.32-0.32 0.32 0.32 588.288-588.352L879.36 128 426.304 580.864z"></path></symbol>','<symbol id="outline-icon-circle-info" viewBox="0 0 1024 1024"><path d="M512 810.666667s-42.666667 4.266667-42.666667-42.666667v-341.333333c0-46.933333 42.666667-42.666667 42.666667-42.666667s42.666667-4.266667 42.666667 42.666667v341.333333c0 46.933333-42.666667 42.666667-42.666667 42.666667z m0 213.333333C228.949333 1024 0 795.050667 0 512S228.949333 0 512 0s512 228.949333 512 512-229.674667 512-512 512z m0-938.666667C276.608 85.333333 85.333333 276.608 85.333333 512s191.274667 426.666667 426.666667 426.666667 426.666667-191.274667 426.666667-426.666667S747.392 85.333333 512 85.333333z m0 213.333334c-23.466667 0-42.666667-19.2-42.666667-42.666667s19.2-42.666667 42.666667-42.666667 42.666667 19.2 42.666667 42.666667-19.2 42.666667-42.666667 42.666667z"></path></symbol>','<symbol id="outline-icon-circle-warning" viewBox="0 0 1024 1024"><path d="M512 213.333333s-42.666667-4.266667-42.666667 42.666667v341.333333c0 46.933333 42.666667 42.666667 42.666667 42.666667s42.666667 4.266667 42.666667-42.666667V256c0-46.933333-42.666667-42.666667-42.666667-42.666667z m0-213.333333C228.949333 0 0 228.949333 0 512s228.949333 512 512 512 512-228.949333 512-512S794.325333 0 512 0z m0 938.666667C276.608 938.666667 85.333333 747.392 85.333333 512S276.608 85.333333 512 85.333333s426.666667 191.274667 426.666667 426.666667-191.274667 426.666667-426.666667 426.666667z m0-213.333334c-23.466667 0-42.666667 19.2-42.666667 42.666667s19.2 42.666667 42.666667 42.666667 42.666667-19.2 42.666667-42.666667-19.2-42.666667-42.666667-42.666667z"></path></symbol>','<symbol id="outline-icon-circle-error" viewBox="0 0 1024 1024"><path d="M512 0a512 512 0 1 0 512 512 512 512 0 0 0-512-512z m0 955.776A443.84 443.84 0 0 1 512 68.224a443.904 443.904 0 0 1 0 887.552z"></path><path d="M641.664 326.144a32 32 0 0 1 50.304 39.168l-3.52 4.48-306.112 328.064a32 32 0 0 1-50.304-39.168l3.52-4.48 306.112-328.064z"></path><path d="M324.608 337.088a32 32 0 0 1 40.704-5.12l4.48 3.584 328.064 306.112a32 32 0 0 1-39.168 50.304l-4.48-3.52-328.064-306.112a32 32 0 0 1-1.536-45.248z"></path></symbol>','<symbol id="outline-icon-circle-success" viewBox="0 0 1024 1024"><path d="M512 0C228.949333 0 0 228.949333 0 512s228.949333 512 512 512 512-228.949333 512-512S794.325333 0 512 0z m0 950.869333C269.909333 950.869333 73.130667 754.090667 73.130667 512 73.130667 269.909333 269.909333 73.130667 512 73.130667c242.090667 0 438.869333 196.778667 438.869333 438.869333 0 242.090667-196.778667 438.869333-438.869333 438.869333z"></path><path d="M737.834667 353.834667a42.666667 42.666667 0 0 1 63.872 56.32l-3.541334 4.010666L486.997333 725.333333a85.333333 85.333333 0 0 1-115.242666 4.992L366.336 725.333333l-140.501333-140.501333a42.666667 42.666667 0 0 1 56.32-63.872l4.010666 3.541333L426.666667 665.002667l311.168-311.168z"></path></symbol>','<symbol id="outline-icon-sound" viewBox="0 0 16 16"><path d="M12.757 4.708c-0.406 0.405-1.062 0.405-1.468 0s-0.405-1.062 0-1.468l2.935-2.935c0.406-0.405 1.062-0.405 1.468 0 0.405 0.405 0.405 1.062 0 1.468l-2.935 2.935zM7.996 15.991l-3.996-3.996h-2.997c-0.552 0-0.999-0.447-0.999-0.999v-5.994c0-0.552 0.447-0.999 0.999-0.999h2.997l3.996-3.996c0 0 0.999-0.125 0.999 0.999 0 5.976 0 14.966 0 13.985 0 1.124-0.999 0.999-0.999 0.999zM6.997 4.004l-1.998 1.998h-2.997v3.996h2.997l1.998 1.998v-7.992zM11.992 8.999c-0.552 0-0.999-0.447-0.999-0.999s0.447-0.999 0.999-0.999h2.997c0.552 0 0.999 0.447 0.999 0.999s-0.447 0.999-0.999 0.999h-2.997zM12.757 11.292l2.935 2.935c0.405 0.406 0.405 1.063 0 1.468s-1.062 0.405-1.468 0l-2.935-2.935c-0.405-0.406-0.405-1.063 0-1.468s1.062-0.405 1.468 0z"></path></symbol>'],j=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"icon";return o(t)?function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"icon";const s=/id="(.*?)"/,i=/^(\w+)-/;return D.find((n=>{const r=s.exec(n)[1];return i.exec(r)[1]===e&&r===("icon"===e?`${e}-${t}`:`${e}-icon-${t}`)}))}(t,e):[...D]},H=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const e=document.body;let s=document.querySelector("#outline-icons"),n=[];(t=>{if(!t)return!1;i(t)&&t.length>0?t.forEach((t=>{-1===D.indexOf(t)&&o(t)&&D.push(t)})):o(t)&&D.push(t)})(t),n=j(),s?s.innerHTML=n.join(""):(s=document.createElement("div"),s.innerHTML=`<svg id="outline-icons" aria-hidden="true" style="position:absolute;display:none;width:0;height:0;overflow:hidden;">${n.join("")}</svg>`,e.insertBefore(s.firstChild,e.firstChild))},O=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const s=e.replace(/^>/i,"");return!!(e&&s&&t)&&(t.matches?t.matches(s):!!t.msMatchesSelector&&t.msMatchesSelector(s))},B=t=>t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode,V=function(t,e,s,i,n,r){let o=arguments.length>6&&void 0!==arguments[6]&&arguments[6];const l=g.indexOf(s)>-1,a=function(l){const h=function(t){const e=t.target;return(s=e)&&3===s.nodeType?s.parentNode:s;var s}(l),c=((t,e,s,i)=>{const n=s||document;if(!t)return null;do{if(null!=e&&(e.startsWith(">")?t.parentNode===n&&O(t,e):O(t,e))||i&&t===n)return t;if(t===n)break}while(t=B(t))})(h,e,t);let u=r||t;l.delegateTarget=c,!0===r&&(u=n),c&&(!0===o&&v(t,s,a),i.call(u,l,n))};if(!t)return!1;t._listeners||(t._listeners=[]),t._listeners.push({el:t,selector:e,type:s,fn:a,data:n,context:r,capture:l}),i._delegateListener=a,t.addEventListener(s,a,l)},q=[];let F;H();class U extends C{constructor(t){super(),this._default(),t&&this.initialize(t)}_default(){return this.attrs=n(U.DEFAULTS),this.$el=null,this.id="",this.closed=!1,this.visible=!1,this.offset=-50,this.timer=null,this.destroyed=!1,this}initialize(t){return this.attr(t),this.id=this.attr("id"),this.offset=this.attr("offset")||-50,this.$emit("created",{...this.attr()}),this.render().addListeners(),this.attr("visible")&&this.open(),this}isClosed(){return this.closed}isDestroyed(){return this.destroyed}_getClassName(){const t=this.attr("type"),e=this.attr("effect"),s=this.attr("round"),i=this.attr("closable"),n=this.attr("visible"),r=this.attr("customClass"),o=["outline-message",`outline-message_${t}`,`outline-message_${e}`];return s&&o.push("outline-message_round"),i||o.push("outline-message_full-width"),n&&o.push("outline-message_visible"),r&&o.push(r),o}render(){const t=this.attr("type"),e=this.attr("message"),s=this.attr("effect"),i=this.attr("round"),n=this.attr("closable"),r=this.attr("dangerouslyUseHTMLString"),o=this._getClassName(),l=[];let a,h,c,u,m,f=20;return i&&"default"===s&&(f=12),"plain"!==s&&(a=A("light"===s?`circle-${t}`:t,{iconSet:"outline",size:f}),p(a,"outline-message__icon"),l.push(a)),r?(c=document.createDocumentFragment(),c.innerHTML=e):c=document.createTextNode(k(T(e))),h=d("p",{className:"outline-message__content"},[c]),l.push(h),n&&(u=A("close",{iconSet:"outline",size:18}),p(u,"outline-message__close"),l.push(u)),m=d("div",{className:o.join(" ")},l),m.style.cssText="top:-50px;",this.$el=m,document.body.appendChild(this.$el),this.$emit("mounted"),this}_refreshIcon(){const t=".outline-message_hidden",e=this.$el;let s,i,n,r,o,l,a,h=20;return this.isDestroyed()?this:(o=e.querySelector(".outline-icon"),o?(s=this.attr("type"),i=this.attr("effect"),n=this.attr("round"),"plain"===i?p(o,t):(f(o,t),n&&"default"===i&&(h=12)),l=o.querySelector(".outline-icon__svg"),u(l,{style:`width:${h}px;height:${h}px;`}),a=l.querySelector("use"),r="light"===i?`circle-${s}`:s,c(a,"xlink:href",`#outline-icon-${r}`),this):this)}_refreshMessage(){const t=this.$el;let e,s,i,n;return this.isDestroyed()||(e=t.querySelector(".outline-message__content"),s=this.attr("dangerouslyUseHTMLString"),i=this.attr("message"),n=s?i:k(T(i)),e.innerHTML=n),this}_refreshClose(){const t=".outline-message_hidden",e=this.$el;let s,i;return this.isDestroyed()||(s=e.querySelector(".outline-message__close"),i=this.attr("closable"),s&&(i?p(s,t):f(s,t))),this}_refreshEl(){const t=this.$el;let e;return this.isDestroyed()||(e=this._getClassName(),c(t,"className",e.join(" "))),this}refresh(t){return w(t)?(this.attr(t)._refreshIcon()._refreshMessage()._refreshClose()._refreshEl(),this):this}clearTimer(){return this.isDestroyed()||this.timer&&(clearTimeout(this.timer),this.timer=null),this}startTimer(t){return this.isDestroyed()||(this.timer=r((()=>{this.$emit("opened"),this.close()}),1e3*t)),this}open(t){const e=this.$el;let s,i,n,o;return this.isDestroyed()||(this.isClosed()&&this.refresh(t),s=this.attr("offset"),i=this.attr("duration"),n=s&&s>=this.offset?s:this.offset,o=`top:${n}px;`,this.clearTimer(),this.$emit("beforeOpen"),r((()=>{this.visible=!0,p(e,"outline-message_visible"),e.style.cssText=o,i>0&&this.startTimer(i)}),100)),this}close(){const t=this.$el;let s,i;return this.isDestroyed()||(s=this.attr("destroyAfterClosed"),i=this.attr("beforeClose"),e(i)&&i.call(this),t.style.cssText="top:-50px;",f(t,"outline-message_visible"),this.visible=!1,this.closed=!0,r((()=>{this.$emit("closed"),s&&this.destroy()}),500)),this}destroy(){return this.$emit("beforeDestroy"),this.isDestroyed()||(this.removeListeners(),document.body.removeChild(this.$el),clearTimeout(this.timer),this._default(),this.$emit("afterDestroy")),this}onMouseEnter(){return this.clearTimer(),this}onMouseLeave(){const t=this.attr("duration"),e=this.attr("delay");return t<=0||this.startTimer(e),this}onClose(){return this.clearTimer(),this.close(),this}addListeners(){const t=this.$el;return V(t,".outline-message__content","mouseenter",this.onMouseEnter,this,!0),V(t,".outline-message__content","mouseleave",this.onMouseLeave,this,!0),V(t,".outline-message__close","click",this.onClose,this,!0),this}removeListeners(){const t=this.$el;return v(t,"mouseenter",this.onMouseEnter),v(t,"mouseleave",this.onMouseLeave),v(t,"click",this.onClose),this}}U.DEFAULTS=n({id:"",type:"info",effect:"default",round:!1,offset:30,duration:3,delay:2,message:"",customClass:"",closable:!0,visible:!0,dangerouslyUseHTMLString:!1,destroyAfterClosed:!0,beforeClose:null}),["info","success","warning","error"].forEach((t=>{U[t]=e=>{const s={},i=M("outline-message-"),n=e.beforeClose||null;let r=e.offset||30;return o(e)?s.message=e:w(e)&&_(s,e),s.id=i,s.type=t,s.offset=r,s.visible=!1,s.beforeClose=()=>{U.close(i,n)},F=new U(s),q.forEach((t=>{r+=t.$el.offsetHeight+16})),F.offset=r,F.open(),q.push(F),F}})),U.close=(t,s)=>{const i=q.length;let n,r,o=-1;if(q.forEach(((i,n)=>{t===i.id&&(r=i.$el.offsetHeight,o=n,e(s)&&s.call(i),q.splice(n,1))})),i<=1||-1===o||o>q.length-1)return!1;for(n=o;n<i-1;n+=1){const t=q[n].$el;t.style.top=parseInt(t.style.top,10)-r-16+"px"}},U.clear=()=>{let t=q.length-1;for(;t>=0;t-=1)q[t].close()};class R{constructor(t,s){this.name=t,e(s)&&(this.action=s)}execute(){return this.action(),this}}class I{constructor(){this.commands=[]}get(t){return this.commands.find((e=>e.name===t))}add(t){return this.commands.push(t),this}del(t){const e=this.commands,s=e.find((e=>e.name===t)),i=s?e.indexOf(s):-1;return i>-1&&e.splice(i,1),this}clear(){return this.commands=[],this}execute(t){const s=this.commands.find((e=>e.name===t));return e(null==s?void 0:s.execute)&&s.execute(),this}}const P=function(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const s=A(t.icon,{iconSet:t.iconSet||"outline",color:t.color||"",size:t.size}),i=d("a",{className:"outline-toolbar__anchor",href:t.link},s),n=d("div",{className:`outline-toolbar__button ${t.name}`,"data-cmd":t.name},[t.link?i:s]);return p(s,"outline-toolbar__icon"),e&&p(n,"outline-toolbar_rounded"),t.disabled&&p(n,"outline-toolbar_disabled"),n},W="outline-toolbar_disabled",G="outline-toolbar_hidden";class J extends C{constructor(t){super(),this._default(),t&&this.initialize(t)}_default(){return this.attrs=n(J.DEFAULTS),this.disabled=!1,this.closed=!1,this.$el=null,this.buttons=[],this.commands=null,this}initialize(t){let s;return this.attr(t),this.disabled=this.attr("disabled"),this.closed=this.attr("closed"),this.commands=new I,s=this.attr("created"),e(s)&&s.call(this),this.render().addListeners(),this}isDisabled(t){let e;return t?(e=this.get(t),e.disabled):this.disabled}isExist(t){return!!this.get(t)}isClosed(){return this.closed}_getCommand(t){const s=this,{action:i,name:n}=t;let r,l,a=null,h=null;return i?(h=i.handler,r=i.context||this,e(h)?l=h:o(h)&&(l=function(){s.$emit(h,n)}),e(l)&&(a=new R(n,l.bind(r))),a):a}get(t){return this.buttons.find((e=>e.name===t))}render(){const t=this.attr("mounted"),s=this.attr("buttons")||[],i=this.attr("placement");return H(),this.$el=d("div",{id:M("outline-toolbar"),className:`outline-toolbar outline-toolbar_${i}`}),this._paint(s),document.body.appendChild(this.$el),this.closed&&this.hide(),this.disabled&&this.disable(),e(t)&&t.call(this),this}erase(){return this.$el.innerHTML="",this}_paint(t){const e=this.attr("rounded"),s=document.createDocumentFragment();return t.forEach((t=>{const i=P(t,e),n=this._getCommand(t),{name:r,disabled:o,context:l}=t;s.appendChild(i),this.isExist(r)||(this.buttons.push({$el:i,name:r,disabled:o||!1,context:l||this}),n&&this.commands.add(n))})),this.$el.appendChild(s),this}_remove(){return document.body.removeChild(this.$el),this}refresh(t){return this.attr({buttons:t}),this.erase()._paint(t),this}add(t){const e=this.$el,n=document.createDocumentFragment(),r=this.attr("buttons")||[],{name:o,disabled:l,context:a}=t,h=this._getCommand(t),c=t=>{const e=P(t);n.appendChild(e),r.push(t),this.buttons.push({$el:e,name:o,disabled:l||!1,context:a||this,command:h}),h&&this.commands.add(h)};return s(t)?c(t):i(t)&&t.forEach((t=>{s(t)&&c(t)})),e.appendChild(n),this}remove(t){const e=this.$el,s=this.buttons,i=this.get(t);let n=-1;return i?(n=s.indexOf(i),n>-1&&(s.splice(n,1),this.attrs("buttons").splice(n,1)),this._disable(t),e.removeChild(i.$el),this):this}_disable(t){const e=this.get(t),s=this.commands.get(t);return!e||e.disabled||(e.disabled=!0,s&&this.commands.del(s),p(e.$el,W)),this}_enable(t){const e=this.get(t),s=this.commands.get(t);return e&&e.disabled?(e.disabled=!1,s&&this.commands.add(s),f(e.$el,W),this):this}disable(t){const s=this.attr("afterDisabled");return t?this._disable(t):(p(this.$el,W),this.removeListeners(),this.disabled=!0,e(s)&&s.call(this)),this}enable(t){const s=this.attr("afterEnabled");return t?this._enable(t):(this.disabled=!1,f(this.$el,W),this.addListeners(),e(s)&&s.call(this)),this}show(t){const s=this.attr("afterOpened"),i=this.get(t),n=this.$el;if(t){if(!i)return this;f(i.$el,G)}else f(n,G),this.closed=!1,e(s)&&r((()=>{s.call(this)}),310);return this}hide(t){const s=this.attr("afterClosed"),i=this.get(t),n=this.$el;if(t){if(!i)return this;p(i.$el,G)}else p(n,G),this.closed=!0,e(s)&&r((()=>{s.call(this)}),310);return this}toggle(t){return this.isClosed()?this.show(t):this.hide(t),this}highlight(t){const e=this.get(t),s="outline-toolbar_active";let i;return e?(i=e.$el,m(i,s)?f(i,s):p(i,s),this):this}destroy(){const t=this.attr("beforeDestroy"),s=this.attr("afterDestroy");return e(t)&&t.call(this),this.commands.clear(),this.removeListeners()._remove()._default(),e(s)&&s.call(this),this}execute(t){return this.isDisabled(t)||this.commands.execute(t),this}onExecute(t){const e=t.delegateTarget;let s="";return e&&(s=e.getAttribute("data-cmd"),s&&this.execute(s)),this}addListeners(){const t=this.attr("buttons")||[],e=this.$el;return!t||t.length<1||V(e,".outline-toolbar__button","click",this.onExecute,this,!0),this}removeListeners(){const t=this.attr("buttons")||[],e=this.$el;return!t||t.length<1||v(e,".outline-toolbar__button",this.onExecute),this}}J.DEFAULTS=n({placement:"ltr",closed:!1,disabled:!1,rounded:!0,buttons:[],created:null,mounted:null,afterClosed:null,afterOpened:null,afterDisabled:null,afterEnabled:null,beforeDestroy:null,afterDestroy:null});class K{constructor(t){this.utterance=new SpeechSynthesisUtterance,t&&this.initialize(t)}_initialize(t){return t.lang&&this.setLang(t.lang),t.pitch&&this.setPitch(t.pitch),t.rate&&this.setRate(t.rate),t.text&&this.setText(t.text),t.voice&&this.setVoice(t.voice),t.volume&&this.setVolume(t.volume),this}initialize(t){return this._initialize(t)._addListeners(),this}isSpeaking(){return speechSynthesis.speaking}isPending(){return speechSynthesis.pending}isPaused(){return speechSynthesis.paused}getVoices(){return speechSynthesis.getVoices()}setLang(t){return this.utterance.lang=t,this}setPitch(t){return this.utterance.pitch=t,this}setRate(t){return this.utterance.rate=t,this}setText(t){return this.utterance.text=t,this}setVoice(t){return this.utterance.voice=t,this}setVolume(t){return this.utterance.volume=t,this}speak(t){return t&&this.setText(t),speechSynthesis.speak(this.utterance),this}pause(){return speechSynthesis.pause(),this}resume(){return speechSynthesis.resume(),this}cancel(){return speechSynthesis.cancel(),this.setText(""),this}_addListeners(){const t=this.utterance,e=this;return["boundary","end","error","start","mark","pause","resume"].forEach((s=>{t[`on${s}`]=t=>{L(s,{event:t,speech:e})}})),speechSynthesis.onvoiceschanged=t=>{L("voiceschanged",{event:t,speech:e})},this}}K.isSupport="speechSynthesis"in window;const Q=(t,e)=>{let s,i=t;for(;i;)s=i.tagName.toLowerCase(),"script"!==s&&"style"!==s&&p(i,"outline-reader_sibling"),i=e?i.previousElementSibling:i.nextElementSibling},X="进入阅读模式,按 ESC 键可退出阅读模式";class Y extends C{constructor(t){super(),this._default(),t&&this.initialize(t)}_default(){return this.attrs=n(Y.DEFAULTS),this.reading=!1,this.$target=null,this.$paper=null,this.$title=null,this.$article=null,this.$progress=null,this.toolbar=null,this.speech=null,this}initialize(t){let e=null;return this.attr(t),e=this.attr("target"),o(e)?this.$target=document.querySelector(e):l(e)&&(this.$target=e),this.$target?(K.isSupport&&(this.speech=new K),this.render().addListeners(),this):this}isSpeaking(){var t;return null==this||null===(t=this.speech)||void 0===t?void 0:t.isSpeaking()}render(){return this._renderEdge()._paint(this.$target),this}erase(){return this.$article.innerHTML="",this}_paint(t){const e=document.createDocumentFragment(),s=[...t.cloneNode(!0).children];return r((()=>{s.forEach((t=>{e.appendChild(t)})),this.$article.appendChild(e)})),this}_remove(){const t=this.$paper,e=this.toolbar;return t&&document.body.removeChild(t),e&&e.destroy(),this}refresh(){return this.erase()._paint(this.$target),this}_renderEdge(){const t=this.$target;let e,s,i,n,o,a=this.attr("title");s=t.querySelector("h1"),l(a)&&(s=a),l(s)&&(a=s.innerText),s=d("h1",{className:"outline-reader__title"},a),this.$title=s,i=d("article",{id:"outline-reader__article",className:"outline-reader__article"}),this.$article=i,n=d("div",{className:"outline-reader__progress"}),this.$progress=n;const h=[];return K.isSupport&&this.attr("allowSpeak")&&h.push({name:"speak",icon:"sound",size:20,action:{context:this,handler:this.speak}}),h.push({name:"print",icon:"print",size:20,action:{context:this,handler:this.print}},{name:"exit",icon:"close",size:20,action:{context:this,handler:this.exit}}),this.toolbar=new J({placement:"rtl",buttons:h}),e=d("section",{id:"outline-reader",className:"outline-reader outline-reader_hidden"},[n,s,i,this.toolbar.$el]),this.$paper=e,document.body.appendChild(e),r((()=>{o=e.previousElementSibling,Q(o,!0),o=e.nextElementSibling,Q(o)})),this}enter(){const t="outline-reader",e=`${t}--reading`,s=`${t}_hidden`,i=this.$paper,n=document.querySelectorAll(".outline-reader_sibling"),r=this.attr("enterReadingTip")||X;return this.reading||!i||(n.forEach((t=>{p(t,s)})),p(i,e),f(i,s),this.toolbar.show(),this.reading=!0,U.info({round:!0,message:r}),this.$emit("enterReading")),this}exit(){const t="outline-reader",e=`${t}--reading`,s=`${t}_hidden`,i=this.$paper,n=document.querySelectorAll(".outline-reader_sibling");return this.reading&&i?(p(i,s),f(i,e),n.forEach((t=>{f(t,s)})),this.toolbar.hide(),this.reading=!1,this.$emit("exitReading"),this):this}toggle(){return this.reading?this.exit():this.enter(),this}speak(){const t=this.$article.innerText,e=this.speech;return K.isSupport?(this.toolbar.highlight("speak"),this.isSpeaking()?e.cancel():e.speak(t),this):this}print(){return e(print)?(print(),this):this}destroy(){return this.$paper?(this.removeListeners()._remove()._default(),this):this}onPrint(){return this.print(),this}onEnterReading(){return this.toggle(),this}onExitReading(t){return 27===t.keyCode&&this.reading&&(this.toggle(),function(t){t.stopPropagation(),t.preventDefault()}(t)),this}addListeners(){return this.$paper?(function(t,s,i,n,r){let o=arguments.length>5&&void 0!==arguments[5]&&arguments[5];const l=g.indexOf(s)>-1,a=function(e){let l=r||t;!0===r&&(l=n),!0===o&&v(t,s,a),i.call(l,e,n)};if(!e(i))return!1;t._listeners||(t._listeners=[]),t._listeners.push({el:t,type:s,fn:a,data:n,context:r,capture:l}),i._delegateListener=a,t.addEventListener(s,a,l)}(document,"keyup",this.onExitReading,this,!0),this.$on("toolbar:action:print",this.onPrint),this.$on("toolbar:action:reading",this.onEnterReading),this):this}removeListeners(){return this.$paper?(v(document,"keyup",this.onExitReading),this.$off("toolbar:action:print"),this.$off("toolbar:action:reading"),this):this}}return Y.DEFAULTS=n({target:"",title:"",enterReadingTip:X,allowSpeak:!1}),Y}));
//# sourceMappingURL=reader.min.js.map
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/liming0101/outline.js.git
git@gitee.com:liming0101/outline.js.git
liming0101
outline.js
outline.js
master

搜索帮助