!function(a, b){"use strict"; function c(a, b){for (var c, d = [], f = 0; f < a.length; ++f){if (c = g[a[f]] || e(a[f]), !c)throw"module definition dependecy not found: " + a[f]; d.push(c)}b.apply(null, d)}function d(a, d, e){if ("string" != typeof a)throw"invalid module definition, module id must be defined and be a string"; if (d === b)throw"invalid module definition, dependencies must be specified"; if (e === b)throw"invalid module definition, definition function must be specified"; c(d, function(){g[a] = e.apply(null, arguments)})}function e(b){for (var c = a, d = b.split(/[.\/]/), e = 0; e < d.length; ++e){if (!c[d[e]])return; c = c[d[e]]}return c}function f(c){var d, e, f, h, i; for (d = 0; d < c.length; d++){e = a, f = c[d], h = f.split(/[.\/]/); for (var j = 0; j < h.length - 1; ++j)e[h[j]] === b && (e[h[j]] = {}), e = e[h[j]]; e[h[h.length - 1]] = g[f]}if (a.AMDLC_TESTS){i = a.privateModules || {}; for (f in g)i[f] = g[f]; for (d = 0; d < c.length; d++)delete i[c[d]]; a.privateModules = i}}var g = {}; d("tinymce/pasteplugin/Utils", ["tinymce/util/Tools", "tinymce/html/DomParser", "tinymce/html/Schema"], function(a, b, c){function d(b, c){return a.each(c, function(a){b = a.constructor == RegExp?b.replace(a, ""):b.replace(a[0], a[1])}), b}function e(e){function f(a){var b = a.name, c = a; if ("br" === b)return void(i += "\n"); if (j[b] && (i += " "), k[b])return void(i += " "); if (3 == a.type && (i += a.value), !a.shortEnded && (a = a.firstChild))do f(a); while (a = a.next); l[b] && c.next && (i += "\n", "p" == b && (i += "\n"))}var g = new c, h = new b({}, g), i = "", j = g.getShortEndedElements(), k = a.makeMap("script noscript style textarea video audio iframe object", " "), l = g.getBlockElements(); return e = d(e, [/<!\[[^\]]+\]>/g]), f(h.parse(e)), i}function f(a){function b(a, b, c){return b || c?"\xa0":" "}return a = d(a, [/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g, /<!--StartFragment-->|<!--EndFragment-->/g, [/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g, b], /<br class="Apple-interchange-newline">/g, /<br>$/i])}function g(a){var b = 0; return function(){return a + b++}}return{filter:d, innerText:e, trimHtml:f, createIdGenerator:g}}), d("tinymce/pasteplugin/SmartPaste", ["tinymce/util/Tools"], function(a){var b = function(a){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(a)}, c = function(a){return b(a) && /.(gif|jpe?g|png)$/.test(a)}, d = function(a, b, c){return a.undoManager.extra(function(){c(a, b)}, function(){a.insertContent('<img src="' + b + '">')}), !0}, e = function(a, b, c){return a.undoManager.extra(function(){c(a, b)}, function(){a.execCommand("mceInsertLink", !1, b)}), !0}, f = function(a, c, d){return a.selection.isCollapsed() === !1 && b(c)?e(a, c, d):!1}, g = function(a, b, e){return c(b)?d(a, b, e):!1}, h = function(a, b){return a.insertContent(b, {merge:a.settings.paste_merge_formats !== !1, paste:!0}), !0}, i = function(b, c){a.each([f, g, h], function(a){return a(b, c, h) !== !0})}, j = function(a, b){a.settings.smart_paste === !1?h(a, b):i(a, b)}; return{isImageUrl:c, isAbsoluteUrl:b, insertContent:j}}), d("tinymce/pasteplugin/Clipboard", ["tinymce/Env", "tinymce/dom/RangeUtils", "tinymce/util/VK", "tinymce/pasteplugin/Utils", "tinymce/pasteplugin/SmartPaste", "tinymce/util/Delay"], function(a, b, c, d, e, f){return function(g){function h(a){var b, c = g.dom; if (b = g.fire("BeforePastePreProcess", {content:a}), b = g.fire("PastePreProcess", b), a = b.content, !b.isDefaultPrevented()){if (g.hasEventListeners("PastePostProcess") && !b.isDefaultPrevented()){var d = c.add(g.getBody(), "div", {style:"display:none"}, a); b = g.fire("PastePostProcess", {node:d}), c.remove(d), a = b.node.innerHTML}b.isDefaultPrevented() || e.insertContent(g, a)}}function i(a){a = g.dom.encode(a).replace(/\r\n/g, "\n"); var b, c = g.dom.getParent(g.selection.getStart(), g.dom.isBlock), e = g.settings.forced_root_block; e && (b = g.dom.createHTML(e, g.settings.forced_root_block_attrs), b = b.substr(0, b.length - 3) + ">"), c && /^(PRE|DIV)$/.test(c.nodeName) || !e?a = d.filter(a, [[/\n/g, "<br>"]]):(a = d.filter(a, [[/\n\n/g, "</p>" + b], [/^(.*<\/p>)(<p>)$/, b + "$1"], [/\n/g, "<br />"]]), - 1 != a.indexOf("<p>") && (a = b + a)), h(a)}function j(){function b(a){var b, c, e, f = a.startContainer; if (b = a.getClientRects(), b.length)return b[0]; if (a.collapsed && 1 == f.nodeType){for (e = f.childNodes[z.startOffset]; e && 3 == e.nodeType && !e.data.length; )e = e.nextSibling; if (e)return"BR" == e.tagName && (c = d.doc.createTextNode("\ufeff"), e.parentNode.insertBefore(c, e), a = d.createRng(), a.setStartBefore(c), a.setEndAfter(c), b = a.getClientRects(), d.remove(c)), b.length?b[0]:void 0}}var c, d = g.dom, e = g.getBody(), f = g.dom.getViewPort(g.getWin()), h = f.y, i = 20; if (z = g.selection.getRng(), g.inline && (c = g.selection.getScrollContainer(), c && c.scrollTop > 0 && (h = c.scrollTop)), z.getClientRects){var j = b(z); if (j)i = h + (j.top - d.getPos(e).y); else{i = h; var k = z.startContainer; k && (3 == k.nodeType && k.parentNode != e && (k = k.parentNode), 1 == k.nodeType && (i = d.getPos(k, c || e).y))}}y = d.add(g.getBody(), "div", {id:"mcepastebin", contentEditable:!0, "data-mce-bogus":"all", style:"position: absolute; top: " + i + "px;width: 10px; height: 10px; overflow: hidden; opacity: 0"}, E), (a.ie || a.gecko) && d.setStyle(y, "left", "rtl" == d.getStyle(e, "direction", !0)?65535: - 65535), d.bind(y, "beforedeactivate focusin focusout", function(a){a.stopPropagation()}), y.focus(), g.selection.select(y, !0)}function k(){if (y){for (var a; a = g.dom.get("mcepastebin"); )g.dom.remove(a), g.dom.unbind(a); z && g.selection.setRng(z)}y = z = null}function l(){var a, b, c, d, e = ""; for (a = g.dom.select("div[id=mcepastebin]"), b = 0; b < a.length; b++)c = a[b], c.firstChild && "mcepastebin" == c.firstChild.id && (c = c.firstChild), d = c.innerHTML, e != E && (e += d); return e}function m(a){var b = {}; if (a){if (a.getData){var c = a.getData("Text"); c && c.length > 0 && - 1 == c.indexOf(F) && (b["text/plain"] = c)}if (a.types)for (var d = 0; d < a.types.length; d++){var e = a.types[d]; b[e] = a.getData(e)}}return b}function n(a){return m(a.clipboardData || g.getDoc().dataTransfer)}function o(a){return v(a, "text/html") || v(a, "text/plain")}function p(a){var b; return b = a.indexOf(","), - 1 !== b?a.substr(b + 1):null}function q(a, b){return a.images_dataimg_filter?a.images_dataimg_filter(b):!0}function r(a, b, c){a && (g.selection.setRng(a), a = null); var d = b.result, e = p(d), f = new Image; if (f.src = d, q(g.settings, f)){var i, j, k = g.editorUpload.blobCache; j = k.findFirst(function(a){return a.base64() === e}), j?i = j:(i = k.create(G(), c, e), k.add(i)), h('<img src="' + i.blobUri() + '">')} else h('<img src="' + d + '">')}function s(a, b){function c(c){var d, e, f, g = !1; if (c)for (d = 0; d < c.length; d++)if (e = c[d], /^image\/(jpeg|png|gif|bmp)$/.test(e.type)){var h = e.getAsFile?e.getAsFile():e; f = new FileReader, f.onload = r.bind(null, b, f, h), f.readAsDataURL(h), a.preventDefault(), g = !0}return g}var d = a.clipboardData || a.dataTransfer; return g.settings.paste_data_images && d?c(d.items) || c(d.files):void 0}function t(a){var b = a.clipboardData; return - 1 != navigator.userAgent.indexOf("Android") && b && b.items && 0 === b.items.length}function u(a){return b.getCaretRangeFromPoint(a.clientX, a.clientY, g.getDoc())}function v(a, b){return b in a && a[b].length > 0}function w(a){return c.metaKeyPressed(a) && 86 == a.keyCode || a.shiftKey && 45 == a.keyCode}function x(){function b(a, b, c){var e; return v(a, "text/html")?e = a["text/html"]:(e = l(), e == E && (c = !0)), e = d.trimHtml(e), y && y.firstChild && "mcepastebin" === y.firstChild.id && (c = !0), k(), e.length || (c = !0), c && (e = v(a, "text/plain") && - 1 == e.indexOf("</p>")?a["text/plain"]:d.innerText(e)), e == E?void(b || g.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(c?i(e):h(e))}function c(a){return 0 === a["text/plain"].indexOf("file://")}g.on("keydown", function(b){function c(a){w(a) && !a.isDefaultPrevented() && k()}if (w(b) && !b.isDefaultPrevented()){if (A = b.shiftKey && 86 == b.keyCode, A && a.webkit && - 1 != navigator.userAgent.indexOf("Version/"))return; if (b.stopImmediatePropagation(), C = (new Date).getTime(), a.ie && A)return b.preventDefault(), void g.fire("paste", {ieFake:!0}); k(), j(), g.once("keyup", c), g.once("paste", function(){g.off("keyup", c)})}}); var e = function(){return z || g.selection.getRng()}; g.on("paste", function(c){var d = (new Date).getTime(), h = n(c), i = (new Date).getTime() - d, m = (new Date).getTime() - C - i < 1e3, p = "text" == B.pasteFormat || A; return A = !1, c.isDefaultPrevented() || t(c)?void k():!o(h) && s(c, e())?void k():(m || c.preventDefault(), !a.ie || m && !c.ieFake || (j(), g.dom.bind(y, "paste", function(a){a.stopPropagation()}), g.getDoc().execCommand("Paste", !1, null), h["text/html"] = l()), void(v(h, "text/html")?(c.preventDefault(), b(h, m, p)):f.setEditorTimeout(g, function(){b(h, m, p)}, 0)))}), g.on("dragstart dragend", function(a){D = "dragstart" == a.type}), g.on("drop", function(a){var b, e; if (e = u(a), !a.isDefaultPrevented() && !D && (b = m(a.dataTransfer), (o(b) && !c(b) || !s(a, e)) && e && g.settings.paste_filter_drop !== !1)){var j = b["mce-internal"] || b["text/html"] || b["text/plain"]; j && (a.preventDefault(), f.setEditorTimeout(g, function(){g.undoManager.transact(function(){b["mce-internal"] && g.execCommand("Delete"), g.selection.setRng(e), j = d.trimHtml(j), b["text/html"]?h(j):i(j)})}))}}), g.on("dragover dragend", function(a){g.settings.paste_data_images && a.preventDefault()})}var y, z, A, B = this, C = 0, D = !1, E = "%MCEPASTEBIN%", F = "data:text/mce-internal,", G = d.createIdGenerator("mceclip"); B.pasteHtml = h, B.pasteText = i, B.pasteImageData = s, g.on("preInit", function(){x(), g.parser.addNodeFilter("img", function(b, c, d){function e(a){return a.data && a.data.paste === !0}function f(b){b.attr("data-mce-object") || k === a.transparentSrc || b.remove()}function h(a){return 0 === a.indexOf("webkit-fake-url")}function i(a){return 0 === a.indexOf("data:")}if (!g.settings.paste_data_images && e(d))for (var j = b.length; j--; ){var k = b[j].attributes.map.src; k && (h(k)?f(b[j]):!g.settings.allow_html_data_urls && i(k) && f(b[j]))}})})}}), d("tinymce/pasteplugin/WordFilter", ["tinymce/util/Tools", "tinymce/html/DomParser", "tinymce/html/Schema", "tinymce/html/Serializer", "tinymce/html/Node", "tinymce/pasteplugin/Utils"], function(a, b, c, d, e, f){function g(a){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(a) || /class="OutlineElement/.test(a) || /id="?docs\-internal\-guid\-/.test(a)}function h(b){var c, d; return d = [/^[IVXLMCD]{1,2}\.[ \u00a0]/, /^[ivxlmcd]{1,2}\.[ \u00a0]/, /^[a-z]{1,2}[\.\)][ \u00a0]/, /^[A-Z]{1,2}[\.\)][ \u00a0]/, /^[0-9]+\.[ \u00a0]/, /^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/, /^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/], b = b.replace(/^[\u00a0 ]+/, ""), a.each(d, function(a){return a.test(b)?(c = !0, !1):void 0}), c}function i(a){return/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(a)}function j(j){var k = j.settings; j.on("BeforePastePreProcess", function(l){function m(a){function b(a){var c = ""; if (3 === a.type)return a.value; if (a = a.firstChild)do c += b(a); while (a = a.next); return c}function c(a, b){if (3 === a.type && b.test(a.value))return a.value = a.value.replace(b, ""), !1; if (a = a.firstChild)do if (!c(a, b))return!1; while (a = a.next); return!0}function d(a){if (a._listIgnore)return void a.remove(); if (a = a.firstChild)do d(a); while (a = a.next)}function f(a, b, f){var h = a._listLevel || k; h != k && (k > h?g && (g = g.parent.parent):(j = g, g = null)), g && g.name == b?g.append(a):(j = j || g, g = new e(b, 1), f > 1 && g.attr("start", "" + f), a.wrap(g)), a.name = "li", h > k && j && j.lastChild.append(g), k = h, d(a), c(a, /^\u00a0+/), c(a, /^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/), c(a, /^\u00a0+/)}for (var g, j, k = 1, l = [], m = a.firstChild; "undefined" != typeof m && null !== m; )if (l.push(m), m = m.walk(), null !== m)for (; "undefined" != typeof m && m.parent !== a; )m = m.walk(); for (var n = 0; n < l.length; n++)if (a = l[n], "p" == a.name && a.firstChild){var o = b(a); if (i(o)){f(a, "ul"); continue}if (h(o)){var p = /([0-9]+)\./.exec(o), q = 1; p && (q = parseInt(p[1], 10)), f(a, "ol", q); continue}if (a._listLevel){f(a, "ul", 1); continue}g = null} else j = g, g = null}function n(b, c){var d, f = {}, g = j.dom.parseStyle(c); return a.each(g, function(a, e){switch (e){case"mso-list":d = /\w+ \w+([0-9]+)/i.exec(c), d && (b._listLevel = parseInt(d[1], 10)), /Ignore/i.test(a) && b.firstChild && (b._listIgnore = !0, b.firstChild._listIgnore = !0); break; case"horiz-align":e = "text-align"; break; case"vert-align":e = "vertical-align"; break; case"font-color":case"mso-foreground":e = "color"; break; case"mso-background":case"mso-highlight":e = "background"; break; case"font-weight":case"font-style":return void("normal" != a && (f[e] = a)); case"mso-element":if (/^(comment|comment-list)$/i.test(a))return void b.remove()}return 0 === e.indexOf("mso-comment")?void b.remove():void(0 !== e.indexOf("mso-") && ("all" == o || p && p[e]) && (f[e] = a))}), /(bold)/i.test(f["font-weight"]) && (delete f["font-weight"], b.wrap(new e("b", 1))), /(italic)/i.test(f["font-style"]) && (delete f["font-style"], b.wrap(new e("i", 1))), f = j.dom.serializeStyle(f, b.name), f?f:null}var o, p, q = l.content; if (q = q.replace(/<b[^>]+id="?docs-internal-[^>]*>/gi, ""), q = q.replace(/<br class="?Apple-interchange-newline"?>/gi, ""), o = k.paste_retain_style_properties, o && (p = a.makeMap(o.split(/[, ]/))), k.paste_enable_default_filters !== !1 && g(l.content)){l.wordContent = !0, q = f.filter(q, [/<!--[\s\S]+?-->/gi, /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi, [/<(\/?)s>/gi, "<$1strike>"], [/ /gi, "\xa0"], [/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi, function(a, b){return b.length > 0?b.replace(/./, " ").slice(Math.floor(b.length / 2)).split("").join("\xa0"):""}]]); var r = k.paste_word_valid_elements; r || (r = "-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody"); var s = new c({valid_elements:r, valid_children:"-li[p]"}); a.each(s.elements, function(a){a.attributes["class"] || (a.attributes["class"] = {}, a.attributesOrder.push("class")), a.attributes.style || (a.attributes.style = {}, a.attributesOrder.push("style"))}); var t = new b({}, s); t.addAttributeFilter("style", function(a){for (var b, c = a.length; c--; )b = a[c], b.attr("style", n(b, b.attr("style"))), "span" == b.name && b.parent && !b.attributes.length && b.unwrap()}), t.addAttributeFilter("class", function(a){for (var b, c, d = a.length; d--; )b = a[d], c = b.attr("class"), /^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(c) && b.remove(), b.attr("class", null)}), t.addNodeFilter("del", function(a){for (var b = a.length; b--; )a[b].remove()}), t.addNodeFilter("a", function(a){for (var b, c, d, e = a.length; e--; )if (b = a[e], c = b.attr("href"), d = b.attr("name"), c && - 1 != c.indexOf("#_msocom_"))b.remove(); else if (c && 0 === c.indexOf("file://") && (c = c.split("#")[1], c && (c = "#" + c)), c || d){if (d && !/^_?(?:toc|edn|ftn)/i.test(d)){b.unwrap(); continue}b.attr({href:c, name:d})} else b.unwrap()}); var u = t.parse(q); k.paste_convert_word_fake_lists !== !1 && m(u), l.content = new d({validate:k.validate}, s).serialize(u)}})}return j.isWordContent = g, j}), d("tinymce/pasteplugin/Quirks", ["tinymce/Env", "tinymce/util/Tools", "tinymce/pasteplugin/WordFilter", "tinymce/pasteplugin/Utils"], function(a, b, c, d){return function(e){function f(a){e.on("BeforePastePreProcess", function(b){b.content = a(b.content)})}function g(a){if (!c.isWordContent(a))return a; var f = []; b.each(e.schema.getBlockElements(), function(a, b){f.push(b)}); var g = new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?(" + f.join("|") + ")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*", "g"); return a = d.filter(a, [[g, "$1"]]), a = d.filter(a, [[/<br><br>/g, "<BR><BR>"], [/<br>/g, " "], [/<BR><BR>/g, "<br>"]])}function h(a){if (c.isWordContent(a))return a; var b = e.settings.paste_webkit_styles; if (e.settings.paste_remove_styles_if_webkit === !1 || "all" == b)return a; if (b && (b = b.split(/[, ]/)), b){var d = e.dom, f = e.selection.getNode(); a = a.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi, function(a, c, e, g){var h = d.parseStyle(e, "span"), i = {}; if ("none" === b)return c + g; for (var j = 0; j < b.length; j++){var k = h[b[j]], l = d.getStyle(f, b[j], !0); /color/.test(b[j]) && (k = d.toHex(k), l = d.toHex(l)), l != k && (i[b[j]] = k)}return i = d.serializeStyle(i, "span"), i?c + ' style="' + i + '"' + g:c + g})} else a = a.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi, "$1$3"); return a = a.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi, function(a, b, c, d){return b + ' style="' + c + '"' + d})}a.webkit && f(h), a.ie && f(g)}}), d("tinymce/pasteplugin/Plugin", ["tinymce/PluginManager", "tinymce/pasteplugin/Clipboard", "tinymce/pasteplugin/WordFilter", "tinymce/pasteplugin/Quirks"], function(a, b, c, d){var e; a.add("paste", function(f){function g(){return e || f.settings.paste_plaintext_inform === !1}function h(){if ("text" == i.pasteFormat)this.active(!1), i.pasteFormat = "html", f.fire("PastePlainTextToggle", {state:!1}); else if (i.pasteFormat = "text", this.active(!0), !g()){var a = f.translate("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."); f.notificationManager.open({text:a, type:"info"}), e = !0, f.fire("PastePlainTextToggle", {state:!0})}f.focus()}var i, j = this, k = f.settings; return/(^|[ ,])powerpaste([, ]|$)/.test(k.plugins) && a.get("powerpaste")?void("undefined" != typeof console && console.log && console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option.")):(j.clipboard = i = new b(f), j.quirks = new d(f), j.wordFilter = new c(f), f.settings.paste_as_text && (j.clipboard.pasteFormat = "text"), k.paste_preprocess && f.on("PastePreProcess", function(a){k.paste_preprocess.call(j, j, a)}), k.paste_postprocess && f.on("PastePostProcess", function(a){k.paste_postprocess.call(j, j, a)}), f.addCommand("mceInsertClipboardContent", function(a, b){b.content && j.clipboard.pasteHtml(b.content), b.text && j.clipboard.pasteText(b.text)}), f.settings.paste_block_drop && f.on("dragend dragover draggesture dragdrop drop drag", function(a){a.preventDefault(), a.stopPropagation()}), f.settings.paste_data_images || f.on("drop", function(a){var b = a.dataTransfer; b && b.files && b.files.length > 0 && a.preventDefault()}), f.addButton("pastetext", {icon:"pastetext", tooltip:"Paste as text", onclick:h, active:"text" == j.clipboard.pasteFormat}), void f.addMenuItem("pastetext", {text:"Paste as text", selectable:!0, active:i.pasteFormat, onclick:h}))})}), f(["tinymce/pasteplugin/Utils"])}(this);
|