penlf
Version:
a simple rich text editor.
1 lines • 7.17 kB
JavaScript
(()=>{"use strict";var e={660:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(645),o=n.n(r)()((function(e){return e[1]}));o.push([e.id,'.actionsBar{width:100%;height:50px;position:relative;border-radius:13px}.actionsBar .icon{width:50px;height:50px;border:none;position:relative;font-size:13px;background-color:#ffffff;border-radius:12px;cursor:pointer;user-select:none;transition-duration:.3s;margin-right:5px;color:#3d82a0}.actionsBar .icon:hover,.actionsBar .using{background-color:#e6e9ea;color:#0a4b65}.editor{padding:30px;position:relative;width:calc(100% - 60px);height:calc(100% - 50px - 60px);line-height:28px;overflow:auto}.editor pre{margin:0;word-break:break-all;background-color:#e0e0e0;overflow:auto}.editor hr{height:1px;border:none;border-top:1px solid #ddd;margin:15px 0}.editor blockquote{color:#919399;border-left:5px #e2e3e5 solid;padding-left:8px}.editor:empty:before{content:"(。・・)ノ在这里写文章...";margin-left:5px;color:#c4cbd0;font-size:15px;cursor:text}.editor:focus{outline:none}.editor::-webkit-scrollbar{width:8px}.editor::-webkit-scrollbar-thumb{border-radius:10px;background:#ece9e9}\n',""]);const i=o},645:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(r)for(var i=0;i<this.length;i++){var a=this[i][0];null!=a&&(o[a]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);r&&o[u[0]]||(n&&(u[2]?u[2]="".concat(n," and ").concat(u[2]):u[2]=n),t.push(u))}},t}},402:(e,t,n)=>{n.r(t),n.d(t,{default:()=>p});var r=n(379),o=n.n(r),i=n(795),a=n.n(i),c=n(695),u=n.n(c),l=n(216),s=n.n(l),d=n(660),f={styleTagTransform:function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}},setAttributes:function(e){var t=n.nc;t&&e.setAttribute("nonce",t)},insert:function(e){var t=u()("head");if(!t)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");t.appendChild(e)}};f.domAPI=a(),f.insertStyleElement=s(),o()(d.Z,f);const p=d.Z&&d.Z.locals?d.Z.locals:void 0},695:e=>{var t={};e.exports=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}},379:e=>{var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var i={},a=[],c=0;c<e.length;c++){var u=e[c],l=r.base?u[0]+r.base:u[0],s=i[l]||0,d="".concat(l," ").concat(s);i[l]=s+1;var f=n(d),p={css:u[1],media:u[2],sourceMap:u[3]};-1!==f?(t[f].references++,t[f].updater(p)):t.push({identifier:d,updater:o(p,r),references:1}),a.push(d)}return a}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var i=r(e=e||[],o=o||{});return function(e){e=e||[];for(var a=0;a<i.length;a++){var c=n(i[a]);t[c].references--}for(var u=r(e,o),l=0;l<i.length;l++){var s=n(i[l]);0===t[s].references&&(t[s].updater(),t.splice(s,1))}i=u}}},216:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t),t}},795:e=>{e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r=n.css,o=n.media,i=n.sourceMap;o?e.setAttribute("media",o):e.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(r,e)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,exports:{}};return e[r](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{function e(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return document.execCommand(e,!1,t)}function t(e,t,n){return e.addEventListener(t,n)}function r(e){return document.queryCommandValue(e)}function o(e){return document.queryCommandState(e)}n(402),window.penlf=function(n,i,a){if("string"!=typeof n)throw new Error("type of 'editor' variate must be 'string'.");return function(n,i,a){let c=[{name:"bold",icon:"<b>B</b>",title:"加粗",type:"button",state:()=>o("bold"),result:()=>e("bold")},{name:"italic",icon:"<i>I</i>",title:"斜体",type:"button",state:()=>o("italic"),result:()=>e("italic")},{name:"underline",icon:"<u>U</u>",title:"下划线",type:"button",state:()=>o("underline"),result:()=>{e("underline")}},{name:"heading1",icon:"<b>H1</b>",title:"一级标题",type:"button",result:()=>e("formatBlock","<h1>")},{name:"heading2",icon:"<b>H2</b>",title:"二级标题",type:"button",result:()=>e("formatBlock","<h2>")},{name:"heading3",icon:"<b>H3</b>",title:"三级标题",type:"button",result:()=>e("formatBlock","<h3>")},{name:"heading4",icon:"<b>H4</b>",title:"四级标题",type:"button",result:()=>e("formatBlock","<h4>")},{name:"quote",icon:"“”",title:"引用",type:"button",result:()=>e("formatBlock","<blockquote>")},{name:"oList",icon:"·",title:"有序列表",type:"button",result:()=>e("insertOrderedList")},{name:"uList",icon:"123",title:"无序列表",type:"button",result:()=>e("insertUnorderedList")},{name:"line",icon:"line",title:"分割线",type:"button",result:()=>{e("insertHorizontalRule"),e("formatBlock","<p>")}}];if(a)for(let e=0;e<a.length;e++)c.push(a[e]);n.className="RichTextEditor";let u=document.createElement("div");u.id="editor",u.className="editor",u.contentEditable="true",u.style.overflow="auto";let l=document.createElement("div");l.className="actionsBar",c.forEach((e=>{if(Object.keys(e).includes("init"))return void e.init(u,e,l);let r=document.createElement("button");r.classList.add("icon"),r.classList.add(e.icon),r.innerHTML=e.icon;let o=()=>{Object.keys(e).includes("state")&&(e.state()?r.classList.add("using"):r.classList.remove("using"))};r.onclick=()=>{e.result(),o()},t(u,"keyup",o),t(u,"mouseup",o),t(u,"click",o),n.appendChild(l),n.appendChild(u),l.appendChild(r)}));let s=0;u.onkeydown=t=>{"Enter"===t.key&&"blockquote"===r("formatBlock")&&setTimeout((function(){return e("formatBlock","<p>")}),0),"Enter"===t.key&&"pre"===r("formatBlock")?(s++,s>=2&&setTimeout((function(){return e("formatBlock","<p>")}),0)):s=0},t(u,"keydown",(function(e){83===e.keyCode&&(navigator.platform.match("Mac")?e.metaKey:e.ctrlKey)&&(e.preventDefault(),i?i(u.innerHTML):console.log("save"))})),e("defaultParagraphSeparator","p")}(document.querySelector(n),i,a),{version:"0.3(beta)"}}})()})();