/* Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ CKEDITOR.dialog.add("paste", function(c) { function k(a) { var b = new CKEDITOR.dom.document(a.document), g = b.getBody(), d = b.getById("cke_actscrpt"); d && d.remove(); g.setAttribute("contenteditable", !0); g.on(e.mainPasteEvent, function(a) { a = e.initPasteDataTransfer(a); f ? a != f && (f = e.initPasteDataTransfer()) : (f = a); }); if (CKEDITOR.env.ie && 8 > CKEDITOR.env.version) b.getWindow().on("blur", function() { b.$.selection.empty(); }); b.on( "keydown", function(a) { a = a.data; var b; switch (a.getKeystroke()) { case 27: this.hide(); b = 1; break; case 9: case CKEDITOR.SHIFT + 9: this.changeFocus(1), (b = 1); } b && a.preventDefault(); }, this ); c.fire("ariaWidget", new CKEDITOR.dom.element(a.frameElement)); b .getWindow() .getFrame() .removeCustomData("pendingFocus") && g.focus(); } var h = c.lang.clipboard, e = CKEDITOR.plugins.clipboard, f; c.on( "pasteDialogCommit", function(a) { a.data && c.fire("paste", { type: "auto", dataValue: a.data.dataValue, method: "paste", dataTransfer: a.data.dataTransfer || e.initPasteDataTransfer() }); }, null, null, 1e3 ); return { title: h.paste, minWidth: CKEDITOR.env.ie && CKEDITOR.env.quirks ? 370 : 350, minHeight: CKEDITOR.env.quirks ? 250 : 245, onShow: function() { this.parts.dialog.$.offsetHeight; this.setupContent(); this._.committed = !1; }, onLoad: function() { (CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat) && "rtl" == c.lang.dir && this.parts.contents.setStyle("overflow", "hidden"); }, onOk: function() { this.commitContent(); }, contents: [ { id: "general", label: c.lang.common.generalTab, elements: [ { type: "html", id: "pasteMsg", html: '\x3cdiv style\x3d"white-space:normal;width:340px"\x3e' + h.pasteMsg + "\x3c/div\x3e" }, { type: "html", id: "editing_area", style: "width:100%;height:100%", html: "", focus: function() { var a = this.getInputElement(), b = a.getFrameDocument().getBody(); !b || b.isReadOnly() ? a.setCustomData("pendingFocus", 1) : b.focus(); }, setup: function() { var a = this.getDialog(), b = '\x3chtml dir\x3d"' + c.config.contentsLangDirection + '" lang\x3d"' + (c.config.contentsLanguage || c.langCode) + '"\x3e\x3chead\x3e\x3cstyle\x3ebody{margin:3px;height:95%;word-break:break-all;}\x3c/style\x3e\x3c/head\x3e\x3cbody\x3e\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"\x3ewindow.parent.CKEDITOR.tools.callFunction(' + CKEDITOR.tools.addFunction(k, a) + ",this);\x3c/script\x3e\x3c/body\x3e\x3c/html\x3e", g = CKEDITOR.env.air ? "javascript:void(0)" : CKEDITOR.env.ie && !CKEDITOR.env.edge ? "javascript:void((function(){" + encodeURIComponent( "document.open();(" + CKEDITOR.tools.fixDomain + ")();document.close();" ) + '})())"' : "", d = CKEDITOR.dom.element.createFromHtml( '\x3ciframe class\x3d"cke_pasteframe" frameborder\x3d"0" allowTransparency\x3d"true" src\x3d"' + g + '" aria-label\x3d"' + h.pasteArea + '" aria-describedby\x3d"' + a.getContentElement("general", "pasteMsg").domId + '"\x3e\x3c/iframe\x3e' ); f = null; d.on( "load", function(a) { a.removeListener(); a = d.getFrameDocument(); a.write(b); c.focusManager.add(a.getBody()); CKEDITOR.env.air && k.call(this, a.getWindow().$); }, a ); d.setCustomData("dialog", a); a = this.getElement(); a.setHtml(""); a.append(d); if (CKEDITOR.env.ie && !CKEDITOR.env.edge) { var e = CKEDITOR.dom.element.createFromHtml( '\x3cspan tabindex\x3d"-1" style\x3d"position:absolute" role\x3d"presentation"\x3e\x3c/span\x3e' ); e.on("focus", function() { setTimeout(function() { d.$.contentWindow.focus(); }); }); a.append(e); this.focus = function() { e.focus(); this.fire("focus"); }; } this.getInputElement = function() { return d; }; CKEDITOR.env.ie && (a.setStyle("display", "block"), a.setStyle("height", d.$.offsetHeight + 2 + "px")); }, commit: function() { var a = this.getDialog().getParentEditor(), b = this.getInputElement() .getFrameDocument() .getBody(), c = b.getBogus(); c && c.remove(); b = b.getHtml(); this.getDialog()._.committed = !0; a.fire("pasteDialogCommit", { dataValue: b, dataTransfer: f || e.initPasteDataTransfer() }); } } ] } ] }; });