├── .gitignore ├── LICENSE ├── README.md ├── babel.config.js ├── dist ├── css │ ├── app.852fda94.css │ └── chunk-vendors.bc7b1367.css ├── favicon.ico ├── index.html └── js │ ├── app.b934c6d8.js │ ├── app.b934c6d8.js.map │ ├── chunk-vendors.0522a91a.js │ └── chunk-vendors.0522a91a.js.map ├── package.json ├── public ├── favicon.ico └── index.html ├── src ├── App.vue ├── Editor.vue ├── assets │ ├── icons │ │ ├── image-align-expand-active.png │ │ ├── image-align-expand.png │ │ ├── image-align-full-active.png │ │ ├── image-align-full.png │ │ ├── image-align-normal-active.png │ │ └── image-align-normal.png │ └── logo.png ├── libs │ ├── EditorMode.vue │ ├── Embed │ │ ├── ImageHandler.vue │ │ ├── ImagePosition.vue │ │ ├── InsertGist.vue │ │ └── InsertImage.vue │ ├── InsertEmbed.vue │ ├── ListHandler.vue │ └── ReadMode.vue ├── main.js └── themes │ └── default.css ├── vue.config.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | 4 | # local env files 5 | .env.local 6 | .env.*.local 7 | 8 | # Log files 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.sw* 21 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Tui2Tone 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue2 Medium Editor 2 | 3 | Vue2 component for Medium Editor wrapper with https://github.com/yabwe/medium-editor 4 | But all plugins are re-writing in Vue.js 5 | 6 | [Demo](https://tui2tone.github.io/vue2-medium-editor/) 7 | 8 | ps. a demo work for all features except upload photo because i doesn't deploy a serverside. 9 | 10 | ## Features 11 | - Medium like editor 12 | - Image uploader and description 13 | - Image width configable width for normal / expand / full screen sizing 14 | - Embed Gist 15 | 16 | ## Usage 17 | 18 | ### Installation 19 | 20 | ``` 21 | yarn add https://github.com/tui2tone/vue2-medium-editor 22 | ``` 23 | 24 | ### Usage 25 | 26 | add to global component 27 | 28 | ``` 29 | import Vue from 'vue' 30 | import MediumEditor from 'vue2-content-editor' 31 | 32 | Vue.component('medium-editor', MediumEditor) 33 | ``` 34 | 35 | usage 36 | 37 | ``` 38 | 39 | 40 | 51 | ``` 52 | 53 | Don't forget to include css file in your project 54 | ``` 55 | medium-editor/dist/css/medium-editor.css 56 | vue2-medium-editor/src/themes/default.css 57 | ``` 58 | 59 | ### Nuxt.js Usage 60 | 61 | create a plugins 62 | 63 | ``` 64 | import Vue from 'vue' 65 | import MediumEditor from 'vue2-content-editor' 66 | 67 | Vue.component('medium-editor', MediumEditor) 68 | ``` 69 | 70 | import a plugin in nuxt.config.js with disable ssr mode 71 | 72 | ``` 73 | plugins: [ 74 | { src: '~/plugins/medium-editor', ssr: false }, 75 | ] 76 | ``` 77 | 78 | include a css file 79 | ``` 80 | css: [ 81 | 'medium-editor/dist/css/medium-editor.css', 82 | 'vue2-medium-editor/src/themes/default.css' 83 | ] 84 | ``` 85 | 86 | ## Configuration 87 | 88 | 89 | 90 | ## License 91 | 92 | MIT: https://github.com/tui2tone/vue2-medium-editor/blob/master/LICENSE -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } -------------------------------------------------------------------------------- /dist/css/app.852fda94.css: -------------------------------------------------------------------------------- 1 | @import url(https://gist.github.com/assets/embed-0af287a4b5c981db301049e56f06e5d3.css);.medium-editor-container *{outline:none}.medium-editor-container .insert-image-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:fixed;left:100px;top:100px;-webkit-transform:translate(-54px,-7px);transform:translate(-54px,-7px)}.medium-editor-container .insert-image-container .btn-toggle{border:1px solid #ddd;width:40px;height:40px;border-radius:50%;font-size:16px;color:#555;background-color:#fff}.medium-editor-container .image-handler{display:-webkit-box;display:-ms-flexbox;display:flex;position:fixed;left:50%;top:100px;-webkit-transform:translate(-50%,-20px);transform:translate(-50%,-20px);background-color:rgba(0,0,0,.6);border-radius:5px;padding-left:10px;padding-right:10px}.medium-editor-container .image-handler .btn-toggle{border:0;width:40px;height:40px;border-radius:50%;font-size:16px;color:#fff;background-color:transparent}.medium-editor-container .image-handler .btn-toggle:hover{cursor:pointer;color:#00bd6a}.medium-editor-container .insert-image-container .insert-image-menu{display:-webkit-box;display:-ms-flexbox;display:flex}.medium-editor-container .insert-image-container .insert-image-menu .btn-toggle{margin-left:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.medium-editor-container .editor-image{display:block;max-width:1000px;margin:2rem auto}.medium-editor-container .editor-image img{width:100%;height:auto;display:block}.medium-editor-container .editor-image-description{max-width:1000px;margin:0 auto;text-align:center;margin-bottom:2rem;margin-top:-1rem;font-size:.8rem;color:#999;position:relative}.medium-editor-container .editor-image-description.is-empty:after{content:"Image Description";color:#bbb;position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.medium-editor-container .editor-image+.editor-image-description.is-empty{display:none}.medium-editor-container .editor-image.is-focus+.editor-image-description.is-empty{display:block}.medium-editor-container .editor-image img:hover{cursor:pointer}.medium-editor-container .editor-image.is-expand{max-width:1200px}.medium-editor-container .editor-image.is-full{max-width:100%}.medium-editor-container .editor-image input{margin:0 auto;border:0;display:block;font-size:.7rem;padding:.5rem;width:100%;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;color:#888;margin-bottom:2rem}.medium-editor-container .editor-embed-container.is-inactive,.medium-editor-container .editor-embed-input.is-inactive,.medium-editor-container .editor-embed>a{display:none}*{outline:none;-webkit-box-sizing:border-box;box-sizing:border-box}.medium-editor-container{height:100%;margin:0 auto;position:relative;padding:2rem 0;font-size:1.2rem}.medium-editor-container blockquote,.medium-editor-container h1,.medium-editor-container h2,.medium-editor-container h3,.medium-editor-container h4,.medium-editor-container h5,.medium-editor-container h6,.medium-editor-container ol,.medium-editor-container p,.medium-editor-container ul{max-width:1000px;margin:0 auto}.medium-editor-container ol,.medium-editor-container ul{margin-left:auto!important;padding-left:30px}.medium-editor-container .editor,.medium-editor-container .medium-editor-element:empty,.medium-editor-container .medium-editor-placeholder{max-width:1000px;margin:0 auto}.medium-editor-container .medium-editor-placeholder:after{color:#bbb;max-width:1000px;margin:0 auto;display:block}.medium-editor-container .editor.has-content{max-width:100%;margin:0 auto}.medium-editor-container .editor.has-content.medium-editor-placeholder:after{display:none}.medium-editor-container h1{font-size:2.5em;margin-bottom:.1em}.medium-editor-container h2{font-size:2.2em;margin-top:.2em;margin-bottom:.1em}.medium-editor-container h3{font-size:1.9em;margin-top:.2em;margin-bottom:.1em}.medium-editor-container h4{font-size:1.6em;margin-top:.2em;margin-bottom:.1em}.medium-editor-container h5{font-size:1.3em;margin-top:.2em;margin-bottom:.1em}.medium-editor-container h6{font-size:1em;margin-bottom:.1em}.medium-editor-container p{margin-bottom:1em}.medium-editor-container ul{margin-left:30px;list-style:disc}.medium-editor-container ul li{margin-bottom:.5em}.medium-editor-container ol{margin-left:30px}.medium-editor-container ol li{margin-bottom:.5em}.medium-editor-container blockquote{border-left:3px solid #3b3e3e;padding-left:30px;margin-bottom:1.5em;margin-top:1.5em;font-style:italic}.medium-toolbar-arrow-under:after{border-color:#222526 transparent transparent;top:48px}.medium-toolbar-arrow-over:before{border-color:transparent transparent #222526}.medium-editor-toolbar{background-color:#222526;border:1px solid #222526;border-radius:4px}.medium-editor-toolbar li button{background-color:transparent;border:none;border-right:1px solid #222526;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:48px;min-width:48px;-webkit-transition:background-color .2s ease-in,color .2s ease-in;transition:background-color .2s ease-in,color .2s ease-in}.medium-editor-toolbar li button:hover{background-color:transparent;color:#00bd6a}.medium-editor-toolbar li .medium-editor-button-first{border-bottom-left-radius:4px;border-top-left-radius:4px}.medium-editor-toolbar li .medium-editor-button-last{border-bottom-right-radius:4px;border-right:none;border-top-right-radius:4px}.medium-editor-toolbar li .medium-editor-button-active{background-color:transparent;color:#00bd6a}.medium-editor-toolbar-form{background:#222526;border-radius:4px;color:#fff}.medium-editor-toolbar-form .medium-editor-toolbar-input{background:#222526;color:#fff;height:48px}.medium-editor-toolbar-form .medium-editor-toolbar-input::-webkit-input-placeholder{color:#fff;color:hsla(0,0%,100%,.8)}.medium-editor-toolbar-form .medium-editor-toolbar-input:-moz-placeholder,.medium-editor-toolbar-form .medium-editor-toolbar-input::-moz-placeholder{color:#fff;color:hsla(0,0%,100%,.8)}.medium-editor-toolbar-form .medium-editor-toolbar-input:-ms-input-placeholder{color:#fff;color:hsla(0,0%,100%,.8)}.medium-editor-toolbar-form a{color:#fff}.medium-editor-toolbar-anchor-preview{background:#222526;border-radius:4px;color:#fff}.medium-editor-placeholder:after{color:#222526} -------------------------------------------------------------------------------- /dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tui2tone/vue2-medium-editor/096dafba9ed75415948cd447e39da3723ce72cb2/dist/favicon.ico -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | vue2-medium-editor
-------------------------------------------------------------------------------- /dist/js/app.b934c6d8.js: -------------------------------------------------------------------------------- 1 | (function(e){function i(i){for(var n,A,r=i[0],a=i[1],l=i[2],u=0,d=[];u-1?i.handler.currentSize="is-expand":t.indexOf("full")>-1?i.handler.currentSize="is-full":i.handler.currentSize="is-normal";var n=e.querySelector("img");i.handler.currentLine=e,i.handler.isShow=!i.handler.isShow;var s=n.getBoundingClientRect();i.handler.position.top=s.top+"px"})}})},subscribeEmbedInitial:function(){var e=this;setTimeout(function(){for(var i=e.editor.getFocusedElement().getElementsByClassName("editor-embed"),t=0;t"!=n?"editor-image-description":"editor-image-description is-empty"}},detectShowToggle:function(e){if(this.insert.isShow&&this.insert.isToggle&&this.toggle(),this.handler.isShow=!1,e.target.className.indexOf("editor-image-description")<=-1)for(var i=this.editor.getFocusedElement().getElementsByClassName("editor-image"),t=0;t)+/,"").trim();if(s)this.insert.isShow=!1,this.insert.isToggle=!1,this.insert.focusLine=null;else{var o=n.getBoundingClientRect();this.insert.position.top=o.top+"px",this.insert.position.left=o.left+"px",this.insert.isShow=!0,this.insert.focusLine=n}},toggle:function(){this.insert.isToggle=!this.insert.isToggle},addImage:function(e){if(this.insert.isToggle){var i=this;this.editorRef.focus(),this.editor.selectElement(this.insert.focusLine),this.editor.pasteHTML('
\n \n
\n

\n
'),{cleanAttrs:[],cleanTags:[],unwrapTags:[]}),this.handler.currentLine=this.editor.getSelectedParentElement().previousElementSibling.previousElementSibling,this.handler.currentImg=this.editor.getSelectedParentElement().previousElementSibling.previousElementSibling.querySelector("img");var t=this.handler.currentImg.getBoundingClientRect();this.window.scrollTo(0,t.top-t.x),this.handler.currentLine.onclick=function(){var e=this.className;e.indexOf("expand")>-1?i.handler.currentSize="is-expand":e.indexOf("full")>-1?i.handler.currentSize="is-full":i.handler.currentSize="is-normal";var t=this.querySelector("img");i.handler.currentLine=this,i.handler.isShow=!i.handler.isShow;var n=t.getBoundingClientRect();i.handler.position.top=n.top+"px"},this.insert.isToggle=!1,this.insert.isShow=!1,this.insert.focusLine=null}},imageSizing:function(e){this.handler.currentSize=e,this.handler.currentLine.className="editor-image "+e},addEmbed:function(){this.insert.isToggle&&(this.editor.pasteHTML('


',{cleanAttrs:[],cleanTags:[],unwrapTags:[]}),this.insert.embedElm=this.editor.getSelectedParentElement(),this.insert.isToggle=!1,this.insert.isShow=!1)},detectEmbed:function(e){13===e.keyCode&&this.insert.embedElm&&(this.insert.embedElm.innerHTML=this.insert.embedElm.innerHTML.replace("
",""),this.renderEmbed(this.insert.embedElm),this.insert.embedElm=null)},renderEmbed:function(e){var i=new E.a({input:e,plugins:[Object(B["a"])(),Object(I["a"])()],inlineEmbed:"all"});i.render()},inputFilter:function(e,i,t){if(e&&!i){if(/(\/|^)(Thumbs\.db|desktop\.ini|\..+)$/.test(e.name))return t();if(/\.(php5?|html?|jsx?)$/i.test(e.name))return t()}},inputFile:function(e,i){e&&!i&&(this.$refs.upload.active=!0),e&&e.success&&this.addImage(e.response.url)},handleScroll:function(){if(this.handler.isShow=!1,this.insert.isShow){var e=this.editor.getSelectedParentElement(),i=e.getBoundingClientRect();this.insert.position.top=i.top+"px",this.insert.position.left=i.left+"px",this.insert.isShow=!0,this.insert.focusLine=e}}},mounted:function(){this.subscribe()},destroyed:function(){this.unsubscribe()},beforeMount:function(){this.window=window,window.addEventListener("scroll",this.handleScroll)},beforeDestroy:function(){window.removeEventListener("scroll",this.handleScroll)}},L=w,v=(t("uoyr"),t("KHd+")),C=Object(v["a"])(L,c,u,!1,null,null,null),y=C.exports,S=function(){var e=this,i=e.$createElement,t=e._self._c||i;return t("div",{staticClass:"list-handler"})},Q=[],Z=(t("SRfc"),{components:{},data:function(){return{focusLine:null,currentLine:null,isLastBeforeLi:!1}},props:["editor"],methods:{subscribe:function(){this.editor.subscribe("editableKeydown",this.detectList),this.editor.subscribe("editableKeyup",this.detectList)},unsubscribe:function(){this.editor.unsubscribe("editableKeydown",this.detectList),this.editor.subscribe("editableKeyup",this.detectList)},detectList:function(e){this.currentLine=this.editor.getSelectedParentElement();var i=this.currentLine.innerHTML.match(/^(- ).*/g);if(i&&i.length>0){var t=this.currentLine.innerHTML.replace(/^(- )/g,"");this.currentLine.innerHTML="
  • "+t+"
"}var n=this.currentLine.innerHTML.match(/^(\d+. )/g);if(n&&n.length>0){var s=this.currentLine.innerHTML.replace(/^(\d+. )/g,"");this.currentLine.innerHTML="
  1. "+s+"
"}var o=e.keyCode||e.charCode;8!=o&&46!=o||("

  • "==this.currentLine.outerHTML?this.isLastBeforeLi=!0:this.isLastBeforeLi=!1,this.isLastBeforeLi&&(this.currentLine.outerHTML="",this.editor.pasteHTML("



    ",{cleanAttrs:[],cleanTags:[],unwrapTags:[]})))}},mounted:function(){this.subscribe()},destroyed:function(){this.unsubscribe()}}),H=Z,M=(t("V24+"),Object(v["a"])(H,S,Q,!1,null,null,null)),P=M.exports,J=t("F/us"),X=t.n(J),z={name:"medium-editor",data:function(){return{editor:null,defaultOptions:{forcePlainText:!1,placeholder:{text:"Write something great!!"},toolbar:{buttons:["bold","italic","quote","h1","h2","h3","h4","h5"]}},hasContent:!1}},props:["options","onChange","prefill","readOnly"],computed:{editorOptions:function(){return X.a.extend(this.defaultOptions,this.options)}},components:{InsertImage:y,ListHandler:P},mounted:function(){this.readOnly||this.createElm()},methods:{createElm:function(){var e=this;this.editor=new l.a(this.$refs.editor,this.editorOptions),this.prefill&&(this.hasContent=!0,this.$refs.editor.focus()),this.editor.subscribe("editableInput",function(){var i=e.editor.getContent();setTimeout(function(){e.hasContent=!!i},1e3),e.$emit("input",i),e.onChange&&e.onChange(i)})},destroyElm:function(){this.editor.destroy()}},destroyed:function(){this.destroyElm()}},N=z,O=(t("10Re"),Object(v["a"])(N,A,r,!1,null,null,null)),k=O.exports,j={name:"app",data:function(){return{content:"",defaultValue:'

    Vue2 Medium Editor

    \n
    \n
    righteous indignation and dislike
    \n

    But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes

    • But I must explain to you how all this mistaken idea of denouncing
    • of pleasure of the moment, so blinded by desire

    \n

    On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will

    https://gist.github.com/tui2tone/294af316b8ac09ea440c8743b97baa27

    On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire

    Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariaturasdasdasdasd

    \n

    Section 1.10.33

    \n
    \n
    you how all this mistaken idea of denouncing pleasure
    \n

    At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus

    1. cum soluta nobis est eligendi optio cumque
    2. righteous indignation and dislike

    odio dignissimos ducimus

    \n

    \n
    \n
    \n
    I will give you a complete account of the system
    \n

    \n

    On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will

    ',options:{uploadUrl:"http://localhost:3000/v1/upload/image"}}},components:{"medium-editor":k},methods:{onChange:function(){console.log("change",this.content)}}},T=j,G=(t("ZL7j"),Object(v["a"])(T,s,o,!1,null,null,null)),R=G.exports;n["a"].config.productionTip=!1,new n["a"]({render:function(e){return e(R)}}).$mount("#app")},ZL7j:function(e,i,t){"use strict";var n=t("slcd"),s=t.n(n);s.a},dlPf:function(e,i){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYJpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG7SwNBEIc/EyU+IhG0sLAIviqVqBC0EUwQFYKEGMGoTXJ5CXkcdxEJtoJtQEG08VXoX6CtYC0IiiKIhZW1oo2Gcy4JRMTMMjvf/nZn2J0FSzClpPV6F6QzOS0w7XEuhpacthdsNNNIEz1hRVcn/X4fNe3znjoz3g6atWqf+9daojFdgbpG4QlF1XLCM8K+9Zxq8o5wh5IMR4XPhAc0uaDwnalHyvxqcqLM3yZrwYAXLG3CzsQvjvxiJamlheXl9KZTa0rlPuZL7LHMwrzEbvEudAJM48HJLFN4cTPMuMxuBhlhSFbUyHeV8ufISq4is0oejVUSJMkxIOqaVI9JjIsek5Eib/b/b1/1+OhIubrdAw3PhvHeB7ZtKBYM4+vIMIrHYH2Cy0w1P3sIYx+iF6pa7wE4NuH8qqpFduFiCzof1bAWLklWcUs8Dm+n0BqC9htoXi73rLLPyQMEN+SrrmFvH/rlvGPlBwaVZ7qUIlpUAAAACXBIWXMAAAsTAAALEwEAmpwYAAABtElEQVR4nO3dLa5TQRzG4ZePBAKKhYDEEASpIIEg2UQ3wBrYQDeBJOAaDOpKWAgKUgQJoldiOumcW877PH76n5z8zMmcdBIAAAAAAAAAAAAAAP5jt6ZP2G8fJLk/fc46HbLZ/Zo54O7MH7/2IcmrBeas0eckr2cOuD3zx6/dWWDGWk1/dksEwAUTQDkBlBNAuSXeAr4k+bnAnDW6uukNAAAAAABrMPZF0H77KMcPFe6ddTeM+p3kUza7H6cuHD0L+Jjk2eBa5via5Pmpi0ZPAx8PrmOeJyOLHAeXE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBsN4PtZd8E5fBtZNPpfwW9yvBHctfCX4ZDjTeMAAAAAAP8wdm/gKfbbd0meTp+zTlfZ7N7PHDB6FnCKF0leLjBnjR4mmRqA4+ByAigngHICKLdEAH8WmLFW05/dEm8Bb+PLoVGHm94AAAAAAAAAAAAAAAAX7S+LiRynJRkZxgAAAABJRU5ErkJggg=="},g449:function(e,i,t){},hA2R:function(e,i,t){},iwZU:function(e,i){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYJpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG7SwNBEIc/EyU+IhG0sLAIviqVqBC0EUwQFYKEGMGoTXJ5CXkcdxEJtoJtQEG08VXoX6CtYC0IiiKIhZW1oo2Gcy4JRMTMMjvf/nZn2J0FSzClpPV6F6QzOS0w7XEuhpacthdsNNNIEz1hRVcn/X4fNe3znjoz3g6atWqf+9daojFdgbpG4QlF1XLCM8K+9Zxq8o5wh5IMR4XPhAc0uaDwnalHyvxqcqLM3yZrwYAXLG3CzsQvjvxiJamlheXl9KZTa0rlPuZL7LHMwrzEbvEudAJM48HJLFN4cTPMuMxuBhlhSFbUyHeV8ufISq4is0oejVUSJMkxIOqaVI9JjIsek5Eib/b/b1/1+OhIubrdAw3PhvHeB7ZtKBYM4+vIMIrHYH2Cy0w1P3sIYx+iF6pa7wE4NuH8qqpFduFiCzof1bAWLklWcUs8Dm+n0BqC9htoXi73rLLPyQMEN+SrrmFvH/rlvGPlBwaVZ7qUIlpUAAAACXBIWXMAAAsTAAALEwEAmpwYAAABpklEQVR4nO3dPYoUURiF4eMPMmjoOjQ0lw4Ejd2EsWhgbCDmvQnzyWQikwl1HYbKIAgGMxsQud+M9zzPAuoUxZs0t6hOAAAAAAAAAAAAAAD4j91avvD51f0kJ8t39nSRw/HnyoG7Ky9+5VOS5wM7OzpN8mLlwO2VF79yZ2BjV8uf3UQA3GACKCeAcgIoN/Er4CzJj4GdHZ1f9w0AAAAAADuYeCPoXi5fCHm4fGsv35Oc5nD8tXJk4izgfZLXAzs7+pjkzcqBidPARwMbu3q8esBxcDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0C5iQC+DWzs6uvqgYlvBb9L8iU+Fv23Lj8WDQAAAADwzyb+N/BtkifLd/Z0nsPxw8qBibOAp0meDezs6EGSpQE4Di4ngHICKCeAchMB/B7Y2NXyZzfxK+BlkpOBnR1dXPcNAAAAAAAAAAAAAABwo/0Bz2IdW3KlJRsAAAAASUVORK5CYII="},meME:function(e,i,t){},nJy0:function(e,i){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYJpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG7SwNBEIc/EyU+IhG0sLAIviqVqBC0EUwQFYKEGMGoTXJ5CXkcdxEJtoJtQEG08VXoX6CtYC0IiiKIhZW1oo2Gcy4JRMTMMjvf/nZn2J0FSzClpPV6F6QzOS0w7XEuhpacthdsNNNIEz1hRVcn/X4fNe3znjoz3g6atWqf+9daojFdgbpG4QlF1XLCM8K+9Zxq8o5wh5IMR4XPhAc0uaDwnalHyvxqcqLM3yZrwYAXLG3CzsQvjvxiJamlheXl9KZTa0rlPuZL7LHMwrzEbvEudAJM48HJLFN4cTPMuMxuBhlhSFbUyHeV8ufISq4is0oejVUSJMkxIOqaVI9JjIsek5Eib/b/b1/1+OhIubrdAw3PhvHeB7ZtKBYM4+vIMIrHYH2Cy0w1P3sIYx+iF6pa7wE4NuH8qqpFduFiCzof1bAWLklWcUs8Dm+n0BqC9htoXi73rLLPyQMEN+SrrmFvH/rlvGPlBwaVZ7qUIlpUAAAACXBIWXMAAAsTAAALEwEAmpwYAAABl0lEQVR4nO3cMU5VURSF4X2UEIKl45CSnspEp2N0DIbxaEtPieOwhBAS8yxgCnvzOOv7BnDXzc3fvHdPbhUAAAAAAAAAAAAAAG/Y6h44HA7nVXXWvbOpx7XWQ+fARAC/qupL986mfq+1vnYOvOu8+Iv3Axu7an92EwFwxAQQTgDhBBDuZGDjpqruB3Z2dPvaNwAAAAAA7GDiQMhpPR8I+di9tZm/9Xwg5KlzZCKA66r61r2zqeu11vfOgYm3gZ8GNnZ10T3gdXA4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAuIkA/gxs7Oque8DHoo/XyMeiAQAAAIAEE38F/6iqy+6dTd2utX52Dpx0XvzFVVV9HtjZ0Yeqag3A6+BwAggngHACCDcRwL+BjV21P7uJn4HnVXXWvbOpx7XWw2vfBAAAAAAAAAAAAAAAR+s/WyMtFJhHwuAAAAAASUVORK5CYII="},rpHo:function(e,i){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYJpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG7SwNBEIc/EyU+IhG0sLAIviqVqBC0EUwQFYKEGMGoTXJ5CXkcdxEJtoJtQEG08VXoX6CtYC0IiiKIhZW1oo2Gcy4JRMTMMjvf/nZn2J0FSzClpPV6F6QzOS0w7XEuhpacthdsNNNIEz1hRVcn/X4fNe3znjoz3g6atWqf+9daojFdgbpG4QlF1XLCM8K+9Zxq8o5wh5IMR4XPhAc0uaDwnalHyvxqcqLM3yZrwYAXLG3CzsQvjvxiJamlheXl9KZTa0rlPuZL7LHMwrzEbvEudAJM48HJLFN4cTPMuMxuBhlhSFbUyHeV8ufISq4is0oejVUSJMkxIOqaVI9JjIsek5Eib/b/b1/1+OhIubrdAw3PhvHeB7ZtKBYM4+vIMIrHYH2Cy0w1P3sIYx+iF6pa7wE4NuH8qqpFduFiCzof1bAWLklWcUs8Dm+n0BqC9htoXi73rLLPyQMEN+SrrmFvH/rlvGPlBwaVZ7qUIlpUAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVR4nO3ZsU3FQBBF0Rn4AYJ+yImQoAzogRooCFJy+gGRoCWhhV3DvnMK8BtZN7FcBQAAAAAAAAAAAADAP9azB8YYl1V1MXtnU1/d/TlzYEUAL1V1N3tnU6/dfT9z4Gzmw3+dL9jY1fR3tyIA/jABhBNAOAGEOy3YeKuqjwU7O3o/+gAAAAAAYAc9xng4+giO02OMcfQRHMffwHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHCnqno8+ggAAAAAAGbq2QNjjKequp69s6n37n6eOXCa+fBfN1V1u2BnR1dVNTUAfwPDCSCcAMIJINyKAL4XbOxq+rtb8Rl4WVUXs3c29dXdn0cfAQAAAAAAAAAAAADAn/UDSmUh115NxS0AAAAASUVORK5CYII="},slcd:function(e,i,t){},uoyr:function(e,i,t){"use strict";var n=t("meME"),s=t.n(n);s.a}}); 2 | //# sourceMappingURL=app.b934c6d8.js.map -------------------------------------------------------------------------------- /dist/js/app.b934c6d8.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/icons/image-align-expand.png","webpack:///./src/Editor.vue?95cf","webpack:///./src/assets/icons/image-align-full-active.png","webpack:///./src/libs/ListHandler.vue?dac4","webpack:///./src/App.vue?138d","webpack:///./src/Editor.vue?f51a","webpack:///./src/libs/InsertImage.vue?9206","webpack:///src/libs/InsertImage.vue","webpack:///./src/libs/InsertImage.vue?1d02","webpack:///./src/libs/InsertImage.vue","webpack:///./src/libs/ListHandler.vue?21a9","webpack:///src/libs/ListHandler.vue","webpack:///./src/libs/ListHandler.vue?1ecd","webpack:///./src/libs/ListHandler.vue","webpack:///src/Editor.vue","webpack:///./src/Editor.vue?554c","webpack:///./src/Editor.vue","webpack:///src/App.vue","webpack:///./src/App.vue?98c8","webpack:///./src/App.vue","webpack:///./src/main.js","webpack:///./src/App.vue?fa84","webpack:///./src/assets/icons/image-align-expand-active.png","webpack:///./src/assets/icons/image-align-normal-active.png","webpack:///./src/assets/icons/image-align-normal.png","webpack:///./src/assets/icons/image-align-full.png","webpack:///./src/libs/InsertImage.vue?c1ad"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ListHandler_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","Appvue_type_template_id_d2deead4_render","_vm","this","_h","$createElement","_c","_self","attrs","id","readOnly","prefill","defaultValue","options","onChange","model","callback","$$v","content","expression","staticRenderFns","Editorvue_type_template_id_9996ea22_render","_e","staticClass","uploadUrl","editorRef","$refs","editor","ref","class","has-content","hasContent","domProps","innerHTML","_s","Editorvue_type_template_id_9996ea22_staticRenderFns","InsertImagevue_type_template_id_2b89a138_render","insert","style","on","click","toggle","icon","post-action","extensions","accept","multiple","size","input-filter","inputFilter","input-file","inputFile","$set","addEmbed","handler","$event","imageSizing","currentSize","src","InsertImagevue_type_template_id_2b89a138_staticRenderFns","index_es","add","free_solid_svg_icons_index_es","free_regular_svg_icons_index_es","InsertImagevue_type_script_lang_js","components","FontAwesomeIcon","vue_fontawesome","file-upload","vue_upload_component_default","a","position","top","left","isShow","isToggle","embedElm","files","focusLine","currentLine","currentImg","props","methods","subscribe","detectShowToggle","detectEmbed","detectImageDescription","subscribeImageInitial","subscribeEmbedInitial","unsubscribe","_this","handlerVm","setTimeout","editorImages","getFocusedElement","getElementsByClassName","onclick","_this2","className","replace","indexOf","img","querySelector","currentPos","getBoundingClientRect","_this3","editorEmbeds","nextElm","nextElementSibling","url","getAttribute","outerHTML","renderEmbed","descriptionElm","description","trim","e","target","getSelectedParentElement","addImage","focus","selectElement","pasteHTML","concat","cleanAttrs","cleanTags","unwrapTags","previousElementSibling","scrollTo","x","sizing","keyCode","elm","embed","embed_default","input","plugins","embed_plugin_noembed_src","inlineEmbed","render","newFile","oldFile","prevent","test","upload","active","success","response","handleScroll","mounted","destroyed","beforeMount","addEventListener","beforeDestroy","removeEventListener","libs_InsertImagevue_type_script_lang_js","component","componentNormalizer","InsertImage","ListHandlervue_type_template_id_589636f3_render","ListHandlervue_type_template_id_589636f3_staticRenderFns","ListHandlervue_type_script_lang_js","isLastBeforeLi","detectList","matchList","match","matchOlList","_content","charCode","libs_ListHandlervue_type_script_lang_js","ListHandler_component","ListHandler","Editorvue_type_script_lang_js","defaultOptions","forcePlainText","placeholder","text","toolbar","buttons","computed","editorOptions","underscore_default","extend","createElm","medium_editor_default","getContent","$emit","destroyElm","destroy","src_Editorvue_type_script_lang_js","Editor_component","Editor","Appvue_type_script_lang_js","medium-editor","console","log","src_Appvue_type_script_lang_js","App_component","App","vue_runtime_esm","config","productionTip","h","$mount","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InsertImage_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default"],"mappings":"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","file":"js/app.b934c6d8.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/vue2-medium-editor/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([8,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYJpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG7SwNBEIc/EyU+IhG0sLAIviqVqBC0EUwQFYKEGMGoTXJ5CXkcdxEJtoJtQEG08VXoX6CtYC0IiiKIhZW1oo2Gcy4JRMTMMjvf/nZn2J0FSzClpPV6F6QzOS0w7XEuhpacthdsNNNIEz1hRVcn/X4fNe3znjoz3g6atWqf+9daojFdgbpG4QlF1XLCM8K+9Zxq8o5wh5IMR4XPhAc0uaDwnalHyvxqcqLM3yZrwYAXLG3CzsQvjvxiJamlheXl9KZTa0rlPuZL7LHMwrzEbvEudAJM48HJLFN4cTPMuMxuBhlhSFbUyHeV8ufISq4is0oejVUSJMkxIOqaVI9JjIsek5Eib/b/b1/1+OhIubrdAw3PhvHeB7ZtKBYM4+vIMIrHYH2Cy0w1P3sIYx+iF6pa7wE4NuH8qqpFduFiCzof1bAWLklWcUs8Dm+n0BqC9htoXi73rLLPyQMEN+SrrmFvH/rlvGPlBwaVZ7qUIlpUAAAACXBIWXMAAAsTAAALEwEAmpwYAAABtElEQVR4nO3dPW7VQBSG4XMgEihIIDZDgyiokJIFsQYWFFqaVClhIQikRJcCOUWyAQ93nIu/5+nHZ2S9jX9kVwEAAAAAAAAAAAAA8B/r2QOWZTmvqpez5+zUobvvZg7YIoCrqrqYPWenvnb35cwBz2Ye/NHzDWbs1fRzt0UAnDABhBNAOAGEO9tgxrequt1gzh7dPPUGAAAAAIA9GHohZFmWt1V1WVUvjrsdBv2pqqvu/rl24WgA11X1fmQt01x394e1i0YD+FVVr0fWMs3v7n6zdpHHweEEEE4A4QQQTgDhBBBOAOEEEE4A4QQQTgDhBBBOAOEEEE4A4QQQTgDhBBBOAOEEEE4A4QQQTgDhBBBOAOEEEE4A4QQQTgDhBBBOAOEEEE4A4QQQTgDhBBBOAOEEEE4A4QQQTgDhRgP4cdRdcAzfRxb9y8eiL8pv4U/FoR7+NL76Y9EAAAAAQIKhW8FrLMvyuarezZ6zUzfd/WXmgLOZB3/0sao+bTBnj15V1dQAPA4OJ4BwAggngHBbBPB3gxl7Nf3cbXEZeF7eHBp16O67p94EAAAAAAAAAAAAAAAn6x5zUjG4lkG0MAAAAABJRU5ErkJggg==\"","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=style&index=0&lang=css\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYJpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG7SwNBEIc/EyU+IhG0sLAIviqVqBC0EUwQFYKEGMGoTXJ5CXkcdxEJtoJtQEG08VXoX6CtYC0IiiKIhZW1oo2Gcy4JRMTMMjvf/nZn2J0FSzClpPV6F6QzOS0w7XEuhpacthdsNNNIEz1hRVcn/X4fNe3znjoz3g6atWqf+9daojFdgbpG4QlF1XLCM8K+9Zxq8o5wh5IMR4XPhAc0uaDwnalHyvxqcqLM3yZrwYAXLG3CzsQvjvxiJamlheXl9KZTa0rlPuZL7LHMwrzEbvEudAJM48HJLFN4cTPMuMxuBhlhSFbUyHeV8ufISq4is0oejVUSJMkxIOqaVI9JjIsek5Eib/b/b1/1+OhIubrdAw3PhvHeB7ZtKBYM4+vIMIrHYH2Cy0w1P3sIYx+iF6pa7wE4NuH8qqpFduFiCzof1bAWLklWcUs8Dm+n0BqC9htoXi73rLLPyQMEN+SrrmFvH/rlvGPlBwaVZ7qUIlpUAAAACXBIWXMAAAsTAAALEwEAmpwYAAABcUlEQVR4nO3ZsW0bQQBE0aHNgLD7cS4wEGDHrkCK2IBrUAOM1IFyZYRz9mNDiQElbGH35J33CthZHH5y2AQAAAAAAAAAAAAAgP/YbvjC5fQlyWH4zprecjz/HTmwH3n4zUuS7xN2VvSa5MfIgU8jD7/5PGFjVcO/3YwA+MAEUE4A5QRQbsZfwO8kfybsrOi69QUAAAAAgBXscjk9bH0JtrNP8rz1JdiO18ByAigngHICKCeAcgIoJ4ByAigngHICKCeAcgIoJ4ByAigngHICKCeAcgIoJ4ByAigngHICKCeAcgIoJ4ByAigngHICKCeAcgIoJ4ByAigngHICKCeAcgIoJ4ByAigngHICKCeAcgIoJ4By+ySPW18CAAAAAICRdsMXLqdfSb4N31nTNcfz08iB/cjDb+6S3E/YWdHXJEMD8BpYTgDlBFBOAOVmBPBvwsaqhn+7GX8BP5McJuys6G3rCwAAAAAAAAAAAAAA8KG9A156E/UO6fQWAAAAAElFTkSuQmCC\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListHandler.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListHandler.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('medium-editor',{attrs:{\"readOnly\":false,\"prefill\":_vm.defaultValue,\"options\":_vm.options,\"onChange\":_vm.onChange},model:{value:(_vm.content),callback:function ($$v) {_vm.content=$$v},expression:\"content\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.readOnly)?_c('div',{staticClass:\"medium-editor-container\"},[(_vm.editor)?_c('insert-image',{attrs:{\"uploadUrl\":_vm.options.uploadUrl,\"editorRef\":_vm.$refs.editor,\"editor\":_vm.editor}}):_vm._e(),(_vm.editor)?_c('list-handler',{attrs:{\"editor\":_vm.editor}}):_vm._e(),_c('div',{ref:\"editor\",staticClass:\"editor\",class:{'has-content': _vm.hasContent},domProps:{\"innerHTML\":_vm._s(_vm.prefill)}})],1):_vm._e(),(_vm.readOnly)?_c('div',{staticClass:\"medium-editor-container\"},[_c('div',{staticClass:\"editor read-only has-content\",domProps:{\"innerHTML\":_vm._s(_vm.prefill)}})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"image-handler-container\"},[(_vm.insert.isShow)?_c('div',{staticClass:\"insert-image-container\",style:(_vm.insert.position)},[_c('div',{staticClass:\"insert-image-toggle\"},[_c('button',{staticClass:\"btn-toggle\",on:{\"click\":_vm.toggle}},[_c('font-awesome-icon',{attrs:{\"icon\":\"plus\"}})],1)]),(_vm.insert.isToggle)?_c('div',{staticClass:\"insert-image-menu\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn-toggle\",attrs:{\"post-action\":_vm.uploadUrl,\"extensions\":\"gif,jpg,jpeg,png,webp\",\"accept\":\"image/png,image/gif,image/jpeg,image/webp\",\"multiple\":true,\"size\":1024 * 1024 * 10},on:{\"input-filter\":_vm.inputFilter,\"input-file\":_vm.inputFile},model:{value:(_vm.insert.files),callback:function ($$v) {_vm.$set(_vm.insert, \"files\", $$v)},expression:\"insert.files\"}},[_c('font-awesome-icon',{attrs:{\"icon\":['far', 'images']}})],1),_c('button',{staticClass:\"btn-toggle\",on:{\"click\":_vm.addEmbed}},[_c('font-awesome-icon',{attrs:{\"icon\":['fas', 'code']}})],1)],1):_vm._e()]):_vm._e(),(_vm.handler.isShow)?_c('div',{staticClass:\"image-handler\",style:(_vm.handler.position)},[_c('div',{staticClass:\"image-hander-menu\"},[_c('button',{staticClass:\"btn-toggle\",on:{\"click\":function($event){_vm.imageSizing('is-normal')}}},[(_vm.handler.currentSize == 'is-normal')?_c('img',{attrs:{\"src\":require(\"../assets/icons/image-align-normal-active.png\")}}):_vm._e(),(_vm.handler.currentSize != 'is-normal')?_c('img',{attrs:{\"src\":require(\"../assets/icons/image-align-normal.png\")}}):_vm._e()]),_c('button',{staticClass:\"btn-toggle\",on:{\"click\":function($event){_vm.imageSizing('is-expand')}}},[(_vm.handler.currentSize == 'is-expand')?_c('img',{attrs:{\"src\":require(\"../assets/icons/image-align-expand-active.png\")}}):_vm._e(),(_vm.handler.currentSize != 'is-expand')?_c('img',{attrs:{\"src\":require(\"../assets/icons/image-align-expand.png\")}}):_vm._e()]),_c('button',{staticClass:\"btn-toggle\",on:{\"click\":function($event){_vm.imageSizing('is-full')}}},[(_vm.handler.currentSize == 'is-full')?_c('img',{attrs:{\"src\":require(\"../assets/icons/image-align-full-active.png\")}}):_vm._e(),(_vm.handler.currentSize != 'is-full')?_c('img',{attrs:{\"src\":require(\"../assets/icons/image-align-full.png\")}}):_vm._e()])])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InsertImage.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InsertImage.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InsertImage.vue?vue&type=template&id=2b89a138\"\nimport script from \"./InsertImage.vue?vue&type=script&lang=js\"\nexport * from \"./InsertImage.vue?vue&type=script&lang=js\"\nimport style0 from \"./InsertImage.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"list-handler\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListHandler.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListHandler.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ListHandler.vue?vue&type=template&id=589636f3\"\nimport script from \"./ListHandler.vue?vue&type=script&lang=js\"\nexport * from \"./ListHandler.vue?vue&type=script&lang=js\"\nimport style0 from \"./ListHandler.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=9996ea22\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=d2deead4\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport App from './App.vue'\n\nVue.config.productionTip = false\n\nnew Vue({\n render: h => h(App)\n}).$mount('#app')\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYJpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG7SwNBEIc/EyU+IhG0sLAIviqVqBC0EUwQFYKEGMGoTXJ5CXkcdxEJtoJtQEG08VXoX6CtYC0IiiKIhZW1oo2Gcy4JRMTMMjvf/nZn2J0FSzClpPV6F6QzOS0w7XEuhpacthdsNNNIEz1hRVcn/X4fNe3znjoz3g6atWqf+9daojFdgbpG4QlF1XLCM8K+9Zxq8o5wh5IMR4XPhAc0uaDwnalHyvxqcqLM3yZrwYAXLG3CzsQvjvxiJamlheXl9KZTa0rlPuZL7LHMwrzEbvEudAJM48HJLFN4cTPMuMxuBhlhSFbUyHeV8ufISq4is0oejVUSJMkxIOqaVI9JjIsek5Eib/b/b1/1+OhIubrdAw3PhvHeB7ZtKBYM4+vIMIrHYH2Cy0w1P3sIYx+iF6pa7wE4NuH8qqpFduFiCzof1bAWLklWcUs8Dm+n0BqC9htoXi73rLLPyQMEN+SrrmFvH/rlvGPlBwaVZ7qUIlpUAAAACXBIWXMAAAsTAAALEwEAmpwYAAABtElEQVR4nO3dLa5TQRzG4ZePBAKKhYDEEASpIIEg2UQ3wBrYQDeBJOAaDOpKWAgKUgQJoldiOumcW877PH76n5z8zMmcdBIAAAAAAAAAAAAAAP5jt6ZP2G8fJLk/fc46HbLZ/Zo54O7MH7/2IcmrBeas0eckr2cOuD3zx6/dWWDGWk1/dksEwAUTQDkBlBNAuSXeAr4k+bnAnDW6uukNAAAAAABrMPZF0H77KMcPFe6ddTeM+p3kUza7H6cuHD0L+Jjk2eBa5via5Pmpi0ZPAx8PrmOeJyOLHAeXE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBsN4PtZd8E5fBtZNPpfwW9yvBHctfCX4ZDjTeMAAAAAAP8wdm/gKfbbd0meTp+zTlfZ7N7PHDB6FnCKF0leLjBnjR4mmRqA4+ByAigngHICKLdEAH8WmLFW05/dEm8Bb+PLoVGHm94AAAAAAAAAAAAAAAAX7S+LiRynJRkZxgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYJpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG7SwNBEIc/EyU+IhG0sLAIviqVqBC0EUwQFYKEGMGoTXJ5CXkcdxEJtoJtQEG08VXoX6CtYC0IiiKIhZW1oo2Gcy4JRMTMMjvf/nZn2J0FSzClpPV6F6QzOS0w7XEuhpacthdsNNNIEz1hRVcn/X4fNe3znjoz3g6atWqf+9daojFdgbpG4QlF1XLCM8K+9Zxq8o5wh5IMR4XPhAc0uaDwnalHyvxqcqLM3yZrwYAXLG3CzsQvjvxiJamlheXl9KZTa0rlPuZL7LHMwrzEbvEudAJM48HJLFN4cTPMuMxuBhlhSFbUyHeV8ufISq4is0oejVUSJMkxIOqaVI9JjIsek5Eib/b/b1/1+OhIubrdAw3PhvHeB7ZtKBYM4+vIMIrHYH2Cy0w1P3sIYx+iF6pa7wE4NuH8qqpFduFiCzof1bAWLklWcUs8Dm+n0BqC9htoXi73rLLPyQMEN+SrrmFvH/rlvGPlBwaVZ7qUIlpUAAAACXBIWXMAAAsTAAALEwEAmpwYAAABpklEQVR4nO3dPYoUURiF4eMPMmjoOjQ0lw4Ejd2EsWhgbCDmvQnzyWQikwl1HYbKIAgGMxsQud+M9zzPAuoUxZs0t6hOAAAAAAAAAAAAAAD4j91avvD51f0kJ8t39nSRw/HnyoG7Ky9+5VOS5wM7OzpN8mLlwO2VF79yZ2BjV8uf3UQA3GACKCeAcgIoN/Er4CzJj4GdHZ1f9w0AAAAAADuYeCPoXi5fCHm4fGsv35Oc5nD8tXJk4izgfZLXAzs7+pjkzcqBidPARwMbu3q8esBxcDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0A5AZQTQDkBlBNAOQGUE0C5iQC+DWzs6uvqgYlvBb9L8iU+Fv23Lj8WDQAAAADwzyb+N/BtkifLd/Z0nsPxw8qBibOAp0meDezs6EGSpQE4Di4ngHICKCeAchMB/B7Y2NXyZzfxK+BlkpOBnR1dXPcNAAAAAAAAAAAAAABwo/0Bz2IdW3KlJRsAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYJpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG7SwNBEIc/EyU+IhG0sLAIviqVqBC0EUwQFYKEGMGoTXJ5CXkcdxEJtoJtQEG08VXoX6CtYC0IiiKIhZW1oo2Gcy4JRMTMMjvf/nZn2J0FSzClpPV6F6QzOS0w7XEuhpacthdsNNNIEz1hRVcn/X4fNe3znjoz3g6atWqf+9daojFdgbpG4QlF1XLCM8K+9Zxq8o5wh5IMR4XPhAc0uaDwnalHyvxqcqLM3yZrwYAXLG3CzsQvjvxiJamlheXl9KZTa0rlPuZL7LHMwrzEbvEudAJM48HJLFN4cTPMuMxuBhlhSFbUyHeV8ufISq4is0oejVUSJMkxIOqaVI9JjIsek5Eib/b/b1/1+OhIubrdAw3PhvHeB7ZtKBYM4+vIMIrHYH2Cy0w1P3sIYx+iF6pa7wE4NuH8qqpFduFiCzof1bAWLklWcUs8Dm+n0BqC9htoXi73rLLPyQMEN+SrrmFvH/rlvGPlBwaVZ7qUIlpUAAAACXBIWXMAAAsTAAALEwEAmpwYAAABl0lEQVR4nO3cMU5VURSF4X2UEIKl45CSnspEp2N0DIbxaEtPieOwhBAS8yxgCnvzOOv7BnDXzc3fvHdPbhUAAAAAAAAAAAAAAG/Y6h44HA7nVXXWvbOpx7XWQ+fARAC/qupL986mfq+1vnYOvOu8+Iv3Axu7an92EwFwxAQQTgDhBBDuZGDjpqruB3Z2dPvaNwAAAAAA7GDiQMhpPR8I+di9tZm/9Xwg5KlzZCKA66r61r2zqeu11vfOgYm3gZ8GNnZ10T3gdXA4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAOAGEE0A4AYQTQDgBhBNAuIkA/gxs7Oque8DHoo/XyMeiAQAAAIAEE38F/6iqy+6dTd2utX52Dpx0XvzFVVV9HtjZ0Yeqag3A6+BwAggngHACCDcRwL+BjV21P7uJn4HnVXXWvbOpx7XWw2vfBAAAAAAAAAAAAAAAR+s/WyMtFJhHwuAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYJpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZG7SwNBEIc/EyU+IhG0sLAIviqVqBC0EUwQFYKEGMGoTXJ5CXkcdxEJtoJtQEG08VXoX6CtYC0IiiKIhZW1oo2Gcy4JRMTMMjvf/nZn2J0FSzClpPV6F6QzOS0w7XEuhpacthdsNNNIEz1hRVcn/X4fNe3znjoz3g6atWqf+9daojFdgbpG4QlF1XLCM8K+9Zxq8o5wh5IMR4XPhAc0uaDwnalHyvxqcqLM3yZrwYAXLG3CzsQvjvxiJamlheXl9KZTa0rlPuZL7LHMwrzEbvEudAJM48HJLFN4cTPMuMxuBhlhSFbUyHeV8ufISq4is0oejVUSJMkxIOqaVI9JjIsek5Eib/b/b1/1+OhIubrdAw3PhvHeB7ZtKBYM4+vIMIrHYH2Cy0w1P3sIYx+iF6pa7wE4NuH8qqpFduFiCzof1bAWLklWcUs8Dm+n0BqC9htoXi73rLLPyQMEN+SrrmFvH/rlvGPlBwaVZ7qUIlpUAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVR4nO3ZsU3FQBBF0Rn4AYJ+yImQoAzogRooCFJy+gGRoCWhhV3DvnMK8BtZN7FcBQAAAAAAAAAAAADAP9azB8YYl1V1MXtnU1/d/TlzYEUAL1V1N3tnU6/dfT9z4Gzmw3+dL9jY1fR3tyIA/jABhBNAOAGEOy3YeKuqjwU7O3o/+gAAAAAAYAc9xng4+giO02OMcfQRHMffwHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHACCCeAcAIIJ4BwAggngHCnqno8+ggAAAAAAGbq2QNjjKequp69s6n37n6eOXCa+fBfN1V1u2BnR1dVNTUAfwPDCSCcAMIJINyKAL4XbOxq+rtb8Rl4WVUXs3c29dXdn0cfAQAAAAAAAAAAAADAn/UDSmUh115NxS0AAAAASUVORK5CYII=\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InsertImage.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InsertImage.vue?vue&type=style&index=0&lang=css\""],"sourceRoot":""} -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue2-content-editor", 3 | "version": "0.1.3", 4 | "main": "./src/Editor.vue", 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint", 9 | "publish-demo": "git subtree push --prefix dist origin gh-pages" 10 | }, 11 | "dependencies": { 12 | "@fortawesome/fontawesome-svg-core": "^1.2.0", 13 | "@fortawesome/free-regular-svg-icons": "^5.1.0", 14 | "@fortawesome/free-solid-svg-icons": "^5.1.0", 15 | "@fortawesome/vue-fontawesome": "^0.1.0", 16 | "bulma": "^0.7.1", 17 | "embed-js": "4.2.3", 18 | "embed-plugin-github": "^5.0.3", 19 | "embed-plugin-noembed": "^5.0.3", 20 | "embed-plugin-url": "^5.0.3", 21 | "embed-plugin-youtube": "^5.0.3", 22 | "embed-preset-basic": "^5.0.3", 23 | "iframe-resizer": "^3.6.1", 24 | "medium-editor": "^5.23.3", 25 | "pure-gist-embed": "^1.0.3", 26 | "randomstring": "^1.1.5", 27 | "underscore": "^1.9.1", 28 | "vue": "^2.5.16", 29 | "vue-upload-component": "^2.8.9" 30 | }, 31 | "devDependencies": { 32 | "@vue/cli-plugin-babel": "^3.0.0-rc.3", 33 | "@vue/cli-plugin-eslint": "^3.0.0-rc.3", 34 | "@vue/cli-service": "^3.0.0-rc.3", 35 | "vue-template-compiler": "^2.5.16" 36 | }, 37 | "eslintConfig": { 38 | "root": true, 39 | "env": { 40 | "node": true 41 | }, 42 | "extends": [ 43 | "plugin:vue/essential", 44 | "eslint:recommended" 45 | ], 46 | "rules": { 47 | "no-console": 0, 48 | "indent": 0 49 | }, 50 | "parserOptions": { 51 | "parser": "babel-eslint" 52 | } 53 | }, 54 | "postcss": { 55 | "plugins": { 56 | "autoprefixer": {} 57 | } 58 | }, 59 | "browserslist": [ 60 | "> 1%", 61 | "last 2 versions", 62 | "not ie <= 8" 63 | ] 64 | } 65 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tui2tone/vue2-medium-editor/096dafba9ed75415948cd447e39da3723ce72cb2/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | vue2-medium-editor 9 | 10 | 11 | 14 |
    15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 69 | 70 | 75 | -------------------------------------------------------------------------------- /src/Editor.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 115 | -------------------------------------------------------------------------------- /src/assets/icons/image-align-expand-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tui2tone/vue2-medium-editor/096dafba9ed75415948cd447e39da3723ce72cb2/src/assets/icons/image-align-expand-active.png -------------------------------------------------------------------------------- /src/assets/icons/image-align-expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tui2tone/vue2-medium-editor/096dafba9ed75415948cd447e39da3723ce72cb2/src/assets/icons/image-align-expand.png -------------------------------------------------------------------------------- /src/assets/icons/image-align-full-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tui2tone/vue2-medium-editor/096dafba9ed75415948cd447e39da3723ce72cb2/src/assets/icons/image-align-full-active.png -------------------------------------------------------------------------------- /src/assets/icons/image-align-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tui2tone/vue2-medium-editor/096dafba9ed75415948cd447e39da3723ce72cb2/src/assets/icons/image-align-full.png -------------------------------------------------------------------------------- /src/assets/icons/image-align-normal-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tui2tone/vue2-medium-editor/096dafba9ed75415948cd447e39da3723ce72cb2/src/assets/icons/image-align-normal-active.png -------------------------------------------------------------------------------- /src/assets/icons/image-align-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tui2tone/vue2-medium-editor/096dafba9ed75415948cd447e39da3723ce72cb2/src/assets/icons/image-align-normal.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tui2tone/vue2-medium-editor/096dafba9ed75415948cd447e39da3723ce72cb2/src/assets/logo.png -------------------------------------------------------------------------------- /src/libs/EditorMode.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tui2tone/vue2-medium-editor/096dafba9ed75415948cd447e39da3723ce72cb2/src/libs/EditorMode.vue -------------------------------------------------------------------------------- /src/libs/Embed/ImageHandler.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | -------------------------------------------------------------------------------- /src/libs/Embed/ImagePosition.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 35 | 36 | -------------------------------------------------------------------------------- /src/libs/Embed/InsertGist.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 122 | -------------------------------------------------------------------------------- /src/libs/Embed/InsertImage.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 149 | -------------------------------------------------------------------------------- /src/libs/InsertEmbed.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /src/libs/ListHandler.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/libs/ReadMode.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 45 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | 4 | Vue.config.productionTip = false 5 | 6 | new Vue({ 7 | render: h => h(App) 8 | }).$mount('#app') 9 | -------------------------------------------------------------------------------- /src/themes/default.css: -------------------------------------------------------------------------------- 1 | @import url('https://assets-cdn.github.com/assets/gist-embed-1baaff35daab552f019ad459494450f1.css'); 2 | 3 | .medium-editor-container * { 4 | outline: none; 5 | box-sizing: border-box; 6 | } 7 | 8 | .medium-editor-container { 9 | height: 100%; 10 | margin: 0 auto; 11 | position: relative; 12 | padding: 2rem 0; 13 | font-size: 1.2rem; 14 | } 15 | 16 | .medium-editor-container p, 17 | .medium-editor-container h1, 18 | .medium-editor-container h2, 19 | .medium-editor-container h3, 20 | .medium-editor-container h4, 21 | .medium-editor-container h5, 22 | .medium-editor-container h6, 23 | .medium-editor-container ul, 24 | .medium-editor-container ol, 25 | .medium-editor-container blockquote { 26 | max-width: 1000px; 27 | margin: 0 auto; 28 | } 29 | .medium-editor-container ul, 30 | .medium-editor-container ol { 31 | margin-left: auto !important; 32 | padding-left: 30px; 33 | } 34 | 35 | .medium-editor-container .medium-editor-element:empty, .medium-editor-container .medium-editor-placeholder { 36 | max-width: 1000px; 37 | margin: 0 auto; 38 | } 39 | 40 | .medium-editor-container .editor { 41 | max-width: 1000px; 42 | margin: 0 auto; 43 | } 44 | 45 | .medium-editor-container .medium-editor-placeholder::after { 46 | color: #BBB; 47 | max-width: 1000px; 48 | margin: 0 auto; 49 | display: block; 50 | } 51 | 52 | .medium-editor-container .editor.has-content { 53 | max-width: 100%; 54 | margin: 0 auto; 55 | } 56 | 57 | .medium-editor-container .editor.has-content.medium-editor-placeholder::after { 58 | display: none; 59 | } 60 | 61 | 62 | .medium-editor-container h1 { 63 | font-size: 2.5em; 64 | margin-bottom: 0.1em; 65 | } 66 | 67 | .medium-editor-container h2 { 68 | font-size: 2.2em; 69 | margin-top: 0.2em; 70 | margin-bottom: 0.1em; 71 | } 72 | 73 | .medium-editor-container h3 { 74 | font-size: 1.9em; 75 | margin-top: 0.2em; 76 | margin-bottom: 0.1em; 77 | } 78 | 79 | .medium-editor-container h4 { 80 | font-size: 1.6em; 81 | margin-top: 0.2em; 82 | margin-bottom: 0.1em; 83 | } 84 | 85 | .medium-editor-container h5 { 86 | font-size: 1.3em; 87 | margin-top: 0.2em; 88 | margin-bottom: 0.1em; 89 | } 90 | 91 | .medium-editor-container h6 { 92 | font-size: 1em; 93 | margin-bottom: 0.1em; 94 | } 95 | 96 | .medium-editor-container p { 97 | margin-bottom: 1em; 98 | } 99 | .medium-editor-container ul { 100 | margin-left: 30px; 101 | list-style: disc; 102 | } 103 | .medium-editor-container ul li { 104 | margin-bottom: 0.5em 105 | } 106 | .medium-editor-container ol { 107 | margin-left: 30px; 108 | } 109 | .medium-editor-container ol li { 110 | margin-bottom: 0.5em 111 | } 112 | 113 | .medium-editor-container iframe{ 114 | width: 1px; 115 | min-width: 100%; 116 | } 117 | 118 | .medium-editor-container blockquote { 119 | border-left: 3px solid #3B3E3E; 120 | padding-left: 30px; 121 | margin-bottom: 1.5em; 122 | margin-top: 1.5em; 123 | font-style: italic; 124 | } 125 | 126 | .medium-toolbar-arrow-under:after { 127 | border-color: #222526 transparent transparent transparent; 128 | top: 48px; 129 | } 130 | 131 | .medium-toolbar-arrow-over:before { 132 | border-color: transparent transparent #222526 transparent; 133 | } 134 | 135 | .medium-editor-toolbar { 136 | background-color: #222526; 137 | border: 1px solid #222526; 138 | border-radius: 4px; 139 | } 140 | 141 | .medium-editor-toolbar li button { 142 | background-color: transparent; 143 | border: none; 144 | border-right: 1px solid #222526; 145 | box-sizing: border-box; 146 | color: #fff; 147 | height: 48px; 148 | min-width: 48px; 149 | -webkit-transition: background-color .2s ease-in, color .2s ease-in; 150 | transition: background-color .2s ease-in, color .2s ease-in; 151 | } 152 | 153 | .medium-editor-toolbar li button:hover { 154 | background-color: transparent; 155 | color: #00BD6A; 156 | } 157 | 158 | .medium-editor-toolbar li .medium-editor-button-first { 159 | border-bottom-left-radius: 4px; 160 | border-top-left-radius: 4px; 161 | } 162 | 163 | .medium-editor-toolbar li .medium-editor-button-last { 164 | border-bottom-right-radius: 4px; 165 | border-right: none; 166 | border-top-right-radius: 4px; 167 | } 168 | 169 | .medium-editor-toolbar li .medium-editor-button-active { 170 | background-color: transparent; 171 | color: #00BD6A; 172 | } 173 | 174 | .medium-editor-toolbar-form { 175 | background: #222526; 176 | border-radius: 4px; 177 | color: #fff; 178 | } 179 | 180 | .medium-editor-toolbar-form .medium-editor-toolbar-input { 181 | background: #222526; 182 | color: #fff; 183 | height: 48px; 184 | } 185 | 186 | .medium-editor-toolbar-form .medium-editor-toolbar-input::-webkit-input-placeholder { 187 | color: #fff; 188 | color: rgba(255, 255, 255, 0.8); 189 | } 190 | 191 | .medium-editor-toolbar-form .medium-editor-toolbar-input:-moz-placeholder { 192 | /* Firefox 18- */ 193 | color: #fff; 194 | color: rgba(255, 255, 255, 0.8); 195 | } 196 | 197 | .medium-editor-toolbar-form .medium-editor-toolbar-input::-moz-placeholder { 198 | /* Firefox 19+ */ 199 | color: #fff; 200 | color: rgba(255, 255, 255, 0.8); 201 | } 202 | 203 | .medium-editor-toolbar-form .medium-editor-toolbar-input:-ms-input-placeholder { 204 | color: #fff; 205 | color: rgba(255, 255, 255, 0.8); 206 | } 207 | 208 | .medium-editor-toolbar-form a { 209 | color: #fff; 210 | } 211 | 212 | .medium-editor-toolbar-anchor-preview { 213 | background: #222526; 214 | border-radius: 4px; 215 | color: #fff; 216 | } 217 | 218 | .medium-editor-placeholder:after { 219 | color: #222526; 220 | } 221 | 222 | .medium-editor-container * { 223 | outline: none; 224 | } 225 | 226 | .medium-editor-container .insert-image-container { 227 | display: flex; 228 | position: fixed; 229 | left: 100px; 230 | top: 100px; 231 | transform: translate(-54px, -7px); 232 | } 233 | 234 | .medium-editor-container .insert-image-container .btn-toggle { 235 | border: 1px solid #DDD; 236 | width: 40px; 237 | height: 40px; 238 | border-radius: 50%; 239 | font-size: 16px; 240 | color: #555; 241 | background-color: #FFF; 242 | } 243 | 244 | .medium-editor-container .image-handler { 245 | display: flex; 246 | position: fixed; 247 | left: 50%; 248 | top: 100px; 249 | transform: translate(-50%, -20px); 250 | background-color: rgba(0, 0, 0, 0.6); 251 | border-radius: 5px; 252 | padding-left: 10px; 253 | padding-right: 10px; 254 | } 255 | 256 | .medium-editor-container .image-handler .btn-toggle { 257 | border: 0; 258 | width: 40px; 259 | height: 40px; 260 | border-radius: 50%; 261 | font-size: 16px; 262 | color: #FFF; 263 | background-color: transparent; 264 | } 265 | 266 | .medium-editor-container .image-handler .btn-toggle img { 267 | display: block; 268 | width: 100%; 269 | height: auto; 270 | } 271 | 272 | .medium-editor-container .image-handler .btn-toggle:hover { 273 | cursor: pointer; 274 | color: #00BD6A; 275 | } 276 | 277 | .medium-editor-container .insert-image-container .insert-image-menu { 278 | display: flex; 279 | } 280 | .medium-editor-container .insert-image-container .insert-image-menu .btn-toggle { 281 | margin-left: 10px; 282 | display: flex; 283 | align-items: center; 284 | justify-content: center; 285 | } 286 | .medium-editor-container .editor-image { 287 | display: block; 288 | max-width: 1000px; 289 | margin: 2rem auto; 290 | } 291 | 292 | .medium-editor-container .editor-image img { 293 | width: 100%; 294 | height: auto; 295 | display: block; 296 | } 297 | 298 | .medium-editor-container .editor-image-description { 299 | max-width: 1000px; 300 | margin: 0 auto; 301 | text-align: center; 302 | margin-bottom: 2rem; 303 | margin-top: -1rem; 304 | font-size: 0.8rem; 305 | color: #999; 306 | position: relative; 307 | } 308 | 309 | .medium-editor-container .editor-image-description.is-empty::after { 310 | content: "Image Description"; 311 | color: #BBB; 312 | position: absolute; 313 | top: 0; 314 | left: 0; 315 | width: 100%; 316 | height: 100%; 317 | z-index: 0; 318 | } 319 | 320 | .medium-editor-container .editor-image + .editor-image-description.is-empty { 321 | display: none; 322 | } 323 | 324 | .medium-editor-container .editor-image.is-focus + .editor-image-description.is-empty { 325 | display: block; 326 | } 327 | 328 | .medium-editor-container .editor-image img:hover { 329 | cursor: pointer; 330 | } 331 | .medium-editor-container .editor-image.is-expand { 332 | max-width: 1200px; 333 | } 334 | .medium-editor-container .editor-image.is-full { 335 | max-width: 100%; 336 | } 337 | .medium-editor-container .editor-image input { 338 | margin: 0 auto; 339 | border: 0; 340 | display: block; 341 | font-size: 0.7rem; 342 | padding: 0.5rem; 343 | width: 100%; 344 | text-align: center; 345 | box-sizing: border-box; 346 | color: #888; 347 | margin-bottom: 2rem; 348 | } 349 | 350 | .medium-editor-container .editor-embed-container.is-inactive { 351 | display: none; 352 | } 353 | 354 | .medium-editor-container .editor-embed-input.is-inactive { 355 | display: none; 356 | } 357 | 358 | .medium-editor-container .editor-embed > a { 359 | display: none; 360 | } 361 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | baseUrl: '/vue2-medium-editor/' 3 | } --------------------------------------------------------------------------------