plugin.min.js 13 KB

1
  1. (function(e,t){"use strict";var n={};function i(e,t){var i,r=[];for(var a=0;a<e.length;++a){i=n[e[a]]||s(e[a]);if(!i){throw"module definition dependecy not found: "+e[a]}r.push(i)}t.apply(null,r)}function r(e,r,a){if(typeof e!=="string"){throw"invalid module definition, module id must be defined and be a string"}if(r===t){throw"invalid module definition, dependencies must be specified"}if(a===t){throw"invalid module definition, definition function must be specified"}i(r,function(){n[e]=a.apply(null,arguments)})}function a(e){return!!n[e]}function s(t){var n=e;var i=t.split(/[.\/]/);for(var r=0;r<i.length;++r){if(!n[i[r]]){return}n=n[i[r]]}return n}function o(i){for(var r=0;r<i.length;r++){var a=e;var s=i[r];var o=s.split(/[.\/]/);for(var l=0;l<o.length-1;++l){if(a[o[l]]===t){a[o[l]]={}}a=a[o[l]]}a[o[o.length-1]]=n[s]}}r("tinymce/pasteplugin/Utils",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema"],function(e,t,n){function i(t,n){e.each(n,function(e){if(e.constructor==RegExp){t=t.replace(e,"")}else{t=t.replace(e[0],e[1])}});return t}function r(i){var r=new n,a=new t({},r),s="";var o=r.getShortEndedElements();var l=e.makeMap("script noscript style textarea video audio iframe object"," ");var f=r.getBlockElements();function c(e){var t=e.name,n=e;if(t==="br"){s+="\n";return}if(o[t]){s+=" "}if(l[t]){s+=" ";return}if(e.type==3){s+=e.value}if(!e.shortEnded){if(e=e.firstChild){do{c(e)}while(e=e.next)}}if(f[t]&&n.next){s+="\n";if(t=="p"){s+="\n"}}}c(a.parse(i));return s}return{filter:i,innerText:r}});r("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/util/VK","tinymce/pasteplugin/Utils"],function(e,t,n){return function(i){var r=this,a,s,o=0;var l="%MCEPASTEBIN%",f;function c(e){var t,n=i.dom;t=i.fire("BeforePastePreProcess",{content:e});t=i.fire("PastePreProcess",t);e=t.content;if(!t.isDefaultPrevented()){if(i.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var r=n.add(i.getBody(),"div",{style:"display:none"},e);t=i.fire("PastePostProcess",{node:r});n.remove(r);e=t.node.innerHTML}if(!t.isDefaultPrevented()){i.insertContent(e)}}}function u(e){e=i.dom.encode(e).replace(/\r\n/g,"\n");var t=i.dom.getParent(i.selection.getStart(),i.dom.isBlock);var r=i.settings.forced_root_block;var a;if(r){a=i.dom.createHTML(r,i.settings.forced_root_block_attrs);a=a.substr(0,a.length-3)+">"}if(t&&/^(PRE|DIV)$/.test(t.nodeName)||!r){e=n.filter(e,[[/\n/g,"<br>"]])}else{e=n.filter(e,[[/\n\n/g,"</p>"+a],[/^(.*<\/p>)(<p>)$/,a+"$1"],[/\n/g,"<br />"]]);if(e.indexOf("<p>")!=-1){e=a+e}}c(e)}function p(){var t=i.dom,n=i.getBody();var r=i.dom.getViewPort(i.getWin()),o=r.y,f=20;var c;s=i.selection.getRng();if(i.inline){c=i.selection.getScrollContainer();if(c){o=c.scrollTop}}if(s.getClientRects){var u=s.getClientRects();if(u.length){f=o+(u[0].top-t.getPos(n).y)}else{f=o;var p=s.startContainer;if(p){if(p.nodeType==3&&p.parentNode!=n){p=p.parentNode}if(p.nodeType==1){f=t.getPos(p,c||n).y}}}}a=t.add(i.getBody(),"div",{id:"mcepastebin",contentEditable:true,"data-mce-bogus":"1",style:"position: absolute; top: "+f+"px;"+"width: 10px; height: 10px; overflow: hidden; opacity: 0"},l);if(e.ie||e.gecko){t.setStyle(a,"left",t.getStyle(n,"direction",true)=="rtl"?65535:-65535)}t.bind(a,"beforedeactivate focusin focusout",function(e){e.stopPropagation()});a.focus();i.selection.select(a,true)}function d(){if(a){var e;while(e=i.dom.get("mcepastebin")){i.dom.remove(e);i.dom.unbind(e)}if(s){i.selection.setRng(s)}}f=false;a=s=null}function m(){var e=l,t,n;t=i.dom.select("div[id=mcepastebin]");n=t.length;while(n--){var r=t[n].innerHTML;if(e==l){e=""}if(r.length>e.length){e=r}}return e}function g(e){var t={};if(e&&e.types){var n=e.getData("Text");if(n&&n.length>0){t["text/plain"]=n}for(var i=0;i<e.types.length;i++){var r=e.types[i];t[r]=e.getData(r)}}return t}function v(e){return g(e.clipboardData||i.getDoc().dataTransfer)}function h(e,t){function n(e){if(r[a].type=="image/png"){var t=new FileReader;t.onload=function(){c('<img src="'+t.result+'">')};t.readAsDataURL(e.getAsFile());return true}}if(!i.settings.paste_data_images||"text/html"in t||"text/plain"in t){return}if(e.clipboardData){var r=e.clipboardData.items;if(r){for(var a=0;a<r.length;a++){if(n(r[a])){return true}}}}}function y(e){var t=i.getDoc(),n;if(t.caretPositionFromPoint){var r=t.caretPositionFromPoint(e.clientX,e.clientY);n=t.createRange();n.setStart(r.offsetNode,r.offset);n.collapse(true)}else if(t.caretRangeFromPoint){n=t.caretRangeFromPoint(e.clientX,e.clientY)}return n}function b(e,t){return t in e&&e[t].length>0}function w(){i.on("keydown",function(n){if(n.isDefaultPrevented()){return}if(t.metaKeyPressed(n)&&n.keyCode==86||n.shiftKey&&n.keyCode==45){f=n.shiftKey&&n.keyCode==86;n.stopImmediatePropagation();o=(new Date).getTime();if(e.ie&&f){n.preventDefault();i.fire("paste",{ieFake:true});return}d();p()}});i.on("paste",function(t){var s=v(t);var g=(new Date).getTime()-o<1e3;var y=r.pasteFormat=="text"||f;if(t.isDefaultPrevented()){d();return}if(h(t,s)){d();return}if(!g){t.preventDefault()}if(e.ie&&(!g||t.ieFake)){p();i.dom.bind(a,"paste",function(e){e.stopPropagation()});i.getDoc().execCommand("Paste",false,null);s["text/html"]=m()}setTimeout(function(){var e=m();if(a&&a.firstChild&&a.firstChild.id==="mcepastebin"){y=true}d();if(!y&&g&&e&&e!=l){s["text/html"]=e}if(e==l||!g){e=s["text/html"]||s["text/plain"]||l;if(e==l){if(!g){i.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")}return}}if(!b(s,"text/html")&&b(s,"text/plain")){y=true}if(y){u(s["text/plain"]||n.innerText(e))}else{c(e)}},0)});i.on("dragstart",function(e){if(e.dataTransfer.types){try{e.dataTransfer.setData("mce-internal",i.selection.getContent())}catch(e){}}});i.on("drop",function(e){var t=y(e);if(t&&!e.isDefaultPrevented()){var n=g(e.dataTransfer);var r=n["mce-internal"]||n["text/html"]||n["text/plain"];if(r){e.preventDefault();i.undoManager.transact(function(){if(n["mce-internal"]){i.execCommand("Delete")}i.selection.setRng(t);if(!n["text/html"]){u(r)}else{c(r)}})}}})}r.pasteHtml=c;r.pasteText=u;i.on("preInit",function(){w();i.parser.addNodeFilter("img",function(t){if(!i.settings.paste_data_images){var n=t.length;while(n--){var r=t[n].attributes.map.src;if(r&&r.indexOf("data:image")===0){if(!t[n].attr("data-mce-object")&&r!==e.transparentSrc){t[n].remove()}}}}})});i.on("PreProcess",function(){i.dom.remove(i.dom.get("mcepastebin"))})}});r("tinymce/pasteplugin/WordFilter",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema","tinymce/html/Serializer","tinymce/html/Node","tinymce/pasteplugin/Utils"],function(e,t,n,i,r,a){function s(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}function o(o){var l=o.settings;o.on("BeforePastePreProcess",function(f){var c=f.content,u,p;u=l.paste_retain_style_properties;if(u){p=e.makeMap(u.split(/[, ]/))}function d(e){var t,n,i=1;function a(e,a,s,o){var l=e._listLevel||i;if(l!=i){if(l<i){if(t){t=t.parent.parent}}else{n=t;t=null}}if(!t||t.name!=s){n=n||t;t=new r(s,1);if(o>1){t.attr("start",""+o)}e.wrap(t)}else{t.append(e)}e.name="li";a.value="";var f=a.next;if(f&&f.type==3){f.value=f.value.replace(/^\u00a0+/,"")}if(l>i&&n){n.lastChild.append(t)}i=l}var s=e.getAll("p");for(var o=0;o<s.length;o++){e=s[o];if(e.name=="p"&&e.firstChild){var l="";var f=e.firstChild;while(f){l=f.value;if(l){break}f=f.firstChild}if(/^\s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(l)){a(e,f,"ul");continue}if(/^\s*\w+\.$/.test(l)){var c=/([0-9])\./.exec(l);var u=1;if(c){u=parseInt(c[1],10)}a(e,f,"ol",u);continue}t=null}}}function m(t,n){var i={},a=o.dom.parseStyle(n);if(t.name==="p"){var s=/mso-list:\w+ \w+([0-9]+)/.exec(n);if(s){t._listLevel=parseInt(s[1],10)}}e.each(a,function(e,n){switch(n){case"horiz-align":n="text-align";break;case"vert-align":n="vertical-align";break;case"font-color":case"mso-foreground":n="color";break;case"mso-background":case"mso-highlight":n="background";break;case"font-weight":case"font-style":if(e!="normal"){i[n]=e}return;case"mso-element":if(/^(comment|comment-list)$/i.test(e)){t.remove();return}break}if(n.indexOf("mso-comment")===0){t.remove();return}if(n.indexOf("mso-")===0){return}if(u=="all"||p&&p[n]){i[n]=e}});if(/(bold)/i.test(i["font-weight"])){delete i["font-weight"];t.wrap(new r("b",1))}if(/(italic)/i.test(i["font-style"])){delete i["font-style"];t.wrap(new r("i",1))}i=o.dom.serializeStyle(i,t.name);if(i){return i}return null}if(l.paste_enable_default_filters===false){return}if(s(f.content)){f.wordContent=true;c=a.filter(c,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi," "],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join(" "):""}]]);var g=l.paste_word_valid_elements;if(!g){g="-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,"+"-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br,del"}var v=new n({valid_elements:g,valid_children:"-li[p]"});e.each(v.elements,function(e){if(!e.attributes["class"]){e.attributes["class"]={};e.attributesOrder.push("class")}if(!e.attributes.style){e.attributes.style={};e.attributesOrder.push("style")}});var h=new t({},v);h.addAttributeFilter("style",function(e){var t=e.length,n;while(t--){n=e[t];n.attr("style",m(n,n.attr("style")));if(n.name=="span"&&n.parent&&!n.attributes.length){n.unwrap()}}});h.addAttributeFilter("class",function(e){var t=e.length,n,i;while(t--){n=e[t];i=n.attr("class");if(/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(i)){n.remove()}n.attr("class",null)}});h.addNodeFilter("del",function(e){var t=e.length;while(t--){e[t].remove()}});h.addNodeFilter("a",function(e){var t=e.length,n,i,r;while(t--){n=e[t];i=n.attr("href");r=n.attr("name");if(i&&i.indexOf("#_msocom_")!=-1){n.remove();continue}if(i&&i.indexOf("file://")===0){i=i.split("#")[1];if(i){i="#"+i}}if(!i&&!r){n.unwrap()}else{if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){n.unwrap();continue}n.attr({href:i,name:r})}}});var y=h.parse(c);d(y);f.content=new i({},v).serialize(y)}})}o.isWordContent=s;return o});r("tinymce/pasteplugin/Quirks",["tinymce/Env","tinymce/util/Tools","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Utils"],function(e,t,n,i){"use strict";return function(r){function a(e){r.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function s(e){e=i.filter(e,[/^[\s\S]*<body[^>]*>\s*<!--StartFragment-->|<!--EndFragment-->\s*<\/body[^>]*>[\s\S]*$/g,/<!--StartFragment-->|<!--EndFragment-->/g,[/<span class="Apple-converted-space">\u00a0<\/span>/g," "],/<br>$/i]);return e}function o(e){if(!n.isWordContent(e)){return e}var a=[];t.each(r.schema.getBlockElements(),function(e,t){a.push(t)});var s=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+a.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");e=i.filter(e,[[s,"$1"]]);e=i.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]]);return e}function l(e){if(n.isWordContent(e)){return e}var t=r.settings.paste_webkit_styles;if(r.settings.paste_remove_styles_if_webkit===false||t=="all"){return e}if(t){t=t.split(/[, ]/)}if(t){var i=r.dom,a=r.selection.getNode();e=e.replace(/ style=\"([^\"]+)\"/gi,function(e,n){var r=i.parseStyle(n,"span"),s={};if(t==="none"){return""}for(var o=0;o<t.length;o++){var l=r[t[o]],f=i.getStyle(a,t[o],true);if(/color/.test(t[o])){l=i.toHex(l);f=i.toHex(f)}if(f!=l){s[t[o]]=l}}s=i.serializeStyle(s,"span");if(s){return' style="'+s+'"'}return""})}else{e=e.replace(/ style=\"[^\"]+\"/gi,"")}e=e.replace(/ data-mce-style=\"([^\"]+)\"/gi,function(e,t){return' style="'+t+'"'+e});return e}if(e.webkit){a(l);a(s)}if(e.ie){a(o)}}});r("tinymce/pasteplugin/Plugin",["tinymce/PluginManager","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks"],function(e,t,n,i){var r;e.add("paste",function(e){var a=this,s,o=e.settings;function l(){if(s.pasteFormat=="text"){this.active(false);s.pasteFormat="html"}else{s.pasteFormat="text";this.active(true);if(!r){e.windowManager.alert("Paste is now in plain text mode. Contents will now "+"be pasted as plain text until you toggle this option off.");r=true}}}a.clipboard=s=new t(e);a.quirks=new i(e);a.wordFilter=new n(e);if(e.settings.paste_as_text){a.clipboard.pasteFormat="text"}if(o.paste_preprocess){e.on("PastePreProcess",function(e){o.paste_preprocess.call(a,a,e)})}if(o.paste_postprocess){e.on("PastePostProcess",function(e){o.paste_postprocess.call(a,a,e)})}e.addCommand("mceInsertClipboardContent",function(e,t){if(t.content){a.clipboard.pasteHtml(t.content)}if(t.text){a.clipboard.pasteText(t.text)}});if(e.paste_block_drop){e.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault();e.stopPropagation()})}if(!e.settings.paste_data_images){e.on("drop",function(e){var t=e.dataTransfer;if(t&&t.files&&t.files.length>0){e.preventDefault()}})}e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:l,active:a.clipboard.pasteFormat=="text"});e.addMenuItem("pastetext",{text:"Paste as text",selectable:true,active:s.pasteFormat,onclick:l})})});o(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks","tinymce/pasteplugin/Plugin"])})(this);