123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- /*
- 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()
- });
- }
- }
- ]
- }
- ]
- };
- });
|