Lines Matching refs:CKEDITOR

6     if (window.CKEDITOR && window.CKEDITOR.dom) return;
7 window.CKEDITOR || (window.CKEDITOR = function() {
86 CKEDITOR.event || (CKEDITOR.event = function() {}, CKEDITOR.event.implementOn = function(a) {
87 var d = CKEDITOR.event.prototype,
90 }, CKEDITOR.event.prototype = function() {
113 CKEDITOR.tools.extend(h, d, !0)
161 CKEDITOR.event.useCapture = 1;
163 CKEDITOR.event.useCapture = 0;
220 CKEDITOR.editor || (CKEDITOR.editor = function() {
221 CKEDITOR._.pending.push([this, arguments]);
222 CKEDITOR.event.call(this)
223 }, CKEDITOR.editor.prototype.fire = function(a, d) {
228 return CKEDITOR.event.prototype.fire.call(this, a, d, this)
229 }, CKEDITOR.editor.prototype.fireOnce = function(a, d) {
234 return CKEDITOR.event.prototype.fireOnce.call(this, a, d, this)
235 }, CKEDITOR.event.implementOn(CKEDITOR.editor.prototype));
236 CKEDITOR.env || (CKEDITOR.env = function() {
278 "unloaded" == CKEDITOR.status && function() {
279 CKEDITOR.event.implementOn(CKEDITOR);
280 CKEDITOR.loadFullCore = function() {
281 if ("basic_ready" != CKEDITOR.status) CKEDITOR.loadFullCore._load = 1;
283 delete CKEDITOR.loadFullCore;
286 a.src = CKEDITOR.basePath + "ckeditor.js";
290 CKEDITOR.loadFullCoreTimeout = 0;
291 CKEDITOR.add = function(a) {
295 CKEDITOR.domReady(function() {
297 CKEDITOR.loadFullCore,
298 d = CKEDITOR.loadFullCoreTimeout;
299 … a && (CKEDITOR.status = "basic_ready", a && a._load ? a() : d && setTimeout(function() {
300 CKEDITOR.loadFullCore && CKEDITOR.loadFullCore()
304 CKEDITOR.status = "basic_loaded"
307 CKEDITOR.VERBOSITY_WARN = 1;
308 CKEDITOR.VERBOSITY_ERROR = 2;
309 CKEDITOR.verbosity = CKEDITOR.VERBOSITY_WARN | CKEDITOR.VERBOSITY_ERROR;
310 CKEDITOR.warn = function(a, d) {
311 CKEDITOR.verbosity & CKEDITOR.VERBOSITY_WARN && CKEDITOR.fire("log", {
317 CKEDITOR.error = function(a, d) {
318 CKEDITOR.verbosity & CKEDITOR.VERBOSITY_ERROR && CKEDITOR.fire("log", {
324 CKEDITOR.on("log", function(a) {
328 if (a = a.data.additionalData) console[d]("[CKEDITOR] Error code: " + b + ".", a);
329 else console[d]("[CKEDITOR] Error code: " + b + ".");
330 …console[d]("[CKEDITOR] For more information about this error go to https://ckeditor.com/docs/ckedi…
333 CKEDITOR.dom = {};
336 …d = CKEDITOR.env.gecko ? "-moz-" : CKEDITOR.env.webkit ? "-webkit-" : CKEDITOR.env.ie ? "-ms-" : "…
353 CKEDITOR.on("reset", function() {
356 CKEDITOR.tools = {
373 for (var b = 0; b < a.length; b++) e[b] = CKEDITOR.tools.clone(a[b]);
378 for (b in a) e[b] = CKEDITOR.tools.clone(a[b]);
447 return CKEDITOR.tools.htmlEncode(a).replace(h, "\x26quot;")
450 return CKEDITOR.tools.htmlDecode(a)
453 var b = e == CKEDITOR.ENTER_BR,
456 c = e == CKEDITOR.ENTER_P ? "p" : "div";
467 return CKEDITOR.tools.repeat(a, 2)
553 var b = CKEDITOR.tools.indexOf(a, e);
577 a[e] = "function" == typeof b ? CKEDITOR.tools.bind(b, this) : b
607 e = CKEDITOR.tools.trim(b + "") + "px";
614CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"position:absolute;left:-9999px;top:-9999px;…
615 CKEDITOR.document.getBody().append(a));
646 c, g = CKEDITOR.tools.parseCssText(a,
669 …b && (a = (new CKEDITOR.dom.element("span")).setAttribute("style", a).getAttribute("style") || "");
670 a && (a = CKEDITOR.tools.normalizeHex(CKEDITOR.tools.convertRgbToHex(a)));
673 …toLowerCase(), "font-family" == b && (g = g.replace(/\s*,\s*/g, ",")), g = CKEDITOR.tools.trim(g));
762 g = CKEDITOR.env.mac,
765 b & CKEDITOR.CTRL && (d.push(g ? "⌘" : a[17]), n.push(g ? a[224] : a[17]));
766 b & CKEDITOR.ALT && (d.push(g ? "⌥" : a[18]), n.push(a[18]));
767 b & CKEDITOR.SHIFT && (d.push(g ? "⇧" : a[16]), n.push(a[16]));
778 … if (b = e[g].split("\x3d"), c = decodeURIComponent(CKEDITOR.tools.trim(b[0]).toLowerCase()),
786 var a = CKEDITOR.tools.getCookie("ckCsrfToken");
797 CKEDITOR.tools.setCookie("ckCsrfToken", a)
806 …? CKEDITOR.env.ie && 9 > CKEDITOR.env.version ? 4 === b.button ? CKEDITOR.MOUSE_BUTTON_MIDDLE : 1 …
993 c.length && (b.color = c[0], CKEDITOR.tools.array.forEach(c, function(b) {
996 if (a = CKEDITOR.tools.trim(a)) b.unprocessed = a;
1026 a = CKEDITOR.tools.style.parse._findColor(a);
1028 CKEDITOR.tools.array.forEach(c, function(a) {
1029 …b.style || -1 === CKEDITOR.tools.indexOf(CKEDITOR.tools.style.parse._borderStyle, a) ? !b.width &&…
1035 c = CKEDITOR.tools.array,
1039 … a.match(/^\#[a-f0-9]{3}(?:[a-f0-9]{3})?$/gi) ? !0 : a.toLowerCase() in CKEDITOR.tools.style.parse…
1080 var c = CKEDITOR.tools,
1100 var g = CKEDITOR.tools.copy(b);
1102 var d = CKEDITOR.document.getWindow().getScrollPosition();
1111 CKEDITOR.tools.array.indexOf = CKEDITOR.tools.indexOf;
1112 CKEDITOR.tools.array.isArray = CKEDITOR.tools.isArray;
1113 CKEDITOR.MOUSE_BUTTON_LEFT = 0;
1114 CKEDITOR.MOUSE_BUTTON_MIDDLE = 1;
1115 CKEDITOR.MOUSE_BUTTON_RIGHT = 2
1117 CKEDITOR.dtd = function() {
1118 var a = CKEDITOR.tools.extend,
1120 for (var c = CKEDITOR.tools.clone(a), g = 1; g < arguments.length; g++) {
1675 CKEDITOR.dom.event = function(a) {
1678 CKEDITOR.dom.event.prototype = {
1684 if (this.$.ctrlKey || this.$.metaKey) a += CKEDITOR.CTRL;
1685 this.$.shiftKey && (a += CKEDITOR.SHIFT);
1686 this.$.altKey && (a += CKEDITOR.ALT);
1701 return a ? new CKEDITOR.dom.node(a) : null
1714 CKEDITOR.CTRL = 1114112;
1715 CKEDITOR.SHIFT = 2228224;
1716 CKEDITOR.ALT = 4456448;
1717 CKEDITOR.EVENT_PHASE_CAPTURING = 1;
1718 CKEDITOR.EVENT_PHASE_AT_TARGET = 2;
1719 CKEDITOR.EVENT_PHASE_BUBBLING = 3;
1720 CKEDITOR.dom.domObject = function(a) {
1723 CKEDITOR.dom.domObject.prototype = function() {
1726 "undefined" != typeof CKEDITOR && a.fire(b, new CKEDITOR.dom.event(c))
1738 …= a(this, d), this.$.addEventListener ? this.$.addEventListener(d, b, !!CKEDITOR.event.useCapture)…
1740 return CKEDITOR.event.prototype.on.apply(this, arguments)
1743 CKEDITOR.event.prototype.removeListener.apply(this, arguments);
1759 CKEDITOR.event.prototype.removeAllListeners.call(this)
1765 CKEDITOR.on("reset", function() {
1798 … return this.$["data-cke-expando"] || (this.$["data-cke-expando"] = CKEDITOR.tools.getNextNumber())
1800 CKEDITOR.event.implementOn(a)
1801 })(CKEDITOR.dom.domObject.prototype);
1802 CKEDITOR.dom.node = function(a) {
1803CKEDITOR.dom[a.nodeType == CKEDITOR.NODE_DOCUMENT ? "document" : a.nodeType == CKEDITOR.NODE_ELEME…
1805 CKEDITOR.dom.node.prototype = new CKEDITOR.dom.domObject;
1806 CKEDITOR.NODE_ELEMENT = 1;
1807 CKEDITOR.NODE_DOCUMENT = 9;
1808 CKEDITOR.NODE_TEXT = 3;
1809 CKEDITOR.NODE_COMMENT = 8;
1810 CKEDITOR.NODE_DOCUMENT_FRAGMENT = 11;
1811 CKEDITOR.POSITION_IDENTICAL = 0;
1812 CKEDITOR.POSITION_DISCONNECTED = 1;
1813 CKEDITOR.POSITION_FOLLOWING = 2;
1814 CKEDITOR.POSITION_PRECEDING = 4;
1815 CKEDITOR.POSITION_IS_CONTAINED = 8;
1816 CKEDITOR.POSITION_CONTAINS = 16;
1817 CKEDITOR.tools.extend(CKEDITOR.dom.node.prototype, {
1825 … if (c.nodeType == CKEDITOR.NODE_ELEMENT || c.nodeType == CKEDITOR.NODE_DOCUMENT_FRAGMENT)
1826 … if (d || c.nodeType != CKEDITOR.NODE_ELEMENT || c.removeAttribute("id", !1), a) {
1833 if (b.type == CKEDITOR.NODE_ELEMENT || b.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT) {
1834 if (b.type != CKEDITOR.NODE_DOCUMENT_FRAGMENT) {
1845 f = new CKEDITOR.dom.node(f);
1846CKEDITOR.env.ie && 9 > CKEDITOR.env.version && (this.type == CKEDITOR.NODE_ELEMENT || this.type ==…
1879 … return new CKEDITOR.dom.document(this.$.ownerDocument || this.$.parentNode.ownerDocument)
1884 return n && n.nodeType == CKEDITOR.NODE_TEXT ? b(n) ? d(n,
1889 return !a.nodeValue || a.nodeValue == CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE
1894 …if (!this.$.parentNode || a && c.nodeType == CKEDITOR.NODE_TEXT && b(c) && !d(c) && !d(c, !0)) ret…
1895 …do a && c != this.$ && c.nodeType == CKEDITOR.NODE_TEXT && (h || b(c)) || (f++, h = c.nodeType ==
1909 CKEDITOR.NODE_ELEMENT && b && !1 === b(this, !0)) return null;
1928 if (this.type == CKEDITOR.NODE_ELEMENT && b && !1 === b(this, !0)) return null;
1941 …do b = (d = d.previousSibling) && 10 != d.nodeType && new CKEDITOR.dom.node(d); while (b && a && !…
1947 do b = (d = d.nextSibling) && new CKEDITOR.dom.node(d); while (b && a && !a(b));
1952 …return d && (d.nodeType == CKEDITOR.NODE_ELEMENT || a && d.nodeType == CKEDITOR.NODE_DOCUMENT_FRAG…
1953 new CKEDITOR.dom.node(d) : null
1973 if (d == b) return CKEDITOR.POSITION_IDENTICAL;
1975 CKEDITOR.NODE_ELEMENT && a.type == CKEDITOR.NODE_ELEMENT) {
1977 … if (d.contains(b)) return CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING;
1978 … if (b.contains(d)) return CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING
1980 …x || 0 > b.sourceIndex ? CKEDITOR.POSITION_DISCONNECTED : d.sourceIndex < b.sourceIndex ? CKEDITOR
1986 … a[c]) return d[c] < a[c] ? CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING;
1987 …urn d.length < a.length ? CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSI…
1998 if (c(f ? new CKEDITOR.dom.node(b) : b)) return new CKEDITOR.dom.node(b);
2040 if (a.type == CKEDITOR.NODE_TEXT) {
2041 var d = CKEDITOR.tools.ltrim(a.getText()),
2054 if (a.type == CKEDITOR.NODE_TEXT) {
2055 var d = CKEDITOR.tools.rtrim(a.getText()),
2065 CKEDITOR.env.needsBrFiller &&
2070 this.type != CKEDITOR.NODE_ELEMENT && (d = this.getParent());
2071 CKEDITOR.env.edge && d && d.is("textarea", "input") && (a = !0);
2081 CKEDITOR.dom.window = function(a) {
2082 CKEDITOR.dom.domObject.call(this, a)
2084 CKEDITOR.dom.window.prototype = new CKEDITOR.dom.domObject;
2085 CKEDITOR.tools.extend(CKEDITOR.dom.window.prototype, {
2112 return a ? new CKEDITOR.dom.element.get(a) : null
2115 CKEDITOR.dom.document = function(a) {
2116 CKEDITOR.dom.domObject.call(this, a)
2118 CKEDITOR.dom.document.prototype = new CKEDITOR.dom.domObject;
2119 CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype, {
2120 type: CKEDITOR.NODE_DOCUMENT,
2124 var d = new CKEDITOR.dom.element("link");
2138 var b = new CKEDITOR.dom.element("style", this);
2139 b.append(new CKEDITOR.dom.text(a, this));
2146 var b = new CKEDITOR.dom.element(a, this);
2151 return new CKEDITOR.dom.text(a, this)
2163 return new CKEDITOR.dom.element(a)
2166 return (a = this.$.getElementById(a)) ? new CKEDITOR.dom.element(a) : null
2182 return b ? new CKEDITOR.dom.node(b) : null
2185 CKEDITOR.env.ie && 8 >= document.documentMode || !d || (a = d + ":" + a);
2186 return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))
2190 …return a = a ? new CKEDITOR.dom.element(a) : this.getDocumentElement().append(new CKEDITOR.dom.ele…
2193 return new CKEDITOR.dom.element(this.$.body)
2196 return new CKEDITOR.dom.element(this.$.documentElement)
2199 return new CKEDITOR.dom.window(this.$.parentWindow || this.$.defaultView)
2203CKEDITOR.env.ie && (a = a.replace(/(?:^\s*<!DOCTYPE[^>]*?>)|^/i, '$\x26\n\x3cscript data-cke-temp\…
2204 CKEDITOR.tools.fixDomain + ")();\x3c/script\x3e"));
2209 return new CKEDITOR.dom.nodeList(this.$.querySelectorAll(a))
2212 return (a = this.$.querySelector(a)) ? new CKEDITOR.dom.element(a) : null
2216 …a || (a = this.$.createDocumentFragment(), CKEDITOR.tools.enableHtml5Elements(a, !0), this.setCust…
2220 CKEDITOR.dom.nodeList = function(a) {
2223 CKEDITOR.dom.nodeList.prototype = {
2228 … return 0 > a || a >= this.$.length ? null : (a = this.$[a]) ? new CKEDITOR.dom.node(a) : null
2231 return CKEDITOR.tools.array.map(this.$, function(a) {
2232 return new CKEDITOR.dom.node(a)
2236 CKEDITOR.dom.element = function(a, d) {
2238 CKEDITOR.dom.domObject.call(this, a)
2240 CKEDITOR.dom.element.get = function(a) {
2241 …tElementById(a) || document.getElementsByName(a)[0] : a) && (a.$ ? a : new CKEDITOR.dom.element(a))
2243 CKEDITOR.dom.element.prototype = new CKEDITOR.dom.node;
2244 CKEDITOR.dom.element.createFromHtml = function(a, d) {
2245 var b = new CKEDITOR.dom.element("div", d);
2249 CKEDITOR.dom.element.setMarker = function(a, d, b, c) {
2250 …var f = d.getCustomData("list_marker_id") || d.setCustomData("list_marker_id", CKEDITOR.tools.getN…
2256 CKEDITOR.dom.element.clearAllMarkers = function(a) {
2257 for (var d in a) CKEDITOR.dom.element.clearMarkers(a, a[d], 1)
2259 CKEDITOR.dom.element.clearMarkers = function(a, d, b) {
2274 a.$.id || (a.$.id = "cke_tmp_" + CKEDITOR.tools.getNextNumber(), b = !1);
2281 var c = CKEDITOR.tools.escapeCss(a.$.id);
2293 CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype, {
2294 type: CKEDITOR.NODE_ELEMENT,
2325 var b = new CKEDITOR.dom.element("div", this.getDocument());
2332 …this.$.text && CKEDITOR.env.ie && 9 > CKEDITOR.env.version ? this.$.text += a : this.append(new CK…
2335 if (a || CKEDITOR.env.needsBrFiller) {
2336 …for (a = this.getLast(); a && a.type == CKEDITOR.NODE_TEXT && !CKEDITOR.tools.rtrim(a.getText());)…
2337 …a && a.is && a.is("br") || (a = this.getDocument().createElement("br"), CKEDITOR.env.gecko && a.se…
2341 var c = new CKEDITOR.dom.range(this.getDocument());
2347 if (CKEDITOR.env.ie && !CKEDITOR.env.edge) {
2348 …for (c = new CKEDITOR.dom.element("div"); d = e.getFirst();) d.$.style.backgroundColor && (d.$.sty…
2357 return a.type != CKEDITOR.NODE_ELEMENT ? b.contains(a.getParent().$) :
2367 b ? CKEDITOR.tools.setTimeout(a, 100, this) : a.call(this)
2372 return CKEDITOR.env.ie ? a.replace(/<\?[^>]*>/g, "") : a
2381 var b = CKEDITOR.tools.extend({},
2385 return a ? CKEDITOR.tools.getAbsoluteRectPosition(this.getWindow(), b) : b
2387 setHtml: CKEDITOR.env.ie && 9 > CKEDITOR.env.version ? function(a) {
2398 b = new CKEDITOR.dom.element("body", this.getDocument());
2418 … return CKEDITOR.env.ie && (CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks) ? function(a) {
2449 a = CKEDITOR.tools.isArray(a) ?
2451 …for (e = 0; e < c.length; e++) - 1 === CKEDITOR.tools.indexOf(a, c[e].name) && (b[c[e].name] = c[e…
2455 return new CKEDITOR.dom.nodeList(this.$.childNodes)
2461 return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]
2464 var a = CKEDITOR.dtd[this.getName()];
2471 getElementsByTag: CKEDITOR.dom.document.prototype.getElementsByTag,
2474 …return 0 !== a || CKEDITOR.dtd.$tabIndex[this.getName()] || 0 === parseInt(this.getAttribute("tabi…
2490 if (CKEDITOR.env.ie && 8 >= document.documentMode) {
2504 (b = b && new CKEDITOR.dom.node(b)) && a && !a(b) && (b = b.getNext(a));
2509 (b = b && new CKEDITOR.dom.node(b)) && a && !a(b) && (b = b.getPrevious(a));
2513 return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]
2524CKEDITOR.dtd.$nonEditable[b] || CKEDITOR.dtd.$empty[b] || this.is("a") && (this.data("cke-saved-na…
2525 CKEDITOR.dtd.span, !(!a || !a["#"])) : !0
2532 …ualNode) return b.$.style.cssText = CKEDITOR.tools.normalizeCssText(b.$.style.cssText), a.$.style.…
2536 if (CKEDITOR.env.ie && 9 > CKEDITOR.env.version && this.is("a")) {
2538 …c.type == CKEDITOR.NODE_ELEMENT && (c = c.clone(), c.setHtml(b), b = c.getHtml(), c.setHtml(a), a …
2545 …a && CKEDITOR.env.webkit && (b = this.getWindow(), !b.equals(CKEDITOR.document.getWindow()) && (c …
2549 if (!CKEDITOR.dtd.$removeEmpty[this.getName()]) return !1;
2552 if (e.type != CKEDITOR.NODE_ELEMENT || !e.data("cke-bookmark"))
2553 …if (e.type == CKEDITOR.NODE_ELEMENT && !e.isEmptyInlineRemoveable() || e.type == CKEDITOR.NODE_TEX…
2557 … hasAttributes: CKEDITOR.env.ie && (CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks) ? function() {
2593 return CKEDITOR.env.ie ? 8 > CKEDITOR.env.version ? function(b) {
2615 if (c && c.type == CKEDITOR.NODE_ELEMENT) {
2617 …if (d.push(c), c = e ? c.getNext() : c.getPrevious(), !c || c.type != CKEDITOR.NODE_ELEMENT) retur…
2622 g && g.type == CKEDITOR.NODE_ELEMENT && g.mergeSiblings()
2627 …if (!1 === b || CKEDITOR.dtd.$removeEmpty[this.getName()] || this.is("a")) a(this, this.getNext(),…
2641 … return CKEDITOR.env.ie && (CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks) ? function(b, c) {
2644 } : CKEDITOR.env.ie8Compat && CKEDITOR.env.secure ? function(b, c) {
2664 … return CKEDITOR.env.ie && (CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks) ? function(a) {
2670 if (CKEDITOR.tools.isArray(a))
2678 …dding" != a) b.removeProperty ? b.removeProperty(a) : b.removeAttribute(CKEDITOR.tools.cssStyleToD…
2692 this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)] = b;
2700CKEDITOR.env.ie && 9 > CKEDITOR.env.version ? (a = Math.round(100 * a), this.setStyle("filter", 10…
2703 this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select",
2705 if (CKEDITOR.env.ie) {
2724 if (document.documentElement.getBoundingClientRect && (CKEDITOR.env.ie ?
2725 8 !== CKEDITOR.env.version : 1)) {
2731CKEDITOR.env.ie && (k = e.getDocumentElement().contains(this), e = e.getBody().contains(this), k =…
2732 …k && (CKEDITOR.env.webkit || CKEDITOR.env.ie && 12 <= CKEDITOR.env.version ? (b = d.$.scrollLeft |…
2741 x = (f = x.$.offsetParent) ? new CKEDITOR.dom.element(f) : null
2743 …dow(), x = a.getWindow(), !f.equals(x) && f.$.frameElement && (a = (new CKEDITOR.dom.element(f.$.f…
2744 document.documentElement.getBoundingClientRect || !CKEDITOR.env.gecko ||
2759 e && (b = new CKEDITOR.dom.element(e))
2783 … e.equals(b) || (e = x(CKEDITOR.dom.element.get(e.$.frameElement), b), c.x += e.x, c.y += e.y);
2792 a instanceof CKEDITOR.dom.window && (a = k ? v.getBody() : v.getDocumentElement());
2793 CKEDITOR.env.webkit && (v = this.getEditor(!1)) && (v._.previousScrollTop = null);
2811 case CKEDITOR.TRISTATE_ON:
2819 case CKEDITOR.TRISTATE_DISABLED:
2837 return a && new CKEDITOR.dom.document(a.contentWindow.document)
2848 …else if (!CKEDITOR.env.ie || this.hasAttribute(v)) f = this.getAttribute(v), null === f && (f = d.…
2856 a = new CKEDITOR.dom.element(a, b);
2876 return c ? new CKEDITOR.dom.node(c) : null
2884 return b.type == CKEDITOR.NODE_ELEMENT && b.hasClass("cke_enable_context_menu")
2901 var b = CKEDITOR.instances,
2905 …if (e = b[c], e.element.equals(this) && e.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO || !a && (…
2910 a = new CKEDITOR.dom.nodeList(this.$.querySelectorAll(b(this,
2919 return a ? new CKEDITOR.dom.element(a) : null
2925 …for (var d = 0; d < c.count(); d++) e = c.getItem(d), e.type == CKEDITOR.NODE_ELEMENT ? e.forEach(…
2933 CKEDITOR.dom.element.prototype.setSize = function(a, b, d) {
2934 …"number" == typeof b && (!d || CKEDITOR.env.ie && CKEDITOR.env.quirks || (b -= c.call(this, a)), t…
2936 CKEDITOR.dom.element.prototype.getSize = function(a, b) {
2937 …var d = Math.max(this.$["offset" + CKEDITOR.tools.capitalize(a)], this.$["client" + CKEDITOR.tools…
2942 CKEDITOR.dom.documentFragment = function(a) {
2943 a = a || CKEDITOR.document;
2944 this.$ = a.type == CKEDITOR.NODE_DOCUMENT ? a.$.createDocumentFragment() : a
2946 CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype, CKEDITOR.dom.element.prototype, {
2947 type: CKEDITOR.NODE_DOCUMENT_FRAGMENT,
2953 var a = new CKEDITOR.dom.element("div");
2998 var L = e.type == CKEDITOR.NODE_ELEMENT ? e : e.getParent(),
2999 C = e.type == CKEDITOR.NODE_ELEMENT ? e.getChild(y) : e.getNext();
3002 … !a.equals(C)) && (a.type != CKEDITOR.NODE_ELEMENT || !b || !a.equals(c.root))
3006 var k = d.type == CKEDITOR.NODE_ELEMENT ? d : d.getParent(),
3007 … q = d.type == CKEDITOR.NODE_ELEMENT ? f ? d.getChild(f - 1) : null : d.getPrevious();
3009 …return (!b || !k.equals(a)) && (!q || !a.equals(q)) && (a.type != CKEDITOR.NODE_ELEMENT || !b || !…
3016 this.current ? e = this.current[g](!1, t, h) : (a ? e.type == CKEDITOR.NODE_ELEMENT &&
3017 …(e, !0) ? null : e.getPreviousSourceNode(!0, t, h)) : (e = d, e.type == CKEDITOR.NODE_ELEMENT && (…
3033 CKEDITOR.dom.walker = CKEDITOR.tools.createClass({
3084 CKEDITOR.dom.element.prototype.isBlockBoundary = function(a) {
3085 …e("position") in c || !b[this.getComputedStyle("display")] ? !!(this.is(CKEDITOR.dtd.$block) || a …
3087 CKEDITOR.dom.walker.blockBoundary = function(a) {
3089 return !(b.type == CKEDITOR.NODE_ELEMENT && b.isBlockBoundary(a))
3092 CKEDITOR.dom.walker.listItemBoundary = function() {
3097 CKEDITOR.dom.walker.bookmark = function(a, b) {
3103 d = e && e.type != CKEDITOR.NODE_ELEMENT && (f = e.getParent()) && c(f);
3108 CKEDITOR.dom.walker.whitespaces = function(a) {
3111 …b && b.type == CKEDITOR.NODE_TEXT && (c = !CKEDITOR.tools.trim(b.getText()) || CKEDITOR.env.webkit…
3115 CKEDITOR.dom.walker.invisible =
3117 var b = CKEDITOR.dom.walker.whitespaces(),
3118 c = CKEDITOR.env.webkit ? 1 : 0;
3120 … b(e) ? e = 1 : (e.type == CKEDITOR.NODE_TEXT && (e = e.getParent()), e = e.$.offsetWidth <= c);
3124 CKEDITOR.dom.walker.nodeType = function(a, b) {
3129 CKEDITOR.dom.walker.bogus = function(a) {
3134 … var e = CKEDITOR.env.needsBrFiller ? c.is && c.is("br") : c.getText && f.test(c.getText());
3136 (!c || c.type == CKEDITOR.NODE_ELEMENT && c.isBlockBoundary()));
3140 CKEDITOR.dom.walker.temp = function(a) {
3142 b.type != CKEDITOR.NODE_ELEMENT && (b = b.getParent());
3148 h = CKEDITOR.dom.walker.whitespaces(),
3149 k = CKEDITOR.dom.walker.bookmark(),
3150 g = CKEDITOR.dom.walker.temp(),
3152 …return k(a) || h(a) || a.type == CKEDITOR.NODE_ELEMENT && a.is(CKEDITOR.dtd.$inline) && !a.is(CKED…
3154 CKEDITOR.dom.walker.ignored =
3161 var r = CKEDITOR.dom.walker.ignored();
3162 CKEDITOR.dom.walker.empty = function(a) {
3169 var e = CKEDITOR.dom.walker.empty(),
3170 y = CKEDITOR.dom.walker.validEmptyBlockContainers = CKEDITOR.tools.extend(function(a) {
3173 for (c in a) CKEDITOR.dtd[c]["#"] && (b[c] = 1);
3175 }(CKEDITOR.dtd.$block), {
3180 CKEDITOR.dom.walker.editable = function(a) {
3183CKEDITOR.NODE_TEXT || b.type == CKEDITOR.NODE_ELEMENT && (b.is(CKEDITOR.dtd.$inline) || b.is("hr")…
3187 CKEDITOR.dom.element.prototype.getBogus = function() {
3190 …return a && (CKEDITOR.env.needsBrFiller ? a.is && a.is("br") : a.getText && f.test(a.getText())) ?…
3193 CKEDITOR.dom.range = function(a) {
3196 var d = a instanceof CKEDITOR.dom.document;
3224CKEDITOR.POSITION_BEFORE_START) : A == b + 1 && q ? a.moveToPosition(p[b], CKEDITOR.POSITION_BEFOR…
3238 …if (l && F.type == CKEDITOR.NODE_TEXT && (t.equals(F) || t.type === CKEDITOR.NODE_ELEMENT && t.get…
3240 …F.type == CKEDITOR.NODE_TEXT ? l ? P = !0 : F = F.split(C) : 0 < F.getChildCount() ? C >= F.getChi…
3241 …t.type == CKEDITOR.NODE_TEXT ? l ? H = !0 : t.split(L) : 0 < t.getChildCount() ? 0 === L ? (t = t.…
3269 b = CKEDITOR.dom.walker.whitespaces(),
3270 c = CKEDITOR.dom.walker.bookmark(!0),
3271 d = CKEDITOR.dom.walker.bogus();
3273 …? a = !0 : f.type == CKEDITOR.NODE_TEXT && (f.hasAscendant("pre") || CKEDITOR.tools.trim(f.getText…
3278 var b = CKEDITOR.dom.walker.whitespaces(),
3279 c = CKEDITOR.dom.walker.bookmark(1);
3281 …return c(d) || b(d) ? !0 : !a && k(d) || d.type == CKEDITOR.NODE_ELEMENT && d.is(CKEDITOR.dtd.$rem…
3322 k = CKEDITOR.dom.walker.bogus(),
3324 n = CKEDITOR.dom.walker.editable(),
3325 r = CKEDITOR.dom.walker.ignored(!0);
3326 CKEDITOR.dom.range.prototype = {
3329 new CKEDITOR.dom.range(this.root);
3342 var b = new CKEDITOR.dom.documentFragment(this.document);
3351 var c = new CKEDITOR.dom.documentFragment(this.document);
3361 a && (d = "cke_bm_" + CKEDITOR.tools.getNextNumber(), b.setAttribute("id",
3367 …c ? (this.setStartAfter(b), this.setEndBefore(c)) : this.moveToPosition(b, CKEDITOR.POSITION_AFTER…
3382 m = m.type != CKEDITOR.NODE_ELEMENT || 0 === f || f == m.getChildCount() ?
3383 … 0 : m.getChild(f - 1).type == CKEDITOR.NODE_TEXT && m.getChild(f).type == CKEDITOR.NODE_TEXT;
3385 if (e.type == CKEDITOR.NODE_ELEMENT && 0 < d) {
3395 if (e.type == CKEDITOR.NODE_TEXT) {
3398 …(m = m.getPrevious()) && m.type == CKEDITOR.NODE_TEXT;) f += m.getText().replace(CKEDITOR.dom.sele…
3411 …e.equals(d) && (a.offset -= CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length, 0 >= a.offset && …
3414 var c = CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT, !0);
3455 if (a.type == CKEDITOR.NODE_ELEMENT)
3460 a = new CKEDITOR.dom.node(a);
3463 if (b.type == CKEDITOR.NODE_ELEMENT)
3469 b = new CKEDITOR.dom.node(b)
3471 a.getPosition(b) & CKEDITOR.POSITION_FOLLOWING && (a = b);
3480 …c = c.equals(d) ? a && c.type == CKEDITOR.NODE_ELEMENT && this.startOffset == this.endOffset - 1 ?…
3487 …a.type != CKEDITOR.NODE_ELEMENT && (b ? b >= a.getLength() && this.setStartAfter(a) : this.setStar…
3490 …a.type != CKEDITOR.NODE_ELEMENT && (b ? b >= a.getLength() && this.setEndAfter(a) : this.setEndBef…
3495 …a.is && a.is("span") && a.data("cke-bookmark") && this.setStartAt(a, CKEDITOR.POSITION_BEFORE_STAR…
3496 …b && b.is && b.is("span") && b.data("cke-bookmark") && this.setEndAt(b, CKEDITOR.POSITION_AFTER_EN…
3502 if ((!a || f) && c && c.type == CKEDITOR.NODE_TEXT) {
3520 …b || f || !c || c.type != CKEDITOR.NODE_TEXT || (d ? (d >= c.getLength() || c.split(d), d = c.getI…
3524 … return a && a.type == CKEDITOR.NODE_ELEMENT && a.hasAttribute("contenteditable") ? null : a
3528 case CKEDITOR.ENLARGE_INLINE:
3530 case CKEDITOR.ENLARGE_ELEMENT:
3532 var c = new CKEDITOR.dom.range(g);
3534 c.setEndAt(g, CKEDITOR.POSITION_BEFORE_END);
3535 var c = new CKEDITOR.dom.walker(c),
3538 return !(a.type == CKEDITOR.NODE_ELEMENT && a.isBlockBoundary())
3540 if (e.type != CKEDITOR.NODE_TEXT) return !1;
3553 …C.type == CKEDITOR.NODE_TEXT ? (q && (C = !CKEDITOR.tools.trim(C.substring(0, q)).length && C, L =…
3563 if (C = !1, t.type == CKEDITOR.NODE_COMMENT) t = t.getPrevious();
3565 …if (t.type == CKEDITOR.NODE_TEXT) M = t.getText(), d.test(M) && (t = null), C = /[\s\ufeff]$/.test…
3566 …else if ((t.$.offsetWidth > (CKEDITOR.env.webkit ? 1 : 0) || b && t.is("br")) && !t.data("cke-book…
3567 if (L && CKEDITOR.dtd.$removeEmpty[t.getName()]) {
3573 … if (!CKEDITOR.dtd.$removeEmpty[z.nodeName.toLowerCase()]) {
3594 …C.type == CKEDITOR.NODE_TEXT ? CKEDITOR.tools.trim(C.substring(q)).length ? L = !0 : (L = !C.getLe…
3605 …if (t.type == CKEDITOR.NODE_TEXT) M = t.getText(), h(t, 0) || (t = null), C = /^[\s\ufeff]/.test(M…
3606 else if (t.type == CKEDITOR.NODE_ELEMENT) {
3608 if (L && CKEDITOR.dtd.$removeEmpty[t.getName()]) {
3614 … if (!CKEDITOR.dtd.$removeEmpty[z.nodeName.toLowerCase()]) {
3635 case CKEDITOR.ENLARGE_BLOCK_CONTENTS:
3636 case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:
3637 l = new CKEDITOR.dom.range(this.root);
3639 l.setStartAt(g, CKEDITOR.POSITION_AFTER_START);
3641 l = new CKEDITOR.dom.walker(l);
3642 … var H, P, O = CKEDITOR.dom.walker.blockBoundary(a == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS ? {
3647 … if (a.type == CKEDITOR.NODE_ELEMENT && "false" == a.getAttribute("contenteditable"))
3667 …!l && this.checkStartOfBlock() || l && H.contains(l)) ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.P…
3668 if (a == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS) {
3670 l = new CKEDITOR.dom.walker(l);
3671 var w = CKEDITOR.dom.walker.whitespaces(),
3672 A = CKEDITOR.dom.walker.bookmark();
3676 … if ((l = l.previous()) && l.type == CKEDITOR.NODE_ELEMENT && l.is("br")) break
3680 l.setEndAt(g, CKEDITOR.POSITION_BEFORE_END);
3681 l = new CKEDITOR.dom.walker(l);
3682 l.guard = a == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS ? f : N;
3686 …(H, !l && this.checkEndOfBlock() || l && H.contains(l) ? CKEDITOR.POSITION_BEFORE_END : CKEDITOR.P…
3694 a = a || CKEDITOR.SHRINK_TEXT;
3701 …m && m.type == CKEDITOR.NODE_TEXT && (k ? k >= m.getLength() ? h.setStartAfter(m) : (h.setStartBef…
3702 …g && g.type == CKEDITOR.NODE_TEXT && (r ? r >= g.getLength() ? h.setEndAfter(g) : (h.setEndAfter(g…
3703 var h = new CKEDITOR.dom.walker(h),
3704 t = CKEDITOR.dom.walker.bookmark(),
3705 F = CKEDITOR.dom.walker.bogus();
3707 … return b.type == (a == CKEDITOR.SHRINK_ELEMENT ? CKEDITOR.NODE_ELEMENT : CKEDITOR.NODE_TEXT)
3712CKEDITOR.SHRINK_ELEMENT && b.type == CKEDITOR.NODE_TEXT || c && b.equals(L) || !1 === d && b.type …
3713 c || b.type != CKEDITOR.NODE_ELEMENT || (L = b);
3716 …c && (m = h[a == CKEDITOR.SHRINK_ELEMENT ? "lastForward" : "next"]()) && this.setStartAt(m, b ? CK…
3717 …l && (h.reset(), (h = h[a == CKEDITOR.SHRINK_ELEMENT ? "lastBackward" : "previous"]()) && this.set…
3718 CKEDITOR.POSITION_AFTER_END));
3742 this.setEnd(a, a.type == CKEDITOR.NODE_TEXT ? a.getLength() : a.getChildCount())
3745 …b.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$empty[b.getName()] && (c = b.getIndex(), b = b.ge…
3752 …b.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$empty[b.getName()] && (c = b.getIndex() + 1, b = …
3773 case CKEDITOR.POSITION_AFTER_START:
3776 case CKEDITOR.POSITION_BEFORE_END:
3777 b.type == CKEDITOR.NODE_TEXT ? this.setStart(b,
3780 case CKEDITOR.POSITION_BEFORE_START:
3783 case CKEDITOR.POSITION_AFTER_END:
3790 case CKEDITOR.POSITION_AFTER_START:
3793 case CKEDITOR.POSITION_BEFORE_END:
3794 … b.type == CKEDITOR.NODE_TEXT ? this.setEnd(b, b.getLength()) : this.setEnd(b, b.getChildCount());
3796 case CKEDITOR.POSITION_BEFORE_START:
3799 case CKEDITOR.POSITION_AFTER_END:
3808 this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);
3819 var c = new CKEDITOR.dom.elementPath(this.startContainer, this.root),
3820 d = new CKEDITOR.dom.elementPath(this.endContainer, this.root),
3825 …"br" != a && (f || (f = this.fixBlock(!0, a), h = (new CKEDITOR.dom.elementPath(this.endContainer,…
3829CKEDITOR.dom.elementPath(this.startContainer, this.root), this.moveToPosition(h, CKEDITOR.POSITION…
3841 this.setEndAt(a, CKEDITOR.POSITION_BEFORE_END);
3846 this.moveToPosition(a, CKEDITOR.POSITION_AFTER_END);
3852 … return b(a) || c(a) || a.type == CKEDITOR.NODE_ELEMENT && a.isEmptyInlineRemoveable() ||
3856 var b = CKEDITOR.dom.walker.whitespaces(),
3857 c = CKEDITOR.dom.walker.bookmark(!1);
3859 …First(a(f));) h = f.getParent(), this[b ? "setEndAt" : "setStartAt"](f, CKEDITOR.POSITION_AFTER_EN…
3864 return new CKEDITOR.dom.elementPath(this.startContainer, this.root)
3867 return new CKEDITOR.dom.elementPath(this.endContainer,
3871 var d = b == CKEDITOR.START,
3874 …f[d ? "setStartAt" : "setEndAt"](a, d ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_BEFORE_E…
3875 f = new CKEDITOR.dom.walker(f);
3882CKEDITOR.env.ie && c && a.type == CKEDITOR.NODE_TEXT && (a = CKEDITOR.tools.ltrim(a.substring(0, c…
3884 a = new CKEDITOR.dom.elementPath(this.startContainer,
3888 c.setStartAt(a.block || a.blockLimit, CKEDITOR.POSITION_AFTER_START);
3889 a = new CKEDITOR.dom.walker(c);
3896CKEDITOR.env.ie && a.type == CKEDITOR.NODE_TEXT && (a = CKEDITOR.tools.rtrim(a.substring(c)), g.te…
3898 a = new CKEDITOR.dom.elementPath(this.endContainer, this.root);
3901 c.setEndAt(a.block || a.blockLimit, CKEDITOR.POSITION_BEFORE_END);
3902 a = new CKEDITOR.dom.walker(c);
3909 d.setStartAt(c || this.root, CKEDITOR.POSITION_AFTER_START);
3910 c = new CKEDITOR.dom.walker(d);
3918 d.setEndAt(c || this.root, CKEDITOR.POSITION_BEFORE_END);
3919 c = new CKEDITOR.dom.walker(d);
3928 CKEDITOR.NODE_ELEMENT) {
3943 …if (a.type == CKEDITOR.NODE_ELEMENT && !a.isEditable(!1)) return this.moveToPosition(a, b ? CKEDIT…
3946 if (a.type == CKEDITOR.NODE_TEXT) {
3947 …) ? this.moveToPosition(a, CKEDITOR.POSITION_BEFORE_START) : this.moveToPosition(a, b ? CKEDITOR.P…
3951 if (a.type == CKEDITOR.NODE_ELEMENT)
3952 …if (a.isEditable()) this.moveToPosition(a, b ? CKEDITOR.POSITION_BEFORE_END : CKEDITOR.POSITION_AF…
3953 … && this.endContainer && this.checkEndOfBlock()) this.moveToPosition(a, CKEDITOR.POSITION_BEFORE_S…
3954 …else if ("false" == a.getAttribute("contenteditable") && a.is(CKEDITOR.dtd.$block)) return this.se…
3958 … d.type == CKEDITOR.NODE_ELEMENT && d.isEditable(!1) && (h = d[b ? "getLast" : "getFirst"](r));
3966 f, h, m = [CKEDITOR.POSITION_AFTER_END, CKEDITOR.POSITION_BEFORE_START];
3967 … a ? (c = new CKEDITOR.dom.range(this.root), c.moveToPosition(a, m[b ? 0 : 1])) : c = this.clone();
3969 !a.is(CKEDITOR.dtd.$block)) d = 1;
3970CKEDITOR.NODE_ELEMENT) && f.is(CKEDITOR.dtd.$block) && "false" == f.getAttribute("contenteditable"…
3983 …if (a.startContainer.type != CKEDITOR.NODE_ELEMENT || a.endContainer.type != CKEDITOR.NODE_ELEMENT…
3984 var a = new CKEDITOR.dom.walker(a),
3985 b = CKEDITOR.dom.walker.bookmark(!1, !0),
3986 c = CKEDITOR.dom.walker.whitespaces(!0);
3996 … return this.collapsed || a.type != CKEDITOR.NODE_ELEMENT ? a : a.getChild(this.startOffset) || a
4000 … return this.collapsed || a.type != CKEDITOR.NODE_ELEMENT ? a : a.getChild(this.endOffset - 1) || a
4018 return CKEDITOR.env.safari && d && c.equals(this.root) ?
4022 …var a = new CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e", this.documen…
4025 …(d = f.startContainer.type == CKEDITOR.NODE_TEXT) ? (c = f.startContainer.getText(), b = f.startCo…
4032 var d = CKEDITOR.tools.array.map(b, function(a) {
4035 e = new CKEDITOR.dom.range(c.root),
4037 …c.startContainer instanceof CKEDITOR.dom.element && (h = 0 === c.startOffset && c.startContainer.h…
4038 …c.endContainer instanceof CKEDITOR.dom.element && (l = (l = c.endOffset === (c.endContainer.getChi…
4043 … e = CKEDITOR.dom.document.prototype.find.call(e, "[data-cke-widget-id]").toArray();
4044 if (e = CKEDITOR.tools.array.map(e, function(a) {
4048 })) return e = CKEDITOR.tools.array.map(e, function(a) {
4058 }, c), CKEDITOR.tools.array.forEach(e, function(a) {
4060 CKEDITOR.tools.array.forEach(d, function(b, f) {
4061 var l = CKEDITOR.tools.objectCompare(a[e], b);
4062 l || (l = CKEDITOR.tools.objectCompare(a.widgetRect, b));
4074CKEDITOR.dom.element ? (a = e.checkStartOfBlock(), f = new CKEDITOR.dom.text("​"), a ? e.startCont…
4080 a = CKEDITOR.tools.extend({}, a);
4081 b && (a = CKEDITOR.tools.getAbsoluteRectPosition(d.document.getWindow(), a));
4112 return CKEDITOR.tools.array.map(m, function(a) {
4132 … = m.getItem(h), b || !c.isReadOnly()) g = c.getPosition(d.startNode) & CKEDITOR.POSITION_FOLLOWIN…
4133 …d.startNode.equals(c), k = c.getPosition(d.endNode) & CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSIT…
4137 CKEDITOR.dom.range.mergeRanges = function(a) {
4138 return CKEDITOR.tools.array.reduce(a, function(a, b) {
4142 b.enlarge(CKEDITOR.ENLARGE_ELEMENT);
4144 var e = new CKEDITOR.dom.range(b.root),
4145 d = new CKEDITOR.dom.walker(e),
4146 f = CKEDITOR.dom.walker.whitespaces();
4157 CKEDITOR.POSITION_AFTER_START = 1;
4158 CKEDITOR.POSITION_BEFORE_END = 2;
4159 CKEDITOR.POSITION_BEFORE_START = 3;
4160 CKEDITOR.POSITION_AFTER_END = 4;
4161 CKEDITOR.ENLARGE_ELEMENT = 1;
4162 CKEDITOR.ENLARGE_BLOCK_CONTENTS = 2;
4163 CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS = 3;
4164 CKEDITOR.ENLARGE_INLINE = 4;
4165 CKEDITOR.START = 1;
4166 CKEDITOR.END = 2;
4167 CKEDITOR.SHRINK_ELEMENT = 1;
4168 CKEDITOR.SHRINK_TEXT = 2;
4179 }, CKEDITOR.NODE_ELEMENT, !0);
4196 … if ((g = CKEDITOR.filter.instances[h.element.data("cke-filter")]) && !g.check(c)) return b(a,
4197 …c, f, h.remaining);c = new CKEDITOR.dom.range(h.element);c.selectNodeContents(h.element);c = c.cre…
4210 return a.checkBoundaryOfElement(b, c ? CKEDITOR.START : CKEDITOR.END)
4213 h = CKEDITOR.dom.walker.bookmark(!1, !0),
4214 k = CKEDITOR.dom.walker.whitespaces(!0),
4241 x.shrink(CKEDITOR.SHRINK_ELEMENT, !0);
4242 J && x.setStartAt(k.block, CKEDITOR.POSITION_BEFORE_END);
4243 u && x.setEndAt(m.block, CKEDITOR.POSITION_AFTER_START);
4245 …enlarge(this.forceBrBreak && !k || !this.enlargeBr ? CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS : CKEDITO…
4246CKEDITOR.dom.walker(x.clone()), m = CKEDITOR.dom.walker.bookmark(!0, !0), k.evaluator = m, this._.…
4247 …(m = new CKEDITOR.dom.elementPath(m.endContainer, m.root), this._.lastNode = (m.block || m.blockLi…
4256 K = m.type != CKEDITOR.NODE_ELEMENT,
4258 if (K) m.type == CKEDITOR.NODE_TEXT && f.test(m.getText()) && (K = 0);
4261 … if (CKEDITOR.dtd.$block[t] && "false" == m.getAttribute("contenteditable")) {
4274 … k && (k.setEndAt(m, CKEDITOR.POSITION_BEFORE_START), "br" != t && (this._.nextNode = m));
4278 … k || (k = this.range.clone(), k.setStartAt(m, CKEDITOR.POSITION_BEFORE_START));
4285 … K && !k && (k = this.range.clone(), k.setStartAt(m, CKEDITOR.POSITION_BEFORE_START));
4296 k.setEndAt(t, CKEDITOR.POSITION_BEFORE_END);
4304 K && k.setEndAt(m, CKEDITOR.POSITION_AFTER_END);
4310 d = new CKEDITOR.dom.elementPath(k.startContainer, k.root);
4321 …B && (B = d.getPrevious()) && B.type == CKEDITOR.NODE_ELEMENT && ("br" == B.getName() ? B.remove()…
4322 …D && (B = d.getLast()) && B.type == CKEDITOR.NODE_ELEMENT && "br" == B.getName() && (!CKEDITOR.env…
4336 CKEDITOR.dom.range.prototype.createIterator = function() {
4340 CKEDITOR.command = function(a, d) {
4343 if (this.state == CKEDITOR.TRISTATE_DISABLED || !this.checkAllowed()) return !1;
4361 CKEDITOR.tools.extend(this, d, {
4367 state: CKEDITOR.TRISTATE_DISABLED
4369 CKEDITOR.event.call(this)
4371 CKEDITOR.command.prototype = {
4373CKEDITOR.TRISTATE_DISABLED && this.checkAllowed() && this.setState(this.preserveState && "undefine…
4376 this.setState(CKEDITOR.TRISTATE_DISABLED)
4379 … if (this.state == a || a != CKEDITOR.TRISTATE_DISABLED && !this.checkAllowed()) return !1;
4386 this.state == CKEDITOR.TRISTATE_OFF ?
4387 …this.setState(CKEDITOR.TRISTATE_ON) : this.state == CKEDITOR.TRISTATE_ON && this.setState(CKEDITOR
4390 CKEDITOR.event.implementOn(CKEDITOR.command.prototype);
4391 CKEDITOR.ENTER_P = 1;
4392 CKEDITOR.ENTER_BR = 2;
4393 CKEDITOR.ENTER_DIV = 3;
4394 CKEDITOR.config = {
4400 enterMode: CKEDITOR.ENTER_P,
4402 shiftEnterMode: CKEDITOR.ENTER_BR,
4408 contentsCss: CKEDITOR.getUrl("contents.css"),
4415 blockedKeystrokes: [CKEDITOR.CTRL + 66, CKEDITOR.CTRL + 73, CKEDITOR.CTRL + 85]
4545 …if ("string" == typeof a) return a = z(a), "*" == a ? !0 : CKEDITOR.tools.convertArrayToObject(a.s…
4546 … if (CKEDITOR.tools.isArray(a)) return a.length ? CKEDITOR.tools.convertArrayToObject(a) : !1;
4560 if (-1 == CKEDITOR.tools.indexOf(e, d)) return !1
4561 } else if (!CKEDITOR.tools.checkIfAnyArrayItemMatches(e, d)) return !1;
4570 } else if (!CKEDITOR.tools.checkIfAnyObjectPropertyMatches(a, d)) return !1;
4601 a.styles || (a.styles = CKEDITOR.tools.parseCssText(b ||
4701 if (c = CKEDITOR.tools.writeCssText(a.styles, !0)) b.style = c;
4726 return new CKEDITOR.htmlParser.element("br")
4730 return a.type == CKEDITOR.NODE_ELEMENT && ("br" ==
4748 if (w = d[e], w.type == CKEDITOR.NODE_ELEMENT && !f[w.name]) {
4759CKEDITOR.NODE_DOCUMENT_FRAGMENT || "body" == f.name, p, h, l = d.length; 0 < l;) w = d[--l], e && …
4762 … q[f.name] || q.span, w.insertAfter(a), f.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT || w.type != CKE…
4806 … "string" == typeof a ? c = a : a instanceof CKEDITOR.style ? d = a : (c = a[0], d = a[1]);
4827 var q = CKEDITOR.dtd,
4828 E = CKEDITOR.tools.copy,
4829 z = CKEDITOR.tools.trim,
4831 CKEDITOR.FILTER_SKIP_TREE = 2;
4832 CKEDITOR.filter = function(a) {
4838 this.id = CKEDITOR.tools.getNextNumber();
4852 CKEDITOR.filter.instances[this.id] = this;
4853 if (a instanceof CKEDITOR.editor) {
4861 CKEDITOR.filter.instances = {};
4862 CKEDITOR.filter.prototype = {
4867 else if (b instanceof CKEDITOR.style) {
4874 requiredStyles: f.styles && CKEDITOR.tools.objectKeys(f.styles)
4876 …asses, delete d["class"], f.attributes = d, f.requiredAttributes = d && CKEDITOR.tools.objectKeys(…
4877 } else if (CKEDITOR.tools.isArray(b)) {
4897 if (a.type == CKEDITOR.NODE_ELEMENT) {
4899 …if (!b || "span" != a.name || !~CKEDITOR.tools.objectKeys(a.attributes).join("|").indexOf("data-ck…
4902 … } else if (a.type == CKEDITOR.NODE_COMMENT && a.value.match(/^\{cke_protected\}(?!\{C\})/)) {
4912 …} d = CKEDITOR.htmlParser.fragment.fromHtml(d);1 == d.children.length && (l = d.children[0]).type …
4920 d = H[d || (this.editor ? this.editor.enterMode : CKEDITOR.ENTER_P)];
4921 for (var z; c = e.pop();) c.type == CKEDITOR.NODE_ELEMENT ? l(c, d, a) : c.remove();
4929 CKEDITOR.NODE_DOCUMENT_FRAGMENT || z[c.name] || l(c, d, a);
4932 … c.parent.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT || z[c.name] || l(c.parent, d, a)
4954 … < a.length && !f; ++b) c = a[b], ("string" == typeof c || c instanceof CKEDITOR.style) && this.ch…
4988 … e.left.getDefinition().element), h instanceof CKEDITOR.style && (h = C(h)), c.push({
5001 if (CKEDITOR.tools.isArray(a)) {
5019 l && (f.attributes.style = CKEDITOR.tools.writeCssText(f.styles))
5020 …(), l = f.styles, d = f.attributes || {}, l && !CKEDITOR.tools.isEmpty(l) ? (l = E(l), d.style = C…
5027 var l = CKEDITOR.tools.clone(f),
5041 …utes["class"] = f.attributes["class"].split(" ").sort().join(" ")), c = CKEDITOR.tools.objectCompa…
5048 p: CKEDITOR.ENTER_P,
5049 div: CKEDITOR.ENTER_DIV,
5050 br: CKEDITOR.ENTER_BR
5058 return CKEDITOR.ENTER_BR
5062 var a = new CKEDITOR.filter,
5063 b = CKEDITOR.tools.clone;
5074 delete CKEDITOR.filter.instances[this.id];
5099 G = CKEDITOR.filter.transformationsTools = {
5143 var b = CKEDITOR.tools.style.parse.border(a.styles.border);
5217 CKEDITOR.focusManager = function(a) {
5226 CKEDITOR.focusManager._ = {
5229 CKEDITOR.focusManager.prototype = {
5233 …this.hasFocus || this._.locked || ((a = CKEDITOR.currentInstance) && a.focusManager.blur(1), this.…
5253 var b = CKEDITOR.focusManager._.blurDelay;
5254 a || !b ? d.call(this) : this._.timer = CKEDITOR.tools.setTimeout(function() {
5267 … d && (CKEDITOR.env.ie ? (b = "focusin", c = "focusout") : CKEDITOR.event.useCapture = 1);
5278 d && (CKEDITOR.event.useCapture = 0);
5292 CKEDITOR.keystrokeHandler = function(a) {
5320 CKEDITOR.keystrokeHandler.prototype = {
5323 if (CKEDITOR.env.gecko && CKEDITOR.env.mac) a.on("keypress", b, this)
5328 CKEDITOR.lang = {
5409 a && CKEDITOR.lang.languages[a] ||
5416 … this[a] ? d() : CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/" + a + ".js"), d, this)
5425 CKEDITOR.lang.detect = f ? function() {
5434 CKEDITOR.scriptLoader = function() {
5441 f || (f = CKEDITOR);
5452 … 0 >= --g && (h && CKEDITOR.document.getDocumentElement().removeStyle("cursor"), e(b))
5467 new CKEDITOR.dom.element("script");
5472 …c && (CKEDITOR.env.ie && (8 >= CKEDITOR.env.version || CKEDITOR.env.ie9Compat) ? e.$.onreadystatec…
5481 e.appendTo(CKEDITOR.document.getHead())
5485 h && CKEDITOR.document.getDocumentElement().setStyle("cursor", "wait");
5492 (b = c[0]) && this.load(b.scriptUrl, b.callback, CKEDITOR, 0)
5510 CKEDITOR.resourceManager = function(a, d) {
5520 CKEDITOR.resourceManager.prototype = {
5522 …if (this.registered[a]) throw Error('[CKEDITOR.resourceManager.add] The resource name "' + a + '" …
5526 CKEDITOR.fire(a + CKEDITOR.tools.capitalize(this.fileName) + "Ready", b);
5534 return CKEDITOR.getUrl(d && d.dir || this.basePath + a + "/")
5538 return CKEDITOR.getUrl(this.getPath(a) + (d ? d.file : this.fileName + ".js"))
5555 CKEDITOR.tools.isArray(a) || (a = a ? [a] : []);
5567 CKEDITOR.scriptLoader.load(h, function(a, f) {
5568 …if (f.length) throw Error('[CKEDITOR.resourceManager.load] Resource name "' + k[f[0]].join(",") + …
5579 CKEDITOR.plugins = new CKEDITOR.resourceManager("plugins/", "plugin");
5580 CKEDITOR.plugins.load = CKEDITOR.tools.override(CKEDITOR.plugins.load, function(a) {
5586 CKEDITOR.tools.extend(h, a);
5594 …var B = g.icons.split(","), D = B.length; D--;) CKEDITOR.skin.addIcon(B[D], g.path + "icons/" + (C…
5611 CKEDITOR.plugins.setLang = function(a, d, b) {
5615 c.split && (c = c.split(",")); - 1 == CKEDITOR.tools.indexOf(c, d) && c.push(d);
5618 CKEDITOR.ui = function(a) {
5628 CKEDITOR.ui.prototype = {
5636 CKEDITOR.tools.extend(c, b)
5656 return CKEDITOR.document.getById(this.spaceId(a))
5662 CKEDITOR.event.implementOn(CKEDITOR.ui);
5665 CKEDITOR.event.call(this);
5666 a = a && CKEDITOR.tools.clone(a);
5668 …if (!(f instanceof CKEDITOR.dom.element)) throw Error("Expect element of type CKEDITOR.dom.element…
5670 …if (CKEDITOR.env.ie && CKEDITOR.env.quirks && e == CKEDITOR.ELEMENT_MODE_INLINE) throw Error("Inli…
5674 … this.name = this.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO && (f.getId() || f.getNameAtt())
5675 } else this.elementMode = CKEDITOR.ELEMENT_MODE_NONE;
5680 this.id = CKEDITOR.tools.getNextId();
5682 this.config = CKEDITOR.tools.prototypedCopy(CKEDITOR.config);
5683 this.ui = new CKEDITOR.ui(this);
5684 this.focusManager = new CKEDITOR.focusManager(this);
5685 this.keystrokeHandler = new CKEDITOR.keystrokeHandler(this);
5700 a.shrink(CKEDITOR.SHRINK_ELEMENT, !0);
5707 CKEDITOR.fire("instanceCreated", null, this);
5708 CKEDITOR.add(this);
5709 CKEDITOR.tools.setTimeout(function() {
5711 this.status ? g(this, a) : CKEDITOR.warn("editor-incorrect-destroy")
5716 do var a = "editor" + ++D; while (CKEDITOR.instances[a]);
5721 …turn b == CKEDITOR.ELEMENT_MODE_INLINE ? a.is(CKEDITOR.dtd.$editable) || a.is("textarea") : b == C…
5745 var b = CKEDITOR.getUrl(b),
5747 …? (c.fn.call(a, a.config), CKEDITOR.getUrl(a.config.customConfig) != b && k(a) || a.fireOnce("cust…
5748 c.fn = CKEDITOR.editorConfig ? CKEDITOR.editorConfig : function() {};
5760 CKEDITOR.tools.extend(a.config, b, !0);
5764CKEDITOR.ELEMENT_MODE_INLINE ? a.element.is("textarea") ? a.element.hasAttribute("disabled") || a.…
5765 …a.blockless = a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? !(a.element.is("textarea") || CKEDIT…
5768 a.activeEnterMode = a.enterMode = a.blockless ? CKEDITOR.ENTER_BR : c.enterMode;
5769 … a.activeShiftEnterMode = a.shiftEnterMode = a.blockless ? CKEDITOR.ENTER_BR : c.shiftEnterMode;
5770 c.skin && (CKEDITOR.skinName = c.skin);
5772 a.dataProcessor = new CKEDITOR.htmlDataProcessor(a);
5773 a.filter = a.activeFilter = new CKEDITOR.filter(a);
5781 CKEDITOR.skin.loadPart("editor", function() {
5787 CKEDITOR.lang.load(a.config.language, a.config.defaultLanguage, function(b, c) {
5790 a.lang = CKEDITOR.tools.prototypedCopy(c);
5792 …entsLangDirection || (a.config.contentsLangDirection = a.elementMode == CKEDITOR.ELEMENT_MODE_INLI…
5813 CKEDITOR.tools.isArray(a) && (a = a.join(","));
5825 CKEDITOR.env.air && (d += ",adobeair");
5826 CKEDITOR.plugins.load(d.split(","),
5831 a.plugins = CKEDITOR.tools.extend({}, a.plugins, b);
5838 CKEDITOR.tools.isArray(p) && (p = p.join(","));
5840 for (; p = F.pop();) CKEDITOR.error("editor-plugin-required", {
5844CKEDITOR.tools.indexOf(t, a.langCode) ? k = a.langCode : (k = a.langCode.replace(/-.*/, ""), k = k…
5845 …&& h.langEntries[k] ? (a.lang[l] = h.langEntries[k], k = null) : e.push(CKEDITOR.getUrl(h.path + "…
5849 CKEDITOR.scriptLoader.load(e, function() {
5862 CKEDITOR.fire("instanceLoaded", null, a)
5869 if (a && this.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO) {
5871 this.config.htmlEncodeOutput && (b = CKEDITOR.tools.htmlEncode(b));
5889 for (var f = new CKEDITOR.dom.documentFragment, e, h, g, k = 0; k < a.length; k++) {
5900 a.prototype = CKEDITOR.editor.prototype;
5901 CKEDITOR.editor =
5905 CKEDITOR.tools.extend(CKEDITOR.editor.prototype, {
5910 if (this[d]) return CKEDITOR.warn("editor-plugin-conflict", {
5920 var c = b instanceof CKEDITOR.command ? b : new CKEDITOR.command(this, b);
5936 f = new CKEDITOR.dom.element(d.$.form);
5937 …("textarea") && f && (f.on("submit", a), b(f.$.submit) && (f.$.submit = CKEDITOR.tools.override(f.…
5955 CKEDITOR.remove(this);
5956 CKEDITOR.fire("instanceDestroyed", null, this)
5964 return a ? new CKEDITOR.dom.elementPath(a, this.editable()) : null
5968 return a ? new CKEDITOR.dom.range(a) : null
5977 return c && c.state != CKEDITOR.TRISTATE_DISABLED &&
5986 …"string" != typeof b && (b = (b = this.element) && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLA…
5995 …"string" != typeof a && (a = (a = this.element) && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLA…
6045 f = new CKEDITOR.dom.documentFragment,
6066 …for (var a = this.keystrokeHandler.keystrokes, b = CKEDITOR.tools.isArray(arguments[0]) ? argument…
6068 …], c, d, f = b.length; f--;) c = b[f], d = 0, CKEDITOR.tools.isArray(c) && (d = c[1], c = c[0]), d…
6072 var b = CKEDITOR.tools.object.findKey(this.commands, a),
6089 a = a ? this.blockless ? CKEDITOR.ENTER_BR : a : this.enterMode;
6091 CKEDITOR.ENTER_BR : b : this.shiftEnterMode;
6099 CKEDITOR.ELEMENT_MODE_NONE = 0;
6100 CKEDITOR.ELEMENT_MODE_REPLACE = 1;
6101 CKEDITOR.ELEMENT_MODE_APPENDTO = 2;
6102 CKEDITOR.ELEMENT_MODE_INLINE = 3;
6103 CKEDITOR.htmlParser = function() {
6125 CKEDITOR.htmlParser.prototype = {
6139 …if (f = f.toLowerCase(), k && CKEDITOR.dtd.$cdata[f] && (this.onCDATA(k.join("")), k = null), !k) {
6152 g[e] = !n && d[e] ? e : CKEDITOR.tools.htmlDecodeAttr(n)
6155 !k && CKEDITOR.dtd.$cdata[f] && (k = [])
6164 CKEDITOR.htmlParser.basicWriter = CKEDITOR.tools.createClass({
6178 "string" == typeof d && (d = CKEDITOR.tools.htmlEncodeAttr(d));
6207 CKEDITOR.htmlParser.node = function() {};
6208 CKEDITOR.htmlParser.node.prototype = {
6211 d = CKEDITOR.tools.indexOf(a, this),
6221 b = CKEDITOR.tools.indexOf(d, this),
6232 b = CKEDITOR.tools.indexOf(d, a),
6243 b = CKEDITOR.tools.indexOf(d, a);
6258 b.type == CKEDITOR.NODE_ELEMENT;) {
6270 return CKEDITOR.tools.indexOf(this.parent.children, this)
6278 CKEDITOR.htmlParser.comment = function(a) {
6284 CKEDITOR.htmlParser.comment.prototype = CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node, {
6285 type: CKEDITOR.NODE_COMMENT,
6300 CKEDITOR.htmlParser.text = function(a) {
6306 CKEDITOR.htmlParser.text.prototype = CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node, {
6307 type: CKEDITOR.NODE_TEXT,
6319 CKEDITOR.htmlParser.cdata = function(a) {
6322 CKEDITOR.htmlParser.cdata.prototype = CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node, {
6323 type: CKEDITOR.NODE_TEXT,
6331 CKEDITOR.htmlParser.fragment = function() {
6341 …ibutes["data-cke-survive"] ? !1 : "a" == a.name && a.attributes.href || CKEDITOR.dtd.$removeEmpty[…
6343 var d = CKEDITOR.tools.extend({
6348 }, CKEDITOR.dtd.table, CKEDITOR.dtd.ul, CKEDITOR.dtd.ol, CKEDITOR.dtd.dl),
6353 c = CKEDITOR.tools.extend({}, {
6355 }, CKEDITOR.dtd.html, CKEDITOR.dtd.body, CKEDITOR.dtd.head, {
6369 CKEDITOR.htmlParser.fragment.fromHtml =
6377 e = CKEDITOR.dtd[f],
6378 l = u.name && CKEDITOR.dtd[u.name];
6379 …l && !l[f] || a && e && !e[a] && CKEDITOR.dtd[a] ? f == u.name && (y(u, u.parent, 1), c--) : (b ||…
6392 c && c.type == CKEDITOR.NODE_TEXT && ((d = CKEDITOR.tools.rtrim(c.value)) ?
6405 if ((a == x || "body" == a.name) && g && (!a.name || CKEDITOR.dtd[a.name][g])) {
6407 …tes["data-cke-real-element-type"]) ? d : b.name) && c in CKEDITOR.dtd.$inline && !(c in CKEDITOR.d…
6408 !b.isOrphan || b.type == CKEDITOR.NODE_TEXT
6413 …return a in CKEDITOR.dtd.$listItem || a in CKEDITOR.dtd.$tableContent ? a == b || "dt" == a && "dd…
6415 var D = new CKEDITOR.htmlParser,
6416 …x = k instanceof CKEDITOR.htmlParser.element ? k : "string" == typeof k ? new CKEDITOR.htmlParser.…
6423 e = new CKEDITOR.htmlParser.element(f, e);
6431 u.add(new CKEDITOR.htmlParser.text("\n"));
6438 …for (; !(g = (h = u.name) ? CKEDITOR.dtd[h] || (u._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.…
6440 …b) h = u.children, (h = h[h.length - 1]) && "li" == h.name || y(h = new CKEDITOR.htmlParser.elemen…
6441 else if (f in CKEDITOR.dtd.$listItem &&
6444 … else if (h in CKEDITOR.dtd.$inline && m.unshift(u), u.parent) y(u, u.parent, 1);
6477 …if (!(u._.hasInlineStarted && !J.length || l || K) && (a = CKEDITOR.tools.ltrim(a), 0 === a.length…
6479 … e = b ? CKEDITOR.dtd[b] || (u._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span) : c;
6485 a = new CKEDITOR.htmlParser.text(a);
6492 u.add(new CKEDITOR.htmlParser.cdata(a))
6497 u.add(new CKEDITOR.htmlParser.comment(a))
6504 CKEDITOR.htmlParser.fragment.prototype = {
6505 type: CKEDITOR.NODE_DOCUMENT_FRAGMENT,
6510 …if (a._.isBlockLike && c.type == CKEDITOR.NODE_TEXT && (c.value = CKEDITOR.tools.rtrim(c.value), 0…
6521 …asInlineStarted || (this._.hasInlineStarted = a.type == CKEDITOR.NODE_TEXT || a.type == CKEDITOR.N…
6553 …for (var f = 0; f < c.length; f++) d = c[f], d.type == CKEDITOR.NODE_ELEMENT ? d.forEach(a, b) : b…
6571 CKEDITOR.htmlParser.filter = CKEDITOR.tools.createClass({
6573 this.id = CKEDITOR.tools.getNextNumber();
6628CKEDITOR.NODE_ELEMENT ? this.onElement(a, c) : d == CKEDITOR.NODE_TEXT ? new CKEDITOR.htmlParser.t…
6635 CKEDITOR.htmlParser.filterRulesGroup = a;
6658 … var d = c instanceof CKEDITOR.htmlParser.node || c instanceof CKEDITOR.htmlParser.fragment,
6680 …return a || CKEDITOR.env.needsNbspFiller ? new CKEDITOR.htmlParser.text(" ") : new CKEDITOR.htmlPa…
6687 if (f.type != CKEDITOR.NODE_DOCUMENT_FRAGMENT) {
6694 … if (l = !a || !1 !== ("function" == typeof d ? d(f) : d)) z || CKEDITOR.env.needsBrFiller ||
6695 …!= CKEDITOR.NODE_DOCUMENT_FRAGMENT ? z || CKEDITOR.env.needsBrFiller || !(7 < document.documentMod…
6702 …if ((!z || CKEDITOR.env.needsBrFiller) && a.type == CKEDITOR.NODE_ELEMENT && "br" == a.name && !a.…
6704 …return a.type == CKEDITOR.NODE_TEXT && (c = a.value.match(m)) && (c.index && ((new CKEDITOR.htmlPa…
6705 …a.value = c[0]), !CKEDITOR.env.needsBrFiller && z && (!b || a.parent.name in g) || !z && ((c = a.p…
6711 g = CKEDITOR.tools.extend({}, l),
6718 if (b.parent.type != CKEDITOR.NODE_DOCUMENT_FRAGMENT) {
6734 return a != CKEDITOR.ENTER_BR && !1 !== b ? a == CKEDITOR.ENTER_DIV ? "div" : "p" : !1
6748 …return a.type == CKEDITOR.NODE_TEXT && !CKEDITOR.tools.trim(a.value) || a.type == CKEDITOR.NODE_EL…
6753 … (a.type == CKEDITOR.NODE_ELEMENT && a.name in l || a.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT)
6784 …indexOf("data-cke-saved-" + b) ? " data-cke-saved-" + a + " data-cke-" + CKEDITOR.rnd + "-" + a : a
6855 CKEDITOR.htmlDataProcessor = function(b) {
6859 this.dataFilter = c = new CKEDITOR.htmlParser.filter;
6860 this.htmlFilter = f = new CKEDITOR.htmlParser.filter;
6861 this.writer = new CKEDITOR.htmlParser.basicWriter;
6886 … c = c.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi, "$1data-cke-" + CKEDITOR.rnd + "-$2");
6889CKEDITOR.env.ie && 9 > CKEDITOR.env.version && "pre" == f && (f = "div", c = "\x3cpre\x3e" + c + "…
6893 c = c.replace(new RegExp("data-cke-" + CKEDITOR.rnd + "-", "ig"), "");
6900 c = CKEDITOR.htmlParser.fragment.fromHtml(c, a.context, f);
6901 …f && (l = c, !l.children.length && CKEDITOR.dtd[l.name][f] && (f = new CKEDITOR.htmlParser.element…
6913 c = new CKEDITOR.htmlParser.basicWriter;
6920 a.data.enterMode != CKEDITOR.ENTER_BR && (c = c.replace(/^<br *\/?>/i, ""));
6921 …a.data.dataValue = CKEDITOR.htmlParser.fragment.fromHtml(c, a.data.context, d(a.data.enterMode, b.…
6941 CKEDITOR.htmlDataProcessor.prototype = {
6971 u = CKEDITOR.dtd,
6973 l = CKEDITOR.tools.extend({}, u.$blockLimit,
7035 …a.type == CKEDITOR.NODE_ELEMENT && b.type == a.type && (c = CKEDITOR.tools.indexOf(K, a.name), d =…
7057 b && b.value && (b.value = CKEDITOR.tools.trim(b.value));
7062 !b && k(a, b = new CKEDITOR.htmlParser.text);
7070 return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g, "")) || !1
7074 CKEDITOR.env.ie && (C.attributes.style = function(a) {
7091 CKEDITOR.htmlParser.element = function(a, d) {
7098 …b = !!(CKEDITOR.dtd.$nonBodyContent[b] || CKEDITOR.dtd.$block[b] || CKEDITOR.dtd.$listItem[b] || C…
7099 this.isEmpty = !!CKEDITOR.dtd.$empty[a];
7100 this.isUnknown = !CKEDITOR.dtd[a];
7106 CKEDITOR.htmlParser.cssStyle = function(a) {
7108 …((a instanceof CKEDITOR.htmlParser.element ? a.attributes.style : a) || "").replace(/&quot;/g, '"'…
7116 …c && (a instanceof CKEDITOR.dom.element ? a.setAttribute("style", c) : a instanceof CKEDITOR.htmlP…
7129 … return b.type == CKEDITOR.NODE_ELEMENT && ("string" == typeof a ? b.name == a : b.name in a)
7137 b = CKEDITOR.htmlParser.fragment.prototype;
7138CKEDITOR.htmlParser.element.prototype = CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node, {
7139 type: CKEDITOR.NODE_ELEMENT,
7142 return new CKEDITOR.htmlParser.element(this.name, this.attributes)
7157 if (d.type != CKEDITOR.NODE_ELEMENT) return this.replaceWith(d), !1;
7207 var a = new CKEDITOR.htmlParser.basicWriter;
7212 a = this.children = CKEDITOR.htmlParser.fragment.fromHtml(a).children;
7217 new CKEDITOR.htmlParser.basicWriter;
7248 …b && ((b = CKEDITOR.tools.trim(b.replace(new RegExp("(?:\\s+|^)" + a + "(?:\\s+|$)"), " "))) ? thi…
7264 a = CKEDITOR.tools.copy(a);
7273 CKEDITOR.template = function(a) {
7276 CKEDITOR.template.prototype.output = function(d, b) {
7283 delete CKEDITOR.loadFullCore;
7284 CKEDITOR.instances = {};
7285 CKEDITOR.document = new CKEDITOR.dom.document(document);
7286 CKEDITOR.add = function(a) {
7287 CKEDITOR.instances[a.name] = a;
7289CKEDITOR.currentInstance != a && (CKEDITOR.currentInstance = a, CKEDITOR.fire("currentInstance"))
7292CKEDITOR.currentInstance == a && (CKEDITOR.currentInstance = null, CKEDITOR.fire("currentInstance"…
7294 CKEDITOR.fire("instance", null, a)
7296 CKEDITOR.remove = function(a) {
7297 delete CKEDITOR.instances[a.name]
7301 CKEDITOR.addTemplate = function(d, b) {
7308 CKEDITOR.fire("template", c);
7309 return a[d] = new CKEDITOR.template(c.source)
7311 CKEDITOR.getTemplate = function(d) {
7317 CKEDITOR.addCss = function(d) {
7320 CKEDITOR.getCss = function() {
7324 CKEDITOR.on("instanceDestroyed", function() {
7325 CKEDITOR.tools.isEmpty(this.instances) && CKEDITOR.fire("reset")
7327 CKEDITOR.TRISTATE_ON = 1;
7328 CKEDITOR.TRISTATE_OFF = 2;
7329 CKEDITOR.TRISTATE_DISABLED = 0;
7331 CKEDITOR.inline = function(a, d) {
7332 if (!CKEDITOR.env.isCompatible) return null;
7333 a = CKEDITOR.dom.element.get(a);
7335 var b = new CKEDITOR.editor(d, a, CKEDITOR.ELEMENT_MODE_INLINE),
7337CKEDITOR.dom.element.createFromHtml('\x3cdiv contenteditable\x3d"' + !!b.readOnly + '" class\x3d"c…
7351 CKEDITOR.fire("instanceReady", null, b)
7360 CKEDITOR.inlineAll = function() {
7362 for (b in CKEDITOR.dtd.$editable)
7363 …for (var c = CKEDITOR.document.getElementsByTag(b), f = 0, h = c.count(); f < h; f++) a = c.getIte…
7366 }, !1 !== CKEDITOR.fire("inline", d) && CKEDITOR.inline(a, d.config))
7368 CKEDITOR.domReady(function() {
7369 !CKEDITOR.disableAutoInline && CKEDITOR.inlineAll()
7372 CKEDITOR.replaceClass = "ckeditor";
7375 if (!CKEDITOR.env.isCompatible) return null;
7376 a = CKEDITOR.dom.element.get(a);
7378 var g = new CKEDITOR.editor(f, a, k);
7379 …k == CKEDITOR.ELEMENT_MODE_REPLACE && (a.setStyle("visibility", "hidden"), g._.required = a.hasAtt…
7383 k == CKEDITOR.ELEMENT_MODE_REPLACE && g.config.autoUpdateElement &&
7389 CKEDITOR.fire("instanceReady", null, g)
7400 …b && (b.clearCustomData(), this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && (b.show(), this._.…
7416 …r = new CKEDITOR.template('\x3c{outerEl} id\x3d"cke_{name}" class\x3d"{id} cke cke_reset cke_chrom…
7417 b = CKEDITOR.dom.element.createFromHtml(r.output({
7426 outerEl: CKEDITOR.env.ie ? "span" : "div"
7428 k == CKEDITOR.ELEMENT_MODE_REPLACE ?
7436 d && b.setStyle("width", CKEDITOR.tools.cssLength(d));
7437 k && a.ui.space("contents").setStyle("height", CKEDITOR.tools.cssLength(k));
7439 CKEDITOR.env.webkit && b.on("focus", function() {
7444 CKEDITOR.replace = function(b, d) {
7445 return a(b, d, null, CKEDITOR.ELEMENT_MODE_REPLACE)
7447 CKEDITOR.appendTo = function(b, d, h) {
7448 return a(b, d, h, CKEDITOR.ELEMENT_MODE_APPENDTO)
7450 CKEDITOR.replaceAll = function() {
7462 CKEDITOR.editor.prototype.addMode = function(a, b) {
7465 CKEDITOR.editor.prototype.setMode = function(a, b) {
7496 CKEDITOR.editor.prototype.resize = function(a, b, d, k) {
7499 … r = CKEDITOR.env.webkit && this.document && this.document.getWindow().$.frameElement;
7501 return a.type == CKEDITOR.NODE_ELEMENT && a.hasClass("cke_inner")
7517 CKEDITOR.editor.prototype.getResizable = function(a) {
7520 CKEDITOR.domReady(function() {
7521 CKEDITOR.replaceClass && CKEDITOR.replaceAll(CKEDITOR.replaceClass)
7524 CKEDITOR.config.startupMode = "wysiwyg";
7533 if (CKEDITOR.env.gecko || CKEDITOR.env.ie && CKEDITOR.env.needsBrFiller)
7534 if (g = d(g, e)) g.appendBogus(), q = CKEDITOR.env.ie;
7535 …cestor().isReadOnly() && (e = h.clone(), e.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS), f = new CKEDI…
7536 return !c(a) || a.type == CKEDITOR.NODE_COMMENT || a.isReadOnly()
7538 …nterMode == CKEDITOR.ENTER_DIV ? "div" : "p"), CKEDITOR.env.needsBrFiller || (b = b.getFirst(c)) &…
7546 …if (!(!d || !d.isBlockBoundary() || e && e.type == CKEDITOR.NODE_ELEMENT && e.isBlockBoundary() ||…
7562 …(d = d && d.nodeType == CKEDITOR.NODE_ELEMENT ? new CKEDITOR.dom.element(d) : null) && (b.equals(d…
7569 e && b.type == CKEDITOR.NODE_ELEMENT && b.is(f) && (d = b);
7584 g.setStartAt(a, CKEDITOR.POSITION_AFTER_START);
7585 a = new CKEDITOR.dom.walker(g);
7588 …d) return g = e.clone(), g.collapse(), g.setEndAt(d, CKEDITOR.POSITION_AFTER_END), a = new CKEDITO…
7594 …return !1 !== a.config.autoParagraph && a.activeEnterMode != CKEDITOR.ENTER_BR && (a.editable().eq…
7598 …return a.activeEnterMode != CKEDITOR.ENTER_BR && !1 !== a.config.autoParagraph ? a.activeEnterMode…
7616 CKEDITOR.editable = CKEDITOR.tools.createClass({
7617 base: CKEDITOR.dom.element,
7629 …if (CKEDITOR.env.webkit && !this.hasFocus && (a = this.editor._.previousActive || this.getDocument…
7633CKEDITOR.env.edge && 14 < CKEDITOR.env.version && !this.hasFocus && this.getDocument().equals(CKED…
7635 …if (!CKEDITOR.env.ie || CKEDITOR.env.edge && 14 < CKEDITOR.env.version || !this.getDocument().equa…
7636 if (CKEDITOR.env.chrome) {
7644 if (!CKEDITOR.env.ie) throw c;
7646CKEDITOR.env.safari && !this.isInline() && (a = CKEDITOR.document.getActive(), a.equals(this.getWi…
7650CKEDITOR.env.ie && /^focus|blur$/.exec(a) && (a = "focus" == a ? "focusin" : "focusout", b = f(b, …
7651 return CKEDITOR.dom.element.prototype.on.apply(this, c)
7686 … this.editor.getSelection().getStartElement().hasAscendant("pre", !0) ? CKEDITOR.ENTER_BR : this.e…
7687 return CKEDITOR.tools.transformPlainTextToHtml(a,
7713 f = CKEDITOR.dtd.$block[f];
7716 … b) && (b.moveToPosition(a, CKEDITOR.POSITION_AFTER_END), f && ((f = a.getNext(function(a) {
7718CKEDITOR.NODE_ELEMENT && f.is(CKEDITOR.dtd.$block) ? f.getDtd()["#"] ? b.moveToElementEditStart(f)…
7729 f = CKEDITOR.dtd.$block[e];
7732 b.startContainer.type == CKEDITOR.NODE_ELEMENT && (b.startContainer.is({
7738 }) ? m(b) : b.startContainer.is(CKEDITOR.dtd.$list) && J(b));
7742CKEDITOR.dtd[q.getName()]) && (!g || !g[e]);) q.getName() in CKEDITOR.dtd.span ? b.splitElement(q)…
7771 return this.getDocument().equals(CKEDITOR.document)
7780 … if (CKEDITOR.env.webkit && (e = c.getDocument().getActive()) && e.equals(c) && !d.anchorNode) {
7785 …} e && (e = new CKEDITOR.dom.range(c), e.moveToElementEditStart(c), b = b.createRange(), b.setStar…
7793 …c) && (d = new CKEDITOR.dom.range(c), a = a.body.createTextRange(), d.moveToElementEditStart(c), d…
7796 …if (CKEDITOR.env.ie && (9 > CKEDITOR.env.version || CKEDITOR.env.quirks)) this.hasFocus && (this.f…
7804 if (a.collapsed) return new CKEDITOR.dom.documentFragment(a.document);
7815 return new CKEDITOR.dom.documentFragment(a.fragment.$)
7825 a.enlarge(CKEDITOR.ENLARGE_INLINE,
7831 f.moveToPosition(d.bookmark.startNode, CKEDITOR.POSITION_BEFORE_START);
7859 … d && (a.moveToPosition(c.block, CKEDITOR.POSITION_BEFORE_START), c.block.remove())
7899 … a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? this.attachClass("cke_editable_inline") :
7900 …a.elementMode != CKEDITOR.ELEMENT_MODE_REPLACE && a.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO …
7910 if (CKEDITOR.env.webkit) this.on("scroll", function() {
7914 if (CKEDITOR.env.edge && 14 < CKEDITOR.env.version) {
7917 …null != a._.previousScrollTop && b.getDocument().equals(CKEDITOR.document) && (b.$.scrollTop = a._…
7922 …this.equals(CKEDITOR.document.getActive()) && (this.hasFocus = !0, a.once("contentDom", function()…
7934 var k = CKEDITOR.getCss();
7938 …xt() && (CKEDITOR.env.ie && 9 > CKEDITOR.env.version ? m.$.styleSheet.cssText = k : m.setText(k)) …
7946 … var b = (new CKEDITOR.dom.elementPath(a.getTarget(), this)).contains("a");
7964CKEDITOR.env.ie && 11 > CKEDITOR.env.version && (f = b.getSelectedElement()) || (f = h(b)) ? (a.fi…
7965CKEDITOR.START : CKEDITOR.END) && (A = w[c ? "getPrevious" : "getNext"](e)) ? (a.fire("saveSnapsho…
7970 …a.blockless && CKEDITOR.env.ie && CKEDITOR.env.needsBrFiller && this.attachListener(this, "keyup",…
7971 …(c) && (this.appendBogus(), b = a.createRange(), b.moveToPosition(this, CKEDITOR.POSITION_AFTER_ST…
7980 CKEDITOR.env.ie && this.attachListener(this, "click", b);
7981CKEDITOR.env.ie && !CKEDITOR.env.edge || this.attachListener(this, "mousedown",
7986 CKEDITOR.env.edge && this.attachListener(this, "mouseup", function(b) {
7989 CKEDITOR.env.gecko && this.attachListener(this, "mouseup", function(b) {
7997 CKEDITOR.env.webkit && (this.attachListener(this, "click", function(a) {
8002 CKEDITOR.env.webkit && this.attachListener(a, "key", function(b) {
8013 if (d.startContainer.type == CKEDITOR.NODE_ELEMENT) {
8015 … if (f && f.type == CKEDITOR.NODE_ELEMENT && f.is("hr")) {
8038 … ? (a.fire("saveSnapshot"), (e = p.getBogus()) && e.remove(), c.enlarge(CKEDITOR.ENLARGE_INLINE), …
8071 CKEDITOR.editor.prototype.editable = function(a) {
8074 …guments.length && (b = this._.editable = a ? a instanceof CKEDITOR.editable ? a : new CKEDITOR.edi…
8077 CKEDITOR.on("instanceLoaded", function(b) {
8081 …a.type == CKEDITOR.NODE_ELEMENT && (a.is("input") || a.is("textarea")) && ("false" != a.getAttribu…
8091 CKEDITOR.on("instanceCreated", function(a) {
8103 …if (d && (c = this.ui.space(this.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? "top" : "contents")…
8104 var e = CKEDITOR.tools.getNextId(),
8105 …d = CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"' + e + '" class\x3d"cke_voice_label"\x3e…
8112CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable tex…
8113 e = CKEDITOR.dom.walker.whitespaces(!0);
8114 y = CKEDITOR.dom.walker.bookmark(!1, !0);
8115 v = CKEDITOR.dom.walker.empty();
8116 B = CKEDITOR.dom.walker.bogus();
8120 return b.type == CKEDITOR.NODE_ELEMENT
8128 …e.getName(), P && g in CKEDITOR.dtd.$list ? h = h.concat(b(e, d)) : (q = !!z[g], "br" != g || !e.d…
8167 f.setEndAt(c, CKEDITOR.POSITION_BEFORE_END);
8168 …(g = (new CKEDITOR.dom.walker(f)).next()) && a(g) && z[g.getName()] && (q = g.getPrevious()) && a(…
8181 var E = CKEDITOR.dtd,
8208 m = CKEDITOR.tools.extend({}, E.$inline);
8215 … var I = (new CKEDITOR.dom.elementPath(w.startContainer, w.root)).blockLimit || w.root;
8229 …"text" == z.type && p.shrink(CKEDITOR.SHRINK_ELEMENT, !0, !1) && (n = CKEDITOR.dom.element.createF…
8231 G = new CKEDITOR.dom.elementPath(p.startContainer);
8232 z.endPath = I = new CKEDITOR.dom.elementPath(p.endContainer);
8240 …) && a(r) && r.isBlockBoundary() && G.contains(r);) p.moveToPosition(r, CKEDITOR.POSITION_BEFORE_E…
8260 if (/^\s+|\s+$/.test(N) && "span" in CKEDITOR.dtd[r]) {
8303 …v = !!G.getCommonAncestor(p) && I != CKEDITOR.POSITION_IDENTICAL && !(I & CKEDITOR.POSITION_CONTAI…
8304 CKEDITOR.POSITION_IS_CONTAINED);
8316 …tion(J), Y == CKEDITOR.POSITION_IDENTICAL || Y == CKEDITOR.POSITION_CONTAINS ? u = 0 : (J = u.spli…
8322 …pendBogus(), y.insertNode(T), CKEDITOR.env.needsBrFiller && (B = T.getBogus()) && B.remove(), y.mo…
8344 … = -1; Z < Y; Z++) ba = J[Z], " " == ba ? (ca || W && !Z || (S.push(new CKEDITOR.dom.text(" ")), U…
8353 …lastNotAllowed && w < p.length - 1 && ((K = v ? G : K) && y.setEndAt(K, CKEDITOR.POSITION_AFTER_ST…
8358 … B && (N = !0, u = p[0].node, y.setStartAt(u, CKEDITOR.POSITION_BEFORE_START),
8359 y.setEndAt(u, CKEDITOR.POSITION_AFTER_END));
8368 …for (; D = K.pop();) CKEDITOR.env.needsBrFiller ? D.appendBogus() : D.append(B.document.createText…
8374 CKEDITOR.POSITION_BEFORE_END);
8381 R.moveToPosition(D, CKEDITOR.POSITION_BEFORE_END)
8392 b = new CKEDITOR.dom.walker(b);
8395 if (a.type == CKEDITOR.NODE_ELEMENT) return a.is(CKEDITOR.dtd.$tableContent)
8398 return a.type == CKEDITOR.NODE_ELEMENT
8412 …r (b; 0 < b--;) d = a.getItem(b), CKEDITOR.tools.trim(d.getHtml()) || (d.appendBogus(), CKEDITOR.e…
8423 … f || (f = d.clone(), f.setEndAt(e, CKEDITOR.POSITION_BEFORE_END), f = a(f).lastForward(), g = !0);
8425 f.is("table") ? (d.setStartAt(f, CKEDITOR.POSITION_BEFORE_START),
8430 … = f.getBogus()) && e.remove(), d.moveToPosition(f, g ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.P…
8435 b = new CKEDITOR.dom.walker(b);
8438 …if (a.type == CKEDITOR.NODE_ELEMENT) return a.is(CKEDITOR.dtd.$list) || a.is(CKEDITOR.dtd.$listIte…
8441 return a.type == CKEDITOR.NODE_ELEMENT &&
8442 a.is(CKEDITOR.dtd.$listItem)
8453 … e || (e = b.clone(), e.setEndAt(c, CKEDITOR.POSITION_BEFORE_END), e = a(e).lastForward(), d = !0);
8455CKEDITOR.dtd.$list) ? (b.setStartAt(e, CKEDITOR.POSITION_BEFORE_START), b.collapse(!0), e.remove()…
8464 f = new CKEDITOR.dom.elementPath(c.startContainer, b),
8465 g = new CKEDITOR.dom.elementPath(c.endContainer, b);
8468 …f.block && d.checkBoundaryOfElement(f.block, CKEDITOR.END) && (c.setStartAfter(f.block), a.prepend…
8469 …g.block && e.checkBoundaryOfElement(g.block, CKEDITOR.START) && (c.setEndBefore(g.block), a.append…
8498 e = new CKEDITOR.dom.elementPath(d, b),
8499 f = new CKEDITOR.dom.elementPath(c.startContainer, b),
8500 c = new CKEDITOR.dom.elementPath(c.endContainer, b),
8502 d.type == CKEDITOR.NODE_TEXT && (d = d.getParent());
8511 …} else if (e.block && e.block.is(CKEDITOR.dtd.$listItem) && (f = f.contains(CKEDITOR.dtd.$list), c…
8512 var z = e.contains(CKEDITOR.dtd.$list).getParent();
8534 …b.type == CKEDITOR.NODE_ELEMENT && b.equals(c) && b.is("tr") && ++d == e && a.shrink(CKEDITOR.SHRI…
8541 if (d.is(CKEDITOR.dtd.$inline)) b[c ? "insertBefore" : "insertAfter"](d)
8552 var d = new CKEDITOR.dom.range(a);
8563 g = e.contains(CKEDITOR.dtd.$list),
8564 h = f.contains(CKEDITOR.dtd.$list);
8566 …a.mergeListItems = e.block && f.block && e.block.is(CKEDITOR.dtd.$listItem) && f.block.is(CKEDITOR
8574 f = new CKEDITOR.dom.elementPath(d, c),
8575 g = new CKEDITOR.dom.elementPath(e, c);
8577 var h = f.contains(CKEDITOR.dtd.$list),
8578 k = g.contains(CKEDITOR.dtd.$list);
8581 …a.mergeListItems && (f = f.contains(CKEDITOR.dtd.$listItem), g = g.contains(CKEDITOR.dtd.$listItem…
8591 var c = new CKEDITOR.dom.range(b);
8601 f = new CKEDITOR.dom.elementPath(d, c),
8602 g = new CKEDITOR.dom.elementPath(e, c),
8614 f, g = new CKEDITOR.dom.walker(c),
8619 if (a.type == CKEDITOR.NODE_ELEMENT) {
8622 CKEDITOR.dom.element.setMarker(p, a, A, 1)
8624 … if (g && h && a.equals(h)) f = c.clone(), f.setEndAt(h, CKEDITOR.POSITION_BEFORE_END), e.push(f);
8625 …else if (!g && k && a.equals(k)) f = c.clone(), f.setStartAt(k, CKEDITOR.POSITION_AFTER_START), e.…
8627 … if (A = !g) A = a.type == CKEDITOR.NODE_ELEMENT && a.is(d) && (!h || b(a, h)) && (!k ||
8639 CKEDITOR.dom.element.clearAllMarkers(p);
8644 var d = CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_IS_CONTAINED,
8646 return e === CKEDITOR.POSITION_IDENTICAL ? !1 : 0 === (e & d)
8658 c.enlarge(CKEDITOR.ENLARGE_ELEMENT);
8659 var c = new CKEDITOR.dom.walker(c),
8662 a.type == CKEDITOR.NODE_ELEMENT && a.is(d) && ++e
8668 …c && f && b.checkBoundaryOfElement(c, CKEDITOR.START) && b.checkBoundaryOfElement(f, CKEDITOR.END)…
8675 … p.is(CKEDITOR.dtd.$tableContent) && !p.is(d) && (p = p.getAscendant("table", !0));
8677 p = new CKEDITOR.dom.elementPath(g.startContainer, l);
8678 l = new CKEDITOR.dom.elementPath(g.endContainer, l);
8681CKEDITOR.POSITION_AFTER_END), h.setEndAt(l, CKEDITOR.POSITION_BEFORE_START), h = g.clone(), h.setE…
8682CKEDITOR.POSITION_AFTER_END), g.setEndAt(p, CKEDITOR.POSITION_AFTER_END)) : (e.tableSurroundingRan…
8697 a.range.moveToPosition(b, CKEDITOR.POSITION_AFTER_START)
8703 …return !(a.range.startPath().contains(CKEDITOR.dtd.$listItem) && a.range.endPath().contains(CKEDIT…
8712 …createElement(d), d.appendBogus(), b.insertNode(d), b.moveToPosition(d, CKEDITOR.POSITION_AFTER_ST…
8719 return CKEDITOR.plugins.widget && CKEDITOR.plugins.widget.isDomWidget(a)
8735 e = CKEDITOR.tools.trim;
8780 d.ranges = new CKEDITOR.dom.rangeList(a);
8781 d.type = CKEDITOR.SELECTION_TEXT;
8809 g = d(f, !!CKEDITOR.env.webkit) &&
8818 … if (!b && (b = c || this.getSelection(1), !b || b.getType() == CKEDITOR.SELECTION_NONE)) return;
8821 …usPath && this._.selectionPreviousPath.blockLimit.equals(c.blockLimit), CKEDITOR.env.webkit && !e …
8829 t || (g.call(this), t = CKEDITOR.tools.setTimeout(g, 200, this))
8834 F && (CKEDITOR.tools.setTimeout(h, 0, this), F = !1)
8838 return L(a) || a.type == CKEDITOR.NODE_ELEMENT && !a.is(CKEDITOR.dtd.$empty) ? !0 : !1
8843 …return c && c.type != CKEDITOR.NODE_TEXT ? a.clone()["moveToElementEdit" + (d ? "End" : "Start")](…
8845 if (!(a.root instanceof CKEDITOR.editable)) return !1;
8850 …return b(d) || b(e, 1) || !(d || e || c.type == CKEDITOR.NODE_ELEMENT && c.isBlockBoundary() && c.…
8891 var c = b && CKEDITOR.tools.htmlEncode(b) || "\x26nbsp;",
8892 …c = CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" s…
8893 …(CKEDITOR.env.ie && 14 > CKEDITOR.env.version ? "display:none" : "position:fixed;top:0;left:-1000p…
8901 e.setStartAt(c, CKEDITOR.POSITION_AFTER_START);
8902 e.setEndAt(c, CKEDITOR.POSITION_BEFORE_END);
8921 … d ? "getPreviousEditableNode" : "getNextEditableNode"]()) && d.type == CKEDITOR.NODE_ELEMENT && "…
8933 …e; d && !((e = d.type == CKEDITOR.NODE_ELEMENT) && d.is("body") || !d.isReadOnly());) e && "false"…
8939 …d && d.type == CKEDITOR.NODE_TEXT && (f >= d.getLength() ? h.setStartAfter(d) : h.setStartBefore(d…
8940 e && e.type == CKEDITOR.NODE_TEXT && (g ? h.setEndAfter(e) : h.setEndBefore(e));
8941 d = new CKEDITOR.dom.walker(h);
8943 if (d.type == CKEDITOR.NODE_ELEMENT && d.isReadOnly()) {
8948 …d.getPosition(h.endContainer) & CKEDITOR.POSITION_CONTAINS || (e.setStartAfter(d), e.collapsed || …
8960 u = CKEDITOR.tools.repeat("​", 7),
8962 l, t, F, L = CKEDITOR.dom.walker.invisible(1),
8991 CKEDITOR.on("instanceCreated", function(a) {
9000 r = new CKEDITOR.dom.selection(c.getSelection());
9007 var a = CKEDITOR.document.$.selection,
9015 … return a.type == CKEDITOR.NODE_ELEMENT && a.hasAttribute("contenteditable")
9020 f = CKEDITOR.document,
9026 CKEDITOR.env.gecko && g.attachListener(g, "focus", function(a) {
9030 g.attachListener(g, CKEDITOR.env.webkit ? "DOMFocusIn" : "focus", function() {
9031 n && CKEDITOR.env.webkit && (n = c._.previousActive &&
9039CKEDITOR.env.ie || E) m ? g.attachListener(g, "beforedeactivate", a, null, null, -1) : g.attachLis…
9046 if (CKEDITOR.env.ie && !E) {
9049 …= a.data.$.button && ((a = c.document.getSelection()) && a.getType() != CKEDITOR.SELECTION_NONE ||…
9056 if (CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat) {
9092 … if (7 < CKEDITOR.env.version && 11 > CKEDITOR.env.version) q.on("mousedown", function(a) {
9099 CKEDITOR.env.ie && g.attachListener(g, "keydown", function(a) {
9104 g.attachListener(g, CKEDITOR.env.webkit ? "DOMFocusIn" : "focus", function() {
9108 if (E && (CKEDITOR.env.webkit || CKEDITOR.env.gecko)) {
9117 … } else g.attachListener(CKEDITOR.env.ie ? g : e.getDocumentElement(), "mouseup", k, c);
9118 CKEDITOR.env.webkit && g.attachListener(e, "keydown", function(a) {
9138 CKEDITOR.env.webkit && b()
9143 if (CKEDITOR.env.ie9Compat) c.on("beforeDestroy", b, null, null, 9);
9150 var a = CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),
9153CKEDITOR.env.gecko && (a = c.editable().getFirst(a)) && a.is("br") && a.getAttribute("_moz_editor_…
9170 if (CKEDITOR.env.webkit) CKEDITOR.on("instanceReady", function(a) {
9188 CKEDITOR.editor.prototype.selectionChange = function(a) {
9191 CKEDITOR.editor.prototype.getSelection = function(a) {
9193 …"wysiwyg" == this.mode ? new CKEDITOR.dom.selection(a) : null : this._.savedSelection || this._.fa…
9195 CKEDITOR.editor.prototype.lockSelection = function(a) {
9197 …return a.getType() != CKEDITOR.SELECTION_NONE ? (!a.isLocked && a.lock(), this._.savedSelection = …
9199 CKEDITOR.editor.prototype.unlockSelection = function(a) {
9203 CKEDITOR.editor.prototype.forceNextSelectionCheck = function() {
9206 CKEDITOR.dom.document.prototype.getSelection = function() {
9207 return new CKEDITOR.dom.selection(this)
9209 CKEDITOR.dom.range.prototype.select = function() {
9210 …var a = this.root instanceof CKEDITOR.editable ? this.root.editor.getSelection() : new CKEDITOR.do…
9214 CKEDITOR.SELECTION_NONE = 1;
9215 CKEDITOR.SELECTION_TEXT = 2;
9216 CKEDITOR.SELECTION_ELEMENT = 3;
9217 CKEDITOR.dom.selection = function(a) {
9218 if (a instanceof CKEDITOR.dom.selection) {
9222 var c = a instanceof CKEDITOR.dom.element;
9224 this.document = a instanceof CKEDITOR.dom.document ? a : a.getDocument();
9230 …if (b) return CKEDITOR.tools.extend(this._.cache, b._.cache), this.isFake = b.isFake, this.isLocke…
9234 …if (a.getRangeAt) d = (e = a.rangeCount && a.getRangeAt(0)) && new CKEDITOR.dom.node(e.commonAnces…
9239 d = e && CKEDITOR.dom.element.get(e.item && e.item(0) || e.parentElement())
9241CKEDITOR.NODE_ELEMENT && d.type != CKEDITOR.NODE_TEXT || !this.root.equals(d) && !this.root.contai…
9266 CKEDITOR.tools.extend(CKEDITOR.dom.selection, {
9271 CKEDITOR.dom.selection.prototype = {
9278 var b = CKEDITOR.SELECTION_NONE;
9282 "Text" == d && (b = CKEDITOR.SELECTION_TEXT);
9283 "Control" == d && (b = CKEDITOR.SELECTION_ELEMENT);
9285 (b = CKEDITOR.SELECTION_TEXT)
9291 var b = CKEDITOR.SELECTION_TEXT,
9293 if (!c || !c.rangeCount) b = CKEDITOR.SELECTION_NONE;
9297 …Offset && M[d.childNodes[c.startOffset].nodeName.toLowerCase()] && (b = CKEDITOR.SELECTION_ELEMENT)
9304 return (new CKEDITOR.dom.node(b)).getIndex()
9327 e[e.length - 1], f.nodeType != CKEDITOR.NODE_TEXT ? {
9334 …for (d = e.length; 0 < h && 0 < d;) g = e[--d], g.nodeType == CKEDITOR.NODE_TEXT && (n = g, h -= g…
9348 …g = f[0 < m ? "previousSibling" : "nextSibling"], g.nodeType == CKEDITOR.NODE_TEXT && (h -= g.node…
9366CKEDITOR.SELECTION_TEXT) return a = new CKEDITOR.dom.range(this.root), d = b(c, !0), a.setStart(ne…
9368 if (d == CKEDITOR.SELECTION_ELEMENT) {
9370 …for (var f = c.item(e), g = f.parentNode, h = 0, a = new CKEDITOR.dom.range(this.root); h < g.chil…
9371 a.setStart(new CKEDITOR.dom.node(g), h);
9372 a.setEnd(new CKEDITOR.dom.node(g), h + 1);
9385 b = new CKEDITOR.dom.range(this.root);
9386 b.setStart(new CKEDITOR.dom.node(e.startContainer),
9388 b.setEnd(new CKEDITOR.dom.node(e.endContainer), e.endOffset);
9396 d || (c.ranges = d = new CKEDITOR.dom.rangeList(a.call(this)));
9397 return b ? x(new CKEDITOR.dom.rangeList(d.slice())) : d
9405 case CKEDITOR.SELECTION_ELEMENT:
9407 case CKEDITOR.SELECTION_TEXT:
9410 … if (c.collapsed) b = c.startContainer, b.type != CKEDITOR.NODE_ELEMENT && (b = b.getParent());
9414 if (b.type != CKEDITOR.NODE_ELEMENT) return b.getParent();
9415 … if ((b = b.getChild(c.startOffset)) && b.type == CKEDITOR.NODE_ELEMENT)
9416 … for (c = b.getFirst(); c && c.type == CKEDITOR.NODE_ELEMENT;) b = c, c = c.getFirst();
9423 new CKEDITOR.dom.element(b) : null
9429 c = CKEDITOR.tools.tryThese(function() {
9432 …(c = a.getEnclosedNode()) && c.type == CKEDITOR.NODE_ELEMENT && M[c.getName()] && (d = c)); e--) a…
9435 return a.selectedElement = c ? new CKEDITOR.dom.element(c) : null
9480 } else CKEDITOR.warn("selection-fake-reset");
9485 new CKEDITOR.dom.range(this.root);
9498 var k = CKEDITOR.document.getActive();
9508 …&& p.type == CKEDITOR.NODE_ELEMENT && (w = w.clone(), w.shrink(CKEDITOR.SHRINK_ELEMENT, !0), (n = …
9511 …else if (b && b.plugins.tableselection && CKEDITOR.plugins.tableselection.isSupportedEnvironment &…
9514 n = CKEDITOR.dom.walker.whitespaces(!0);
9526 …if ((c = b.getEnclosedNode()) && c.type == CKEDITOR.NODE_ELEMENT && c.getName() in M && (!c.is("a"…
9532CKEDITOR.NODE_ELEMENT && b.startContainer.getName() in w || b.endContainer.type == CKEDITOR.NODE_E…
9542 …ct(), b.document.$.selection.clear()) : I.select(), b.moveToPosition(G, CKEDITOR.POSITION_BEFORE_S…
9548 …), p.setEnd(G.startContainer, G.startOffset), !p.collapsed && (p.shrink(CKEDITOR.NODE_ELEMENT, !0)…
9556CKEDITOR.env.webkit && r(b) && (p = e(this.root), b.insertNode(p), (A = p.getNext()) && !p.getPrev…
9579 e = new CKEDITOR.dom.range(this.root);
9582 d.ranges = new CKEDITOR.dom.rangeList(e);
9584 d.type = CKEDITOR.SELECTION_ELEMENT;
9593 a && a.type == CKEDITOR.NODE_TEXT && (a = a.getParent());
9616 var f = new CKEDITOR.dom.range(this.root);
9620 …getTableElement() : b[0].getEnclosedNode(), c && c.type == CKEDITOR.NODE_ELEMENT || (CKEDITOR.warn…
9630 this.type != CKEDITOR.SELECTION_NONE && this.getRanges()[0].scrollIntoView()
9633 if (this.getType() != CKEDITOR.SELECTION_NONE) {
9644 CKEDITOR.STYLE_BLOCK = 1;
9645 CKEDITOR.STYLE_INLINE = 2;
9646 CKEDITOR.STYLE_OBJECT = 3;
9665 …if (c.collapsed) e = J(this, e), c.insertNode(e), c.moveToPosition(e, CKEDITOR.POSITION_BEFORE_END…
9673 var n = CKEDITOR.dtd[g];
9674 n || (k = !0, n = CKEDITOR.dtd.span);
9675 c.enlarge(CKEDITOR.ENLARGE_INLINE, 1);
9689 for (q.getPosition(t) == CKEDITOR.POSITION_FOLLOWING && (q = 0); q;) {
9693 var y = q.type == CKEDITOR.NODE_ELEMENT ? q.getName() : null,
9701 if (x && m && CKEDITOR.dtd.$block[y])
9702 …for (var C = q, E = f(C), F = void 0, H = E.length, K = 0, C = H && new CKEDITOR.dom.range(C.getDo…
9704 L = CKEDITOR.filter.instances[F.data("cke-filter")];
9709 …if (F = q.getParent(), E = h, H = g, K = k, !F || !(F.getDtd() || CKEDITOR.dtd.span)[H] && !K || E…
9712CKEDITOR.dtd.$removeEmpty[y] && (q.getPosition(t) | P) != P || (u = c.clone(), u.setStartBefore(q)…
9733 …sertNode(l), D.call(this, l), l.mergeSiblings(), CKEDITOR.env.ie || l.$.normalize()) : (l = new CK…
9738 c.shrink(CKEDITOR.SHRINK_TEXT);
9739 c.shrink(CKEDITOR.NODE_ELEMENT, !0)
9745 …for (var a = new CKEDITOR.dom.elementPath(d.getParent()), c = new CKEDITOR.dom.elementPath(n.getPa…
9758 a.enlarge(CKEDITOR.ENLARGE_INLINE, 1);
9764 …for (var f = new CKEDITOR.dom.elementPath(d.getParent(), a.root), g, h = 0, k; h < f.elements.leng…
9767 …&& a.collapsed && (a.checkBoundaryOfElement(k, CKEDITOR.END) || (m = a.checkBoundaryOfElement(k, C…
9785CKEDITOR.NODE_ELEMENT && this.checkElementRemovable(f) && (f.getName() == this.element ? B.call(th…
9788 a.shrink(CKEDITOR.NODE_ELEMENT, !0)
9795 }, CKEDITOR.NODE_ELEMENT, !0);
9801 …(a = (new CKEDITOR.dom.elementPath(b, a.root)).contains(this.element, 1)) && !a.isReadOnly() && u(…
9806 if (a = (new CKEDITOR.dom.elementPath(b, a.root)).contains(this.element, 1)) {
9821 this._.enterMode && (c.enlargeBr = this._.enterMode != CKEDITOR.ENTER_BR);
9830 c.enlargeBr = this._.enterMode != CKEDITOR.ENTER_BR;
9832 …("pre") ? ((e = this._.enterMode == CKEDITOR.ENTER_BR ? null : a.document.createElement(this._.ent…
9851 if (CKEDITOR.env.ie) {
9864 …(H)) && k.type == CKEDITOR.NODE_ELEMENT && k.is("pre") && (d = y(k.getHtml(), /\n$/, "") + "\n\n" …
9892 1 < a.length && (c = new CKEDITOR.dom.documentFragment(b.getDocument()));
9899 …return 1 == a.length ? "\x26nbsp;" : b ? " " + CKEDITOR.tools.repeat("\x26nbsp;", a.length - 1) :
9903 return CKEDITOR.tools.repeat("\x26nbsp;", a.length - 1) + " "
9919 f = CKEDITOR.tools.isEmpty(d) && CKEDITOR.tools.isEmpty(c),
9926 …: !CKEDITOR.dtd.$block[a.getName()] || this._.enterMode == CKEDITOR.ENTER_BR && !a.hasAttributes()…
9951 if (CKEDITOR.dtd.$block[a.getName()]) {
9954 !c || c.type != CKEDITOR.NODE_TEXT && c.isBlockBoundary({
9957 !d || d.type != CKEDITOR.NODE_TEXT && d.isBlockBoundary({
9961 …} else c = a.getFirst(), d = a.getLast(), a.remove(!0), c && (c.type == CKEDITOR.NODE_ELEMENT && c…
9962 d && !c.equals(d) && d.type == CKEDITOR.NODE_ELEMENT && d.mergeSiblings())
9969 d = new CKEDITOR.dom.element(d, b);
9979 c = CKEDITOR.style.getStyleText(c);
9998 CKEDITOR.tools.isArray(c) || (c = [c]);
10016 var d = new CKEDITOR.dom.element("span");
10025 "string" == typeof a && (a = CKEDITOR.tools.parseCssText(a));
10026 "string" == typeof b && (b = CKEDITOR.tools.parseCssText(b, !0));
10095 z = CKEDITOR.dom.walker.bookmark(0, 1),
10096 H = CKEDITOR.dom.walker.whitespaces(1);
10097 CKEDITOR.style = function(a, b) {
10098 if ("string" == typeof a.type) return new CKEDITOR.style.customHandlers[a.type](a);
10100 …c && c.style && (a.styles = CKEDITOR.tools.extend({}, a.styles, CKEDITOR.tools.parseCssText(c.styl…
10101 b && (a = CKEDITOR.tools.clone(a), K(a.attributes, b), K(a.styles, b));
10104 …this.type = a.type || (C[c] ? CKEDITOR.STYLE_BLOCK : M[c] ? CKEDITOR.STYLE_OBJECT : CKEDITOR.STYLE…
10105 "object" == typeof this.element && (this.type = CKEDITOR.STYLE_OBJECT);
10110 CKEDITOR.style.prototype = {
10112 if (a instanceof CKEDITOR.dom.document) return L.call(this, a.getSelection());
10121 if (a instanceof CKEDITOR.dom.document) return L.call(this, a.getSelection(), 1);
10130 …his.applyToRange = this.type == CKEDITOR.STYLE_INLINE ? b : this.type == CKEDITOR.STYLE_BLOCK ? g …
10134 …this.removeFromRange = this.type == CKEDITOR.STYLE_INLINE ? c : this.type == CKEDITOR.STYLE_BLOCK ?
10135 n : this.type == CKEDITOR.STYLE_OBJECT ? k : null;
10143 case CKEDITOR.STYLE_BLOCK:
10145 case CKEDITOR.STYLE_OBJECT:
10146 case CKEDITOR.STYLE_INLINE:
10148 … if (e = c[d], this.type != CKEDITOR.STYLE_INLINE || e != a.block && e != a.blockLimit) {
10149 if (this.type == CKEDITOR.STYLE_OBJECT) {
10160 b && b instanceof CKEDITOR.filter && (c = b);
10163 case CKEDITOR.STYLE_OBJECT:
10165 case CKEDITOR.STYLE_BLOCK:
10184 if (g = CKEDITOR.style.getStyleText(c)) d.style || e++, d.style = g;
10224 (e = CKEDITOR.style.getStyleText(b)) && c.push(' style\x3d"', e, '"');
10232 CKEDITOR.style.getStyleText = function(a) {
10244 c.length && (c = CKEDITOR.tools.normalizeCssText(c, !0));
10247 CKEDITOR.style.customHandlers = {};
10248 CKEDITOR.style.addCustomHandler = function(a) {
10255 … b.prototype = CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype), {
10256 assignedTo: CKEDITOR.STYLE_OBJECT
10260 …var P = CKEDITOR.POSITION_PRECEDING | CKEDITOR.POSITION_IDENTICAL | CKEDITOR.POSITION_IS_CONTAINED,
10261 … O = CKEDITOR.POSITION_FOLLOWING | CKEDITOR.POSITION_IDENTICAL | CKEDITOR.POSITION_IS_CONTAINED
10263 CKEDITOR.styleCommand = function(a, d) {
10265 CKEDITOR.tools.extend(this, d, !0)
10267 CKEDITOR.styleCommand.prototype.exec = function(a) {
10269 …this.state == CKEDITOR.TRISTATE_OFF ? a.applyStyle(this.style) : this.state == CKEDITOR.TRISTATE_O…
10271 CKEDITOR.stylesSet = new CKEDITOR.resourceManager("", "stylesSet");
10272 CKEDITOR.addStylesSet = CKEDITOR.tools.bind(CKEDITOR.stylesSet.add, CKEDITOR.stylesSet);
10273 CKEDITOR.loadStylesSet = function(a, d, b) {
10274 CKEDITOR.stylesSet.addExternal(a, d, "");
10275 CKEDITOR.stylesSet.load(a, b)
10277 CKEDITOR.tools.extend(CKEDITOR.editor.prototype, {
10283 … k = h.style.checkActive(a.data.path, this) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF;
10309CKEDITOR.stylesSet.addExternal(c, b[1] ? b.slice(1).join(":") : CKEDITOR.getUrl("styles.js"), "");
10310 CKEDITOR.stylesSet.load(c, function(b) {
10318 CKEDITOR.dom.comment = function(a, d) {
10320 CKEDITOR.dom.domObject.call(this, a)
10322 CKEDITOR.dom.comment.prototype = new CKEDITOR.dom.node;
10323 CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype, {
10324 type: CKEDITOR.NODE_COMMENT,
10334 for (b in CKEDITOR.dtd.$blockLimit) b in CKEDITOR.dtd.$list || (a[b] = 1);
10335 …for (b in CKEDITOR.dtd.$block) b in CKEDITOR.dtd.$blockLimit || b in CKEDITOR.dtd.$empty || (d[b] …
10336 CKEDITOR.dom.elementPath = function(b, f) {
10345 if (n.type == CKEDITOR.NODE_ELEMENT) {
10347 …if (!this.lastElement && (this.lastElement = n, n.is(CKEDITOR.dtd.$object) || "false" == n.getAttr…
10356 … if (v.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$block[v.getName()]) {
10375 CKEDITOR.dom.elementPath.prototype = {
10390 a instanceof CKEDITOR.dom.element ? f = function(b) {
10392 } : CKEDITOR.tools.isArray(a) ? f = function(b) {
10393 return -1 < CKEDITOR.tools.indexOf(a, b.getName())
10408 …return a in CKEDITOR.dtd.$block ? (d = this.contains(CKEDITOR.dtd.$intermediate) || this.root.equa…
10414 CKEDITOR.dom.text = function(a, d) {
10418 CKEDITOR.dom.text.prototype = new CKEDITOR.dom.node;
10419 CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype, {
10420 type: CKEDITOR.NODE_TEXT,
10435 h = new CKEDITOR.dom.text(this.$.splitText(a), f);
10457 CKEDITOR.dom.rangeList = function(a) {
10458 if (a instanceof CKEDITOR.dom.rangeList) return a;
10459 a ? a instanceof CKEDITOR.dom.range && (a = [a]) : a = [];
10460 return CKEDITOR.tools.extend(a, d)
10465 c = CKEDITOR.dom.walker.bookmark(),
10484 … else if (c(n) || n.type == CKEDITOR.NODE_ELEMENT && n.isBlockBoundary()) continue;
10515 …return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1] || "skins/" + CKEDITOR.skinName.split(",")[…
10519 var c = CKEDITOR.skin["ua_" + b],
10520 d = CKEDITOR.env;
10528 } return CKEDITOR.getUrl(a() + b + ".css")
10532 h[a] || (CKEDITOR.document.appendStyleSheet(d(a)), h[a] = 1);
10545 if (CKEDITOR.env.webkit)
10548 if (CKEDITOR.env.webkit)
10556 CKEDITOR.env.ie && 11 > CKEDITOR.env.version ?
10561 CKEDITOR.skin = {
10564CKEDITOR.skin.name != CKEDITOR.skinName.split(",")[0] ? CKEDITOR.scriptLoader.load(CKEDITOR.getUrl…
10569 return CKEDITOR.getUrl(d(a))
10588 …return a && "background-image:url('" + CKEDITOR.getUrl(a) + "');background-position:0 " + d + "px;…
10591 CKEDITOR.tools.extend(CKEDITOR.editor.prototype, {
10596 var b = c(CKEDITOR.document);
10599 var c = CKEDITOR.skin.chameleon,
10615 CKEDITOR.on("instanceLoaded", function(a) {
10616 if (!CKEDITOR.env.ie || !CKEDITOR.env.quirks) {
10624 d && f([a], CKEDITOR.skin.chameleon(b, "panel"), [
10636 if (CKEDITOR.env.webkit) CKEDITOR.env.hc = !1;
10638CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"width:0;height:0;position:absolute;left:-10…
10639 a.appendTo(CKEDITOR.document.getHead());
10643 CKEDITOR.env.hc = !(!d || d != b)
10645 CKEDITOR.env.hc = !1
10649 CKEDITOR.env.hc && (CKEDITOR.env.cssClass += " cke_hc");
10650 CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");
10651 CKEDITOR.status = "loaded";
10652 CKEDITOR.fireOnce("loaded");
10653 if (a = CKEDITOR._.pending)
10654 …for (delete CKEDITOR._.pending, d = 0; d < a.length; d++) CKEDITOR.editor.prototype.constructor.ap…
10660 CKEDITOR.skin.name = "moono-lisa";
10661 CKEDITOR.skin.ua_editor = "ie,iequirks,ie8,gecko";
10662 CKEDITOR.skin.ua_dialog = "ie,iequirks,ie8";
10663 CKEDITOR.skin.chameleon = function() {
10677 …editor: new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ bac…
10678 …panel: new CKEDITOR.template(".cke_panel_grouptitle [background-color:{lightBackground};border-col…
10704 CKEDITOR.plugins.add("dialogui", {
10712 CKEDITOR.tools.extend.apply(CKEDITOR.tools, a);
10717 return new CKEDITOR.ui.dialog.textInput(b, a, d)
10722 return new CKEDITOR.ui.dialog[a.type](b, a, d)
10743 … r = CKEDITOR.tools.extend({}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors, {
10763 …b == CKEDITOR.SHIFT + CKEDITOR.ALT + 36 ? this.setDirectionMarker("ltr") : b == CKEDITOR.SHIFT + C…
10765 CKEDITOR.tools.extend(CKEDITOR.ui.dialog, {
10769 c.labelId = CKEDITOR.tools.getNextId() +
10776CKEDITOR.ui.dialog.uiElement.call(this, b, a, d, "div", null, e, function() {
10786 …' + (a.labelStyle ? ' style\x3d"' + a.labelStyle + '"' : "") + "\x3e" + CKEDITOR.tools.htmlEncode(…
10792 }, CKEDITOR.dialog._.uiElementBuilders.hbox.build(b, g, e));
10800 var f = this._.inputId = CKEDITOR.tools.getNextId() + "_textInput",
10824 CKEDITOR.ui.dialog.labeledElement.call(this, b, a, d, function() {
10841 c = this._.inputId = CKEDITOR.tools.getNextId() + "_textarea",
10853 CKEDITOR.ui.dialog.labeledElement.call(this, b, a, d, function() {
10858 … for (b in e) a.push(b + '\x3d"' + CKEDITOR.tools.htmlEncode(e[b]) + '" ');
10859 … a.push("\x3e", CKEDITOR.tools.htmlEncode(f._["default"]), "\x3c/textarea\x3e\x3c/div\x3e");
10871CKEDITOR.ui.dialog.uiElement.call(this, b, a, d, "span", null, null, function() {
10872 var c = CKEDITOR.tools.extend({}, a, {
10873 … id: a.id ? a.id + "_checkbox" : CKEDITOR.tools.getNextId() + "_checkbox"
10876 d = CKEDITOR.tools.getNextId() + "_label",
10885 … f.checkbox = new CKEDITOR.ui.dialog.uiElement(b, c, e, "input", null, g);
10886 …"' + (a.labelStyle ? ' style\x3d"' + a.labelStyle + '"' : "") + "\x3e", CKEDITOR.tools.htmlEncode(…
10900 CKEDITOR.ui.dialog.labeledElement.call(this,
10903 …for (var e = [], d = [], g = (a.id ? a.id : CKEDITOR.tools.getNextId()) + "_radio", k = 0; k < a.i…
10907 p = CKEDITOR.tools.getNextId() + "_radio_input",
10909 p = CKEDITOR.tools.extend({}, a, {
10914 h = CKEDITOR.tools.extend({}, p, {
10931 … f.push(new CKEDITOR.ui.dialog.uiElement(b, p, u, "input", null, r));
10933 new CKEDITOR.ui.dialog.uiElement(b, h, u, "label", null, {
10939 new CKEDITOR.ui.dialog.hbox(b, f, e, d);
10951 CKEDITOR.event.implementOn(this);
10968 var c = CKEDITOR.tools.extend({}, a);
10970 var e = CKEDITOR.tools.getNextId() + "_label";
10971 CKEDITOR.ui.dialog.uiElement.call(this, b, c, d, "a", null, {
10980 CKEDITOR.tools.htmlEncode(a.label) + "\x3c/span\x3e")
10987 f.inputId = CKEDITOR.tools.getNextId() + "_select";
10988 CKEDITOR.ui.dialog.labeledElement.call(this, b, a, d, function() {
10989 var c = CKEDITOR.tools.extend({}, a, {
10990 … id: a.id ? a.id + "_select" : CKEDITOR.tools.getNextId() + "_select"
11006 …\x3coption value\x3d"', CKEDITOR.tools.htmlEncode(void 0 !== l[1] ? l[1] : l[0]).replace(/"/g, "\x…
11008 f.select = new CKEDITOR.ui.dialog.uiElement(b, c, e, "select", null,
11018 var f = CKEDITOR.tools.extend(h.call(this, a), {
11024CKEDITOR.document.getById(f.frameId).getParent().addClass("cke_dialog_ui_input_file")
11026 CKEDITOR.ui.dialog.labeledElement.call(this, b, a, d, function() {
11027 f.frameId = CKEDITOR.tools.getNextId() + "_fileInput";
11031 …b.push(CKEDITOR.env.ie ? "(function(){" + encodeURIComponent("document.open();(" + CKEDITOR.tools.…
11042 var c = CKEDITOR.tools.extend({}, a),
11054 CKEDITOR.ui.dialog.button.call(this, b, c, d)
11076CKEDITOR.ui.dialog.uiElement.call(this, f, c, m, "span", null, null, "");
11089CKEDITOR.ui.dialog.uiElement.call(this, b, c, f, "fieldset", null, null, function() {
11097 CKEDITOR.ui.dialog.html.prototype = new CKEDITOR.ui.dialog.uiElement;
11098CKEDITOR.ui.dialog.labeledElement.prototype = CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiEleme…
11100 var a = CKEDITOR.document.getById(this._.labelId);
11101 …1 > a.getChildCount() ? (new CKEDITOR.dom.text(b, CKEDITOR.document)).appendTo(a) : a.getChild(0).…
11106 var b = CKEDITOR.document.getById(this._.labelId);
11111CKEDITOR.ui.dialog.button.prototype = CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement, {
11132 …eventProcessors: CKEDITOR.tools.extend({}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,…
11147CKEDITOR.ui.dialog.textInput.prototype = CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledEleme…
11149 return CKEDITOR.document.getById(this._.inputId)
11175 return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply(this, arguments)
11178 var b = CKEDITOR.ui.dialog.uiElement.prototype.getValue.call(this);
11197 CKEDITOR.ui.dialog.textarea.prototype =
11198 new CKEDITOR.ui.dialog.textInput;
11199CKEDITOR.ui.dialog.select.prototype = CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,…
11204 … var f = new CKEDITOR.dom.element("option", this.getDialog().getParentEditor().document),
11208 … void 0 === d || null === d ? CKEDITOR.env.ie ? c.add(f.$) : c.add(f.$, null) : c.add(f.$, d);
11221CKEDITOR.ui.dialog.checkbox.prototype = CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement, {
11240 … if (!CKEDITOR.env.ie || 8 < CKEDITOR.env.version) return r.onChange.apply(this, arguments);
11256CKEDITOR.ui.dialog.radio.prototype = CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement, {
11280 … if (!CKEDITOR.env.ie || 8 < CKEDITOR.env.version) return r.onChange.apply(this, arguments);
11295CKEDITOR.ui.dialog.file.prototype = CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement, q…
11297 var b = CKEDITOR.document.getById(this._.frameId).getFrameDocument();
11298 … return 0 < b.$.forms.length ? new CKEDITOR.dom.element(b.$.forms[0].elements[0]) :
11324 f.size && (b = f.size - (CKEDITOR.env.ie ? 7 : 0));
11326 …on\x3d"', CKEDITOR.tools.htmlEncode(f.action), '"\x3e\x3clabel id\x3d"', a.labelId, '" for\x3d"', …
11327CKEDITOR.tools.htmlEncode(f.id || "cke_upload"), '" size\x3d"', CKEDITOR.tools.htmlEncode(0 < b ? …
11333 d = CKEDITOR.document.getById(a.frameId).getFrameDocument(),
11340 e || (e = this.formLoadedNumber = CKEDITOR.tools.addFunction(function() {
11342 }, this), m = this.formUnloadNumber = CKEDITOR.tools.addFunction(function() {
11345 CKEDITOR.tools.removeFunction(e);
11346 CKEDITOR.tools.removeFunction(m)
11348 CKEDITOR.env.gecko ? setTimeout(b, 500) : b()
11370 CKEDITOR.ui.dialog.fileButton.prototype =
11371 new CKEDITOR.ui.dialog.button;
11372CKEDITOR.ui.dialog.fieldset.prototype = CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);
11373 CKEDITOR.dialog.addUIElement("text", v);
11374 CKEDITOR.dialog.addUIElement("password", v);
11375 CKEDITOR.dialog.addUIElement("textarea", n);
11376 CKEDITOR.dialog.addUIElement("checkbox", n);
11377 CKEDITOR.dialog.addUIElement("radio", n);
11378 CKEDITOR.dialog.addUIElement("button", n);
11379 CKEDITOR.dialog.addUIElement("select", n);
11380 CKEDITOR.dialog.addUIElement("file", n);
11381 CKEDITOR.dialog.addUIElement("fileButton", n);
11382 CKEDITOR.dialog.addUIElement("html",
11384 CKEDITOR.dialog.addUIElement("fieldset", {
11389 h.push(CKEDITOR.dialog._.uiElementBuilders[c.type].build(b, c, k))
11391 return new CKEDITOR.ui.dialog[a.type](b, h, e, d, a)
11396 CKEDITOR.DIALOG_RESIZE_NONE = 0;
11397 CKEDITOR.DIALOG_RESIZE_WIDTH = 1;
11398 CKEDITOR.DIALOG_RESIZE_HEIGHT = 2;
11399 CKEDITOR.DIALOG_RESIZE_BOTH = 3;
11400 CKEDITOR.DIALOG_STATE_IDLE = 1;
11401 CKEDITOR.DIALOG_STATE_BUSY = 2;
11404 …for (var a = this._.tabIdList.length, b = CKEDITOR.tools.indexOf(this._.tabIdList, this._.currentT…
11410 …for (var a = this._.tabIdList.length, b = CKEDITOR.tools.indexOf(this._.tabIdList, this._.currentT…
11418 var f = new CKEDITOR.dom.element(c[e]);
11440 var b = CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog", W).output({
11441 id: CKEDITOR.tools.getNextNumber(),
11447 hidpi: CKEDITOR.env.hidpi ? "cke_hidpi" : ""
11452 a.plugins.clipboard && CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(c);
11453CKEDITOR.env.ie || CKEDITOR.env.quirks || CKEDITOR.env.edge || (a = "javascript:void(function(){" …
11498 var c = CKEDITOR.document.getWindow();
11509 CKEDITOR.tools.extend(this, b)
11515 k = CKEDITOR.document.getWindow().getViewPaneSize(),
11531 CKEDITOR.document.removeListener("mousemove", b);
11532 CKEDITOR.document.removeListener("mouseup", c);
11533 if (CKEDITOR.env.ie6Compat) {
11543 h = CKEDITOR.skin.margins || [0, 0, 0, 0];
11550 CKEDITOR.document.on("mousemove", b);
11551 CKEDITOR.document.on("mouseup",
11554 if (CKEDITOR.env.ie6Compat) {
11575 if (d == CKEDITOR.DIALOG_RESIZE_WIDTH ||
11576 d == CKEDITOR.DIALOG_RESIZE_BOTH) n = Math.max(e.minWidth || 0, G - g);
11577 …if (d == CKEDITOR.DIALOG_RESIZE_HEIGHT || d == CKEDITOR.DIALOG_RESIZE_BOTH) q = Math.max(e.minHeig…
11584 CKEDITOR.document.removeListener("mouseup", c);
11585 CKEDITOR.document.removeListener("mousemove", b);
11587 if (CKEDITOR.env.ie6Compat) {
11595 if (d != CKEDITOR.DIALOG_RESIZE_NONE) {
11597 g, h, p, m, k, q, n = CKEDITOR.tools.addFunction(function(d) {
11600 …e.$.getElementsByTagName("iframe").length && (q = CKEDITOR.dom.element.createFromHtml('\x3cdiv cla…
11601 …h = k.height - a.parts.contents.getSize("height", !(CKEDITOR.env.gecko || CKEDITOR.env.ie && CKEDI…
11608 p = CKEDITOR.document.getWindow().getViewPaneSize();
11609 CKEDITOR.document.on("mousemove", b);
11610 CKEDITOR.document.on("mouseup", c);
11611CKEDITOR.env.ie6Compat && (e = u.getChild(0).getFrameDocument(), e.on("mousemove", b), e.on("mouse…
11616 …d == CKEDITOR.DIALOG_RESIZE_WIDTH ? b = " cke_resizer_horizontal" : d == CKEDITOR.DIALOG_RESIZE_HE…
11617 b = CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer' +
11618 …zer_" + f.lang.dir + '" title\x3d"' + CKEDITOR.tools.htmlEncode(f.lang.common.resize) + '" onmouse…
11622 CKEDITOR.tools.removeFunction(n)
11632 var b = CKEDITOR.document.getWindow(),
11634 e = CKEDITOR.skinName || a.config.skin,
11638 c = CKEDITOR.tools.genKey(d, e, f),
11640CKEDITOR.env.ie6Compat ? "absolute" : "fixed", "; z-index: ", f, "; top: 0px; left: 0px; ", CKEDIT…
11641CKEDITOR.tools.fixDomain + ")();document.write( '" + d + "' );document.close();") + "})())"), f.pu…
11654 c = CKEDITOR.dialog._.currentTop;
11666 CKEDITOR.env.mac && CKEDITOR.env.webkit || g.focus();
11667 if (CKEDITOR.env.ie6Compat) {
11682 …u && (a.focusManager.remove(u), a = CKEDITOR.document.getWindow(), u.hide(), a.removeListener("res…
11686 var v = CKEDITOR.tools.cssLength,
11688CKEDITOR.env.cssClass + ' cke_{langDir}" style\x3d"position:absolute" role\x3d"presentation"\x3e\x…
11689 CKEDITOR.dialog = function(a, b) {
11726 if (l == CKEDITOR.dialog._.currentTop) {
11731 … if (9 == c || c == CKEDITOR.SHIFT + 9) e(c == CKEDITOR.SHIFT + 9 ? -1 : 1), q = 1;
11732 …else if (c == CKEDITOR.ALT + 121 && !l._.tabBarMode && 1 < l.getPageCount()) l._.tabBarMode = !0, …
11733 else if (-1 != CKEDITOR.tools.indexOf(g,
11734 …c) && l._.tabBarMode) c = -1 != CKEDITOR.tools.indexOf([d ? 39 : 37, 38], c) ? x.call(l) : A.call(…
11736 …c.is("input") && "button" == c.$.type || ((c = this.getButton("ok")) && CKEDITOR.tools.setTimeout(…
11737 …else if (27 == c)(c = this.getButton("cancel")) ? CKEDITOR.tools.setTimeout(c.click, 0, c) : !1 !=…
11750 var g = CKEDITOR.dialog._.dialogDefinitions[b],
11751 h = CKEDITOR.tools.clone(aa),
11756 …("OS" == p && CKEDITOR.env.mac || "rtl" == p && "ltr" == m || "ltr" == p && "rtl" == m) && h.butto…
11757 g = CKEDITOR.tools.extend(g(a), h);
11758 g = CKEDITOR.tools.clone(g);
11788 CKEDITOR.tools.setTimeout(function() {
11792 position: CKEDITOR.env.ie6Compat ? "absolute" : "fixed",
11798 CKEDITOR.event.call(this);
11799 this.definition = g = CKEDITOR.fire("dialogDefinition", {
11824 this.state = CKEDITOR.DIALOG_STATE_IDLE;
11865 if (CKEDITOR.env.gecko) y.on("keypress", f, this)
11870 CKEDITOR.env.gecko && y.removeListener("keypress", f);
11876 …(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown", d, this, null, 0)
11884 if (CKEDITOR.env.ie6Compat) this.on("load", function() {
11892 (new CKEDITOR.dom.text(g.title, CKEDITOR.document)).appendTo(this.parts.title);
11900 k = CKEDITOR.dialog._.uiElementBuilders.hbox.build(this, {
11909 CKEDITOR.dialog.prototype = {
11917 a && this._.contentSize.height == b || (CKEDITOR.dialog.fire("resize", {
11927 …l" == this._.editor.lang.dir && this._.position && (this._.position.x = CKEDITOR.document.getWindo…
11944 CKEDITOR.env.ie && e.setStyle("zoom", "100%");
11948 …}, f || (f = CKEDITOR.document.getWindow().getScrollPosition(), a += f.x, b += f.y), d && (f = thi…
11954 return CKEDITOR.tools.extend({}, this._.position)
11959 …etParent() && a.getParent().equals(CKEDITOR.document.getBody()) ? a.setStyle("display", "block") :…
11964 …null === CKEDITOR.dialog._.currentZIndex && (CKEDITOR.dialog._.currentZIndex = this._.editor.confi…
11965 … this._.element.getFirst().setStyle("z-index", CKEDITOR.dialog._.currentZIndex += 10);
11966 …= CKEDITOR.dialog._.currentTop ? (CKEDITOR.dialog._.currentTop = this, this._.parentDialog = null,…
11967 2), CKEDITOR.dialog._.currentTop = this);
11984 } CKEDITOR.tools.setTimeout(function() {
11989 CKEDITOR.ui.fire("ready", this);
12001 c = CKEDITOR.document.getWindow().getViewPaneSize(),
12005CKEDITOR.env.ie6Compat || (b.height + (0 < d ? d : 0) > c.height || b.width + (0 < e ? e : 0) > c.…
12031CKEDITOR.env.ie && this._.currentFocusIndex == b.focusIndex && b.getInputElement().$.blur();
12044 … for (ba(this); CKEDITOR.dialog._.currentTop != this;) CKEDITOR.dialog._.currentTop.hide();
12049 … if (CKEDITOR.dialog._.currentTop = this._.parentDialog) CKEDITOR.dialog._.currentZIndex -= 10;
12051 CKEDITOR.dialog._.currentZIndex = null;
12058 CKEDITOR.env.iOS && c.window.focus()
12065 this.setState(CKEDITOR.DIALOG_STATE_IDLE)
12070 …for (var b = [], c = a.label ? ' title\x3d"' + CKEDITOR.tools.htmlEncode(a.label) + '"' : "", e =
12079 b = CKEDITOR.dom.element.createFromHtml(b.join(""));
12081 e = CKEDITOR.env;
12082 d = "cke_" + a.id + "_" + CKEDITOR.tools.getNextNumber();
12083 c = CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"',
12113 CKEDITOR.env.ie6Compat ||
12114 CKEDITOR.env.ie7Compat ? (K(d[1]), d[1].show(), setTimeout(function() {
12118 this._.currentTabIndex = CKEDITOR.tools.indexOf(this._.tabIdList, a)
12179 if (a == CKEDITOR.DIALOG_STATE_BUSY) {
12191 this.parts.spinner = CKEDITOR.document.createElement("div", c);
12198CKEDITOR.DIALOG_STATE_IDLE && (this.parts.spinner && this.parts.spinner.hide(), this.getButton("ok…
12203 CKEDITOR.tools.extend(CKEDITOR.dialog, {
12211 return CKEDITOR.dialog._.currentTop
12221 return CKEDITOR.tools.extend({
12236 return CKEDITOR.tools.extend(function(c) {
12247 return CKEDITOR.tools.extend({
12262 return CKEDITOR.tools.extend(function(c) {
12274 CKEDITOR.dialog._ = {
12280 CKEDITOR.event.implementOn(CKEDITOR.dialog);
12281 CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);
12283 resizable: CKEDITOR.DIALOG_RESIZE_BOTH,
12286 buttons: [CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton]
12315 CKEDITOR.tools.extend(this, b)
12386 CKEDITOR.ui.dialog = {
12394 n = this.domId = k.id || CKEDITOR.tools.getNextId() + "_uiElement";
12414 for (n in k) p.push(n + '\x3d"' + CKEDITOR.tools.htmlEncode(k[n]) + '" ');
12422 …"function" == typeof b.setValue && (this.setValue = CKEDITOR.tools.override(this.setValue, functio…
12428 (this.getValue = CKEDITOR.tools.override(this.getValue, function(a) {
12433 CKEDITOR.event.implementOn(this);
12443 … } && CKEDITOR.env.ie && 8 > CKEDITOR.env.version ? "cke_dialog_ui_focused" : "";
12456 CKEDITOR.tools.extend(this, b);
12472 CKEDITOR.ui.dialog.uiElement.call(this,
12487 CKEDITOR.env.ie && CKEDITOR.env.quirks &&
12503 CKEDITOR.ui.dialog.uiElement.call(this, a, d || {
12512 CKEDITOR.env.webkit && b.push("float:none;");
12514 …b.push('align\x3d"', CKEDITOR.tools.htmlEncode(d && d.align || ("ltr" == a.getParentEditor().lang.…
12522CKEDITOR.env.ie && CKEDITOR.env.quirks && f[e].align && k.push("text-align:" + f[e].align);
12533 CKEDITOR.ui.dialog.uiElement.prototype = {
12535 return CKEDITOR.document.getById(this.domId)
12615CKEDITOR.ui.dialog.hbox.prototype = CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement, {
12622 CKEDITOR.ui.dialog.vbox.prototype = new CKEDITOR.ui.dialog.hbox;
12629 h.push(CKEDITOR.dialog._.uiElementBuilders[f.type].build(a, f, m))
12631 return new CKEDITOR.ui.dialog[c.type](a,
12635 CKEDITOR.dialog.addUIElement("hbox", a);
12636 CKEDITOR.dialog.addUIElement("vbox", a)
12638 CKEDITOR.dialogCommand = function(a, b) {
12640 CKEDITOR.tools.extend(this, b, !0)
12642 CKEDITOR.dialogCommand.prototype = {
12659 CKEDITOR.VALIDATE_OR = 1;
12660 CKEDITOR.VALIDATE_AND = 2;
12661 CKEDITOR.dialog.validate = {
12666 c, d = CKEDITOR.VALIDATE_AND,
12674 var n = d == CKEDITOR.VALIDATE_AND ? !0 : !1;
12675 for (f = 0; f < e.length; f++) n = d == CKEDITOR.VALIDATE_AND ? n &&
12697 return d.test(CKEDITOR.tools.trim(a))
12702 return e.test(CKEDITOR.tools.trim(a))
12707 return f.test(CKEDITOR.tools.trim(a))
12722 CKEDITOR.on("instanceDestroyed", function(a) {
12723 if (CKEDITOR.tools.isEmpty(CKEDITOR.instances)) {
12724 for (var b; b = CKEDITOR.dialog._.currentTop;) b.hide();
12732 CKEDITOR.tools.extend(CKEDITOR.editor.prototype, {
12735 e = CKEDITOR.dialog._.dialogDefinitions[a];
12736 null === CKEDITOR.dialog._.currentTop && N(this);
12737 …_.storedDialogs || (this._.storedDialogs = {}), c = c[a] || (c[a] = new CKEDITOR.dialog(this, a)),…
12739 …if ("failed" == e) throw O(this), Error('[CKEDITOR.dialog.openDialog] Dialog "' + a + '" failed wh…
12740 … "string" == typeof e && CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(e), function() {
12741 …"function" != typeof CKEDITOR.dialog._.dialogDefinitions[a] && (CKEDITOR.dialog._.dialogDefinition…
12746 CKEDITOR.skin.loadPart("dialog");
12751 CKEDITOR.plugins.add("dialog", {
12759 CKEDITOR.plugins.add("about", {
12762 var b = a.addCommand("about", new CKEDITOR.dialogCommand("about"));
12774 CKEDITOR.dialog.add("about", this.path + "dialogs/about.js")
12778 CKEDITOR.plugins.add("a11yhelp", {
12853CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path + "dialogs/lang/" + a + ".js"), function() {
12865 b.setKeystroke(CKEDITOR.ALT + 48, "a11yHelp");
12866 CKEDITOR.dialog.add("a11yHelp", this.path + "dialogs/a11yhelp.js");
12882 if (arguments[a] instanceof CKEDITOR.dom.element) {
12897 CKEDITOR.plugins.add("dialogadvtab", {
12960 validate: CKEDITOR.dialog.validate.inlineStyle(d.invalidInlineStyle),
12972 d = CKEDITOR.tools.normalizeCssText(e.getAttribute("style"));
12999 CKEDITOR.plugins.add("basicstyles", {
13004 a = new CKEDITOR.style(a);
13010 c.addCommand(b, new CKEDITOR.styleCommand(a, {
13048 [CKEDITOR.CTRL + 66, "bold"],
13049 [CKEDITOR.CTRL + 73, "italic"],
13050 [CKEDITOR.CTRL + 85, "underline"]
13054 CKEDITOR.config.coreStyles_bold = {
13058 CKEDITOR.config.coreStyles_italic = {
13062 CKEDITOR.config.coreStyles_underline = {
13065 CKEDITOR.config.coreStyles_strike = {
13069 CKEDITOR.config.coreStyles_subscript = {
13072 CKEDITOR.config.coreStyles_superscript = {
13078 CKEDITOR.dom.element.setMarker(b, a, "bidi_processed", 1);
13095 …a.enlarge(d == CKEDITOR.ENTER_BR ? CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS : CKEDITOR.ENLARGE_BLOCK_CO…
13096 … if (a.checkBoundaryOfElement(b, CKEDITOR.START) && a.checkBoundaryOfElement(b, CKEDITOR.END)) {
13097 …for (var c; b && b.type == CKEDITOR.NODE_ELEMENT && (c = b.getParent()) && 1 == c.getChildCount() …
13098 return b.type == CKEDITOR.NODE_ELEMENT && b.getName() in f && b
13124 …&& (h = a.getSelection().getRanges()[0].getEnclosedNode()) && h.type == CKEDITOR.NODE_ELEMENT && (…
13126 …("rtl" == b ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF), a.getCommand("bidiltr").setState("ltr…
13138 … k && (!k || k.type == CKEDITOR.NODE_ELEMENT && k.getName() in r) || (k = v(g, t, b));
13140 var m = new CKEDITOR.dom.walker(g),
13144 var c = b == CKEDITOR.ENTER_P ? "p" : "div",
13146 … if (d = (a ? a.type == CKEDITOR.NODE_ELEMENT : !1) && a.getName() in t) {
13147 … if (c = a.is(c)) c = (c = a.getParent()) ? c.type == CKEDITOR.NODE_ELEMENT : !1;
13150 … return !!(d && a.getPosition(n) & CKEDITOR.POSITION_FOLLOWING && (a.getPosition(p) &
13151CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_CONTAINS) == CKEDITOR.POSITION_PRECEDING)
13155 …for (g.enlargeBr = b != CKEDITOR.ENTER_BR; k = g.getNextParagraph(b == CKEDITOR.ENTER_P ? "p" : "d…
13157 CKEDITOR.dom.element.clearAllMarkers(h);
13202 CKEDITOR.tools.extend(r, t, {
13208 CKEDITOR.tools.extend(u, r, {
13211 CKEDITOR.plugins.add("bidi", {
13215 a.addCommand(d, new CKEDITOR.command(a, e));
13242 …l = CKEDITOR.dom.element.prototype, n = ["setStyle", "removeStyle", "setAttribute", "removeAttribu…
13252 if (CKEDITOR.env.ie) {
13258 if (d.type == CKEDITOR.NODE_ELEMENT && d.isBlockBoundary()) {
13263 if (d.type == CKEDITOR.NODE_ELEMENT && d.isBlockBoundary()) {
13269 f.enlargeBr = g.config.enterMode != CKEDITOR.ENTER_BR;
13270 if (a == CKEDITOR.TRISTATE_OFF) {
13272 …ateElement(g.config.enterMode == CKEDITOR.ENTER_P ? "p" : "div"), b = h.shift(), c.insertNode(a), …
13290 …for (b = new CKEDITOR.dom.documentFragment(g.document); a.getFirst();) b.append(a.getFirst().remov…
13295 } else if (a == CKEDITOR.TRISTATE_ON) {
13306 …c && e && !e.getCustomData("blockquote_moveout") && (b.push(e), CKEDITOR.dom.element.setMarker(d, …
13308 CKEDITOR.dom.element.clearAllMarkers(d);
13312 … (e.push(c), CKEDITOR.dom.element.setMarker(d, c, "blockquote_processed", !0)), a.push(f);
13313 CKEDITOR.dom.element.clearAllMarkers(d);
13319 if (l.type == CKEDITOR.NODE_ELEMENT && l.isBlockBoundary()) {
13326 if (g.config.enterMode == CKEDITOR.ENTER_BR)
13329 b = new CKEDITOR.dom.documentFragment(g.document);
13331CKEDITOR.NODE_ELEMENT && f.getPrevious().isBlockBoundary() || b.append(g.document.createElement("b…
13332 …for (c = f.getNext() && !(f.getNext().type == CKEDITOR.NODE_ELEMENT && f.getNext().isBlockBoundary…
13343 …entPath(a.block || a.blockLimit).contains("blockquote", 1) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRIST…
13349 CKEDITOR.plugins.add("blockquote", {
13361 CKEDITOR.tools.extend(this, a, {
13363 id: "cke-" + CKEDITOR.tools.getUniqueId(),
13368 … b.plugins.clipboard && CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(this.element)
13376 this._uiBuffer = CKEDITOR.tools.eventsBuffer(10, this._layout, this);
13377 this._changeBuffer = CKEDITOR.tools.eventsBuffer(500, this._layout,
13384 CKEDITOR.plugins.add("notification", {
13387 var a = new CKEDITOR.dom.element("div");
13397 CKEDITOR.document.getBody().append(a);
13406 a = new CKEDITOR.plugins.notification(b, {
13455 return 0 <= CKEDITOR.tools.indexOf(this.area.notifications, this)
13460 a = new CKEDITOR.dom.element("div");
13469 c = new CKEDITOR.dom.element("p");
13473 …c = CKEDITOR.dom.element.createFromHtml('\x3ca class\x3d"cke_notification_close" href\x3d"javascri…
13486 var b = new CKEDITOR.dom.element("span");
13509 …1 == this.element.getChildCount() && (CKEDITOR.document.getBody().append(this.element), this._atta…
13513 var a = CKEDITOR.tools.indexOf(this.notifications,
13520 c = new CKEDITOR.dom.element("div");
13527 var b = CKEDITOR.document.getWindow(),
13536 var b = CKEDITOR.document.getWindow(),
13556 m = CKEDITOR.document.getWindow();
13559 q = CKEDITOR.document.getBody(),
13561 k = CKEDITOR.tools.cssLength;
13583 CKEDITOR.plugins.notification = q
13586 …"cke_button cke_button__{name} cke_button_{state} {cls}"' + (CKEDITOR.env.gecko && !CKEDITOR.env.h…
13587 CKEDITOR.env.gecko && CKEDITOR.env.mac && (c += ' onkeypress\x3d"return false;"');
13588 CKEDITOR.env.gecko && (c +=
13590CKEDITOR.tools.callFunction({keydownFn},event);" onfocus\x3d"return CKEDITOR.tools.callFunction({f…
13592 …v = CKEDITOR.addTemplate("buttonArrow", '\x3cspan class\x3d"cke_button_arrow"\x3e' + (CKEDITOR.env…
13593 w = CKEDITOR.addTemplate("button", c);
13594 CKEDITOR.plugins.add("button", {
13596 a.ui.addHandler(CKEDITOR.UI_BUTTON, CKEDITOR.ui.button.handler)
13599 CKEDITOR.UI_BUTTON = "button";
13600 CKEDITOR.ui.button = function(a) {
13601 CKEDITOR.tools.extend(this, a, {
13609 CKEDITOR.ui.button.handler = {
13611 return new CKEDITOR.ui.button(a)
13614 CKEDITOR.ui.button.prototype = {
13618 …] ? void 0 !== n[f] ? n[f] : CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED, f = a.readOnly &&…
13621 p = CKEDITOR.env,
13622 q = this._.id = CKEDITOR.tools.getNextId(),
13632 CKEDITOR.document.getById(q).focus()
13641 x = CKEDITOR.tools.addFunction(function(a) {
13642 … if (e.onkey) return a = new CKEDITOR.dom.event(a), !1 !== e.onkey(e, a.getKeystroke())
13644 y = CKEDITOR.tools.addFunction(function(a) {
13646 e.onfocus && (b = !1 !== e.onfocus(e, new CKEDITOR.dom.event(a)));
13650 e.clickFn = t = CKEDITOR.tools.addFunction(function() {
13656 a.mode && this._.state != CKEDITOR.TRISTATE_DISABLED && (n[a.mode] =
13660 …}, this), g += d.state == CKEDITOR.TRISTATE_ON ? "on" : d.state == CKEDITOR.TRISTATE_DISABLED ? "d…
13663 var c = CKEDITOR.document.getById(this._.id),
13668 CKEDITOR.skin.getIconStyle(m, "rtl" == b, this.icon, this.iconOffset))
13670 …d ? (k = a.getCommandKeystroke(d)) && (l = CKEDITOR.tools.keystrokeToString(a.lang.common.keyboard…
13675 …this.icon) ? (m = this.icon, r = null) : (this.icon && (h = this.icon), CKEDITOR.env.hidpi && this…
13676 h ? (CKEDITOR.skin.addIcon(h, h), r = null) : h = m;
13693 style: CKEDITOR.skin.getIconStyle(h, "rtl" == a.lang.dir, r, this.iconOffset),
13703 var b = CKEDITOR.document.getById(this._.id);
13704CKEDITOR.TRISTATE_DISABLED ? b.setAttribute("aria-disabled", !0) : b.removeAttribute("aria-disable…
13716 CKEDITOR.ui.prototype.addButton = function(a, b) {
13717 this.add(a, CKEDITOR.UI_BUTTON, b)
13723 …for (var b = f(), e = CKEDITOR.tools.clone(a.config.toolbarGroups) || v(a), n = 0; n < e.length; n…
13755 …ar d; d = e.shift();) d = "string" == typeof d ? d : d.name, b && -1 != CKEDITOR.tools.indexOf(b, …
13762 …{}, "/" == d ? a.push(d) : CKEDITOR.tools.isArray(d) ? (c(h, CKEDITOR.tools.clone(d)), a.push(h)) …
13828 …a.toolbox && (a.toolbox.focusCommandExecuted = !0, CKEDITOR.env.ie || CKEDITOR.env.air ? setTimeou…
13834 CKEDITOR.plugins.add("toolbar", {
13845 case CKEDITOR.SHIFT + 9:
13863 b ? b.focus() : (d = 1, f(c, CKEDITOR.SHIFT + 9), d = 0);
13877 var d = CKEDITOR.tools.getNextId(),
13881 …a.config.toolbarCanCollapse && a.elementMode != CKEDITOR.ELEMENT_MODE_INLINE && b.push('\x3cspan c…
13905 if (t.type == CKEDITOR.UI_SEPARATOR) k =
13910 r = CKEDITOR.tools.getNextId();
13934 … if (a.config.toolbarCanCollapse && a.elementMode != CKEDITOR.ELEMENT_MODE_INLINE) {
13935 var C = CKEDITOR.tools.addFunction(function() {
13939 CKEDITOR.tools.removeFunction(C)
13966 …a.setKeystroke(CKEDITOR.ALT + (CKEDITOR.env.ie || CKEDITOR.env.webkit ? 189 : 109), "toolbarCollap…
13969 …b.push('" onclick\x3d"CKEDITOR.tools.callFunction(' + C + ')"\x3e', '\x3cspan class\x3d"cke_arrow"…
13980 …; b < e.length; b++) f = e[b], f.clickFn && CKEDITOR.tools.removeFunction(f.clickFn), f.keyDownFn …
13989 a.setKeystroke(CKEDITOR.ALT + 121, "toolbarFocus");
13990 a.ui.add("-", CKEDITOR.UI_SEPARATOR, {});
13991 a.ui.addHandler(CKEDITOR.UI_SEPARATOR, {
14003 CKEDITOR.ui.prototype.addToolbarGroup = function(a, d, f) {
14010 if (f = CKEDITOR.tools.search(c, function(a) {
14015 (d = CKEDITOR.tools.indexOf(f.groups, d), 0 <= d)) {
14024 d && (d = CKEDITOR.tools.indexOf(c, function(a) {
14030 CKEDITOR.UI_SEPARATOR = "separator";
14031 CKEDITOR.config.toolbarLocation = "top";
14037 … if (CKEDITOR.env.gecko && "drop" == b.method && a.toolbox) a.once("afterPaste", function() {
14046 if (CKEDITOR.plugins.clipboard.isCustomCopyCutSupported) {
14069 b.attachListener(CKEDITOR.env.ie ?
14087 fakeKeystroke: "cut" == b ? CKEDITOR.CTRL + 88 : CKEDITOR.CTRL + 67,
14092 if (CKEDITOR.env.ie) b = e(c);
14108 fakeKeystroke: CKEDITOR.CTRL + 86,
14124 f = CKEDITOR.tools.keystrokeToString(a.lang.common.keyboard,
14159 … 7 < CKEDITOR.env.version ? c.$.execCommand(b) : c.$.selection.createRange().execCommand(b);
14165 if (CKEDITOR.env.ie && !CKEDITOR.env.quirks) {
14168 …b.getType() == CKEDITOR.SELECTION_ELEMENT && (c = b.getSelectedElement()) && (d = b.getRanges()[0]…
14185 CKEDITOR.env.ie && n.root.fire("selectionchange");
14186 …var k = new CKEDITOR.dom.element(!CKEDITOR.env.webkit && !e.is("body") || CKEDITOR.env.ie ? "div" …
14193CKEDITOR.env.webkit ? (e.append(k), k.addClass("cke_editable"), e.is("body") || (l = "static" != e…
14194 …e : CKEDITOR.dom.element.get(e.$.offsetParent), l = l.getDocumentPosition().y)) : e.getAscendant(C…
14204CKEDITOR.env.safari && k.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select", "text"));
14208 … if (CKEDITOR.env.webkit || CKEDITOR.env.gecko) f = e.once("blur", h, null, null, -100);
14210 l = new CKEDITOR.dom.range(k);
14213 CKEDITOR.env.ie && (f = e.once("blur", function() {
14216 var q = CKEDITOR.document.getWindow().getScrollPosition().y;
14218 CKEDITOR.env.webkit && (CKEDITOR.document.getBody().$.scrollTop = q);
14220 CKEDITOR.env.ie && e.focus();
14224CKEDITOR.env.webkit && (b = k.getFirst()) && b.is && b.hasClass("Apple-style-span") && (k = b);
14247 case CKEDITOR.CTRL + 86:
14248 case CKEDITOR.SHIFT + 45:
14254 case CKEDITOR.CTRL + 88:
14255 case CKEDITOR.SHIFT + 46:
14293 }) return CKEDITOR.TRISTATE_DISABLED;
14294 if ("paste" == b) return CKEDITOR.TRISTATE_OFF;
14297 …return b.getType() == CKEDITOR.SELECTION_NONE || 1 == c.length && c[0].collapsed ? CKEDITOR.TRISTA…
14299 var p = CKEDITOR.plugins.clipboard,
14330 … a._.pasteButtons && CKEDITOR.tools.array.forEach(a._.pasteButtons, function(b) {
14332 … if (b = CKEDITOR.document.getById(b._.id)) b.on("touchend", function() {
14397 if (CKEDITOR.env.webkit) {
14399 } else if (CKEDITOR.env.ie) {
14401 } else if (CKEDITOR.env.gecko) {
14409 … return CKEDITOR.tools.repeat("\x3c/p\x3e\x3cp\x3e", ~~(a / 2)) + (1 == a % 2 ? "\x3cbr\x3e" : "")
14416CKEDITOR.env.webkit && -1 < b.indexOf("\x3cdiv\x3e") && (b = b.replace(/^(<div>(<br>|)<\/div>)(?!$…
14420CKEDITOR.env.gecko && a.enterMode != CKEDITOR.ENTER_BR && (CKEDITOR.env.gecko && (b = b.replace(/^…
14430 … for (b in CKEDITOR.dtd) "$" != b.charAt(0) && "div" != b && "span" != b && (a[b] = 1);
14436 …nText || (b.plainText = new CKEDITOR.filter("br")) : "semantic-content" == c ? ((c = b.semanticCon…
14443 }), c = b.semanticContent = c), c) : c ? new CKEDITOR.filter(c) : null
14449 b = CKEDITOR.htmlParser.fragment.fromHtml(b);
14450 var d = new CKEDITOR.htmlParser.basicWriter;
14458 a.enterMode == CKEDITOR.ENTER_BR ? b = b.replace(/(<\/p><p>)+/g, function(a) {
14459 return CKEDITOR.tools.repeat("\x3cbr\x3e", a.length / 7 * 2)
14460 …}).replace(/<\/?p>/g, "") : a.enterMode == CKEDITOR.ENTER_DIV && (b = b.replace(/<(\/)?p>/g, "\x3c…
14470 var b = CKEDITOR.plugins.clipboard;
14504 a.type != CKEDITOR.NODE_ELEMENT && (a = a.getParent());
14508 f = CKEDITOR.plugins.clipboard.getDropTarget(a),
14520CKEDITOR.env.ie && 10 > CKEDITOR.env.version && (b.dragStartContainerChildCount =
14527 if (CKEDITOR.env.edge) a.data.preventDefault();
14530 …b && b.is && b.is("html") ? a.data.preventDefault() : CKEDITOR.env.ie && CKEDITOR.plugins.clipboar…
14538 if (!e.isReadOnly() || e.type == CKEDITOR.NODE_ELEMENT && e.is("html")) {
14551 g.getTransferType(a) == CKEDITOR.DATA_TRANSFER_INTERNAL ?
14554 … }, 0) : g.getTransferType(a) == CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ? c(f, h, g) : d(h, g)
14560 CKEDITOR.plugins.add("clipboard", {
14564 …? b = "plain-text" : a.config.pasteFilter ? b = a.config.pasteFilter : !CKEDITOR.env.webkit || "pa…
14568 CKEDITOR.dialog.add("paste", CKEDITOR.getUrl(this.path +
14570 if (CKEDITOR.env.gecko) {
14576 …&& f && 1 == f.getFilesCount() && g != f.id && (f = f.getFile(0), -1 != CKEDITOR.tools.indexOf(d, …
14596 … b.data.dataTransfer || (b.data.dataTransfer = new CKEDITOR.plugins.clipboard.dataTransfer);
14606 …c = CKEDITOR.dtd.$block; - 1 < b.indexOf("Apple-") && (b = b.replace(/<span class="Apple-converted…
14610 var d, g, n = new CKEDITOR.dom.element("div");
14611 …n.setHtml(b); 1 == n.getChildCount() && (d = n.getFirst()) && d.type == CKEDITOR.NODE_ELEMENT && (…
14614 CKEDITOR.env.ie ? b = b.replace(/^&nbsp;(?: |\r\n)?<(\w+)/g, function(b, d) {
14616 … }) : CKEDITOR.env.webkit ? b = b.replace(/<\/(\w+)><div><br><\/div>$/, function(b, d) {
14619 }) : CKEDITOR.env.gecko && (b = b.replace(/(\s)<br>$/, "$1"));
14627 n = b.dataTransfer.getTransferType(a) == CKEDITOR.DATA_TRANSFER_EXTERNAL,
14658 CKEDITOR.plugins.clipboard = {
14659 … isCustomCopyCutSupported: (!CKEDITOR.env.ie || 16 <= CKEDITOR.env.version) && !CKEDITOR.env.iOS,
14660 isCustomDataTypesSupported: !CKEDITOR.env.ie || 16 <= CKEDITOR.env.version,
14661 isFileApiSupported: !CKEDITOR.env.ie || 9 < CKEDITOR.env.version,
14662 mainPasteEvent: CKEDITOR.env.ie && !CKEDITOR.env.edge ? "beforepaste" : "paste",
14668CKEDITOR.DATA_TRANSFER_EXTERNAL || CKEDITOR.env.chrome && !a.isEmpty() || CKEDITOR.env.gecko && (a…
14672 return CKEDITOR.env.ie && 9 > CKEDITOR.env.version || b.isInline() ? b : a.document
14678 g.type == CKEDITOR.NODE_TEXT && (g = a.getParent());
14679 …tartContainer.getChild(b.startOffset), a && a.type == CKEDITOR.NODE_TEXT && c && c.type == CKEDITO…
14682 …"number" == typeof d && "number" == typeof c && h.type == CKEDITOR.NODE_ELEMENT && (g(a.startConta…
14691 var g = CKEDITOR.plugins.clipboard,
14698CKEDITOR.env.ie && 10 > CKEDITOR.env.version && this.fixSplitNodesAfterDrop(a, b, g.dragStartConta…
14706 …b && a.getPosition(f) & CKEDITOR.POSITION_PRECEDING && b.getPosition(f) & CKEDITOR.POSITION_FOLLOW…
14727 …FromPoint(d, g)) c = b.document.$.caretRangeFromPoint(d, g), e.setStart(CKEDITOR.dom.node(c.startC…
14728 …else if (c.rangeParent) e.setStart(CKEDITOR.dom.node(c.rangeParent), c.rangeOffset), e.collapse(!0…
14730 … if (CKEDITOR.env.ie && 8 < CKEDITOR.env.version && h && b.editable().hasFocus) return h;
14747 e.moveToPosition(t, CKEDITOR.POSITION_BEFORE_START);
14751 p = new CKEDITOR.dom.element(q),
14756 …d < r.left ? e.setStartAt(p, CKEDITOR.POSITION_AFTER_START) : e.setStartAt(p, CKEDITOR.POSITION_BE…
14788 return new this.dataTransfer(CKEDITOR.env.edge && a && a.data.$ &&
14795 m = CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ? "cke/id" : "Text";
14796 CKEDITOR.plugins.clipboard.dataTransfer = function(a, b) {
14811 this._.fallbackDataTransfer = new CKEDITOR.plugins.clipboard.fallbackDataTransfer(this);
14813 this.id || (this.id = "Text" == m ? "" : "cke-" + CKEDITOR.tools.getUniqueId());
14816 CKEDITOR.DATA_TRANSFER_INTERNAL = 1;
14817 CKEDITOR.DATA_TRANSFER_CROSS_EDITORS = 2;
14818 CKEDITOR.DATA_TRANSFER_EXTERNAL = 3;
14819 CKEDITOR.plugins.clipboard.dataTransfer.prototype = {
14832 …"Text" == a && CKEDITOR.env.gecko && this.getFilesCount() && "file://" == c.substring(0, 7) && (c …
14840 … if (CKEDITOR.plugins.clipboard.isCustomDataTypesSupported || "URL" == a || "Text" == a)
14851 …a ? CKEDITOR.DATA_TRANSFER_INTERNAL : CKEDITOR.DATA_TRANSFER_CROSS_EDITORS : CKEDITOR.DATA_TRANSFE…
14863 if (CKEDITOR.plugins.clipboard.isCustomDataTypesSupported) {
14888 CKEDITOR.tools.array.forEach(CKEDITOR.tools.objectKeys(this._.data), function(b) {
14892 if (CKEDITOR.plugins.clipboard.isCustomDataTypesSupported) {
14917 CKEDITOR.plugins.clipboard.fallbackDataTransfer = function(a) {
14921 CKEDITOR.plugins.clipboard.fallbackDataTransfer._isCustomMimeTypeSupported = null;
14922 CKEDITOR.plugins.clipboard.fallbackDataTransfer._customTypes = [];
14923 CKEDITOR.plugins.clipboard.fallbackDataTransfer.prototype = {
14925 var a = CKEDITOR.plugins.clipboard.fallbackDataTransfer,
14930 if (CKEDITOR.env.edge && 17 <= CKEDITOR.env.version) return !0;
14955 …c = CKEDITOR.plugins.clipboard.fallbackDataTransfer; - 1 === CKEDITOR.tools.indexOf(c._customTypes,
14985 var a = CKEDITOR.plugins.clipboard.fallbackDataTransfer._customTypes,
14988 CKEDITOR.tools.array.forEach(a, function(a) {
15010 …b && CKEDITOR.tools.objectKeys(b).length && (c = "\x3c!--cke-data:" + encodeURIComponent(JSON.stri…
15015 CKEDITOR.config.clipboard_notificationDuration = 1E4;
15016 CKEDITOR.plugins.add("panelbutton", {
15021 …a.state != CKEDITOR.TRISTATE_DISABLED && (this.createPanel(c), a.on ? a.panel.hide() : a.panel.sho…
15023 CKEDITOR.ui.panelButton = CKEDITOR.tools.createClass({
15024 base: CKEDITOR.ui.button,
15029 this.document = a.parent && a.parent.getDocument() || CKEDITOR.document;
15042 return new CKEDITOR.ui.panelButton(c)
15052 g = f.parent || CKEDITOR.document.getBody(),
15053 d = this._.panel = new CKEDITOR.ui.floatPanel(c, g, f),
15058 b.setState(CKEDITOR.TRISTATE_ON);
15065 … b.setState(b.modes && b.modes[c.mode] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED);
15076 b.setState(CKEDITOR.TRISTATE_OFF)
15084 e.ui.addHandler(CKEDITOR.UI_PANELBUTTON, CKEDITOR.ui.panelButton.handler)
15087 CKEDITOR.UI_PANELBUTTON = "panelbutton";
15089 CKEDITOR.plugins.add("panel", {
15091 a.ui.addHandler(CKEDITOR.UI_PANEL, CKEDITOR.ui.panel.handler)
15094 CKEDITOR.UI_PANEL = "panel";
15095 CKEDITOR.ui.panel = function(a, b) {
15096 b && CKEDITOR.tools.extend(this, b);
15097 CKEDITOR.tools.extend(this, {
15101 this.id = CKEDITOR.tools.getNextId();
15108 CKEDITOR.ui.panel.handler = {
15110 return new CKEDITOR.ui.panel(a)
15113 var g = CKEDITOR.addTemplate("panel",
15115 …h = CKEDITOR.addTemplate("panel-frame", '\x3ciframe id\x3d"{id}" class\x3d"cke_panel_frame" role\x…
15116 …k = CKEDITOR.addTemplate("panel-frame-inner", '\x3c!DOCTYPE html\x3e\x3chtml class\x3d"cke_panel_c…
15117 CKEDITOR.ui.panel.prototype = {
15126 CKEDITOR.env.iOS && b.setStyles({
15130 b = CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function() {
15134 a.write(k.output(CKEDITOR.tools.extend({
15135 css: CKEDITOR.tools.buildStyleHtml(this.css),
15136 onload: "window.parent.CKEDITOR.tools.callFunction(" +
15139 a.getWindow().$.CKEDITOR = CKEDITOR;
15147 CKEDITOR.env.air && CKEDITOR.tools.callFunction(b)
15160 env: CKEDITOR.env.cssClass,
15164 …r d = CKEDITOR.env.air ? "javascript:void(0)" : CKEDITOR.env.ie ? "javascript:void(function(){" + …
15175 …b = this._.blocks[a] = b instanceof CKEDITOR.ui.panel.block ? b : new CKEDITOR.ui.panel.block(this…
15186 …e = !this.forceIFrame || CKEDITOR.env.ie ? this._.holder : this.document.getById(this.id + "_frame…
15189 CKEDITOR.fire("ariaWidget", e);
15191 this._.onKeyDown = a.onKeyDown && CKEDITOR.tools.bind(a.onKeyDown, a);
15199 CKEDITOR.ui.panel.block =
15200 CKEDITOR.tools.createClass({
15211 b && CKEDITOR.tools.extend(this, b);
15224 …a), CKEDITOR.env.webkit && a.getDocument().getWindow().focus(), a.focus(), this.onMark && this.onM…
15228 … return a.type == CKEDITOR.NODE_ELEMENT && "none" == a.getStyle("display")
15234 …} c && (a && a(), CKEDITOR.env.webkit && c.getDocument().getWindow().focus(), c.focus(), this.onMa…
15278 CKEDITOR.plugins.add("floatpanel", {
15283 …h = CKEDITOR.tools.genKey(b.getUniqueId(), c.getUniqueId(), a.lang.dir, a.uiColor || "", m.css || …
15285 …g || (g = f[h] = new CKEDITOR.ui.panel(b, m), g.element = c.append(CKEDITOR.dom.element.createFrom…
15292 CKEDITOR.ui.floatPanel = CKEDITOR.tools.createClass({
15298 c.toolbarRelated && a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE &&
15299 (b = CKEDITOR.document.getById("cke_" + a.name));
15341 … this._.returnFocus = e.hasFocus ? e : new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);
15345 … e = CKEDITOR.env.ie && !CKEDITOR.env.edge ? e : new CKEDITOR.dom.window(e.$.contentWindow),
15367 this._.blurSet || (CKEDITOR.event.useCapture = !0, e.on("blur", function(a) {
15372 … == CKEDITOR.EVENT_PHASE_AT_TARGET && this.visible && !this._.activeChild && (CKEDITOR.env.iOS ? t…
15377 }, this), CKEDITOR.env.iOS && (e.on("touchstart", function() {
15382 }, this)), CKEDITOR.event.useCapture = !1,
15384 n.onEscape = CKEDITOR.tools.bind(function(a) {
15387 CKEDITOR.tools.setTimeout(function() {
15388 var a = CKEDITOR.tools.bind(function() {
15393 … b = (CKEDITOR.env.webkit || CKEDITOR.env.edge ? k.element : b.getBody()).$.scrollWidth;
15394CKEDITOR.env.ie && CKEDITOR.env.quirks && 0 < b && (b += (a.$.offsetWidth || 0) - (a.$.clientWidth…
15397 CKEDITOR.env.ie &&
15398CKEDITOR.env.quirks && 0 < b && (b += (a.$.offsetHeight || 0) - (a.$.clientHeight || 0) + 3);
15415CKEDITOR.env.ie && (b = a = new CKEDITOR.dom.element(l.$.offsetParent), "html" == b.getName() && (…
15429 CKEDITOR.tools.setTimeout(function() {
15430 … var a = CKEDITOR.env.webkit && CKEDITOR.document.getWindow().getScrollPosition().y;
15433 CKEDITOR.env.webkit && (CKEDITOR.document.getBody().$.scrollTop = a);
15435 CKEDITOR.env.ie ? CKEDITOR.tools.setTimeout(function() {
15441 }, CKEDITOR.env.air ? 200 : 0, this);
15450 if (CKEDITOR.env.webkit) {
15451 var a = CKEDITOR.document.getActive();
15463CKEDITOR.env.gecko && this._.iframe.getFrameDocument().$.activeElement.blur();
15467 …if (a = a && this._.returnFocus) CKEDITOR.env.webkit && a.type && a.getWindow().$.focus(), a.focus…
15480 …| a._.panel._.offsetParentId != c.getId()) this.hideChild(), a.onHide = CKEDITOR.tools.bind(functi…
15481 CKEDITOR.tools.setTimeout(function() {
15484 …._.focused = !1, a.showBlock(b, c, f, h, g), this.blur(), (CKEDITOR.env.ie7Compat || CKEDITOR.env.…
15495 CKEDITOR.on("instanceDestroyed", function() {
15496 var a = CKEDITOR.tools.isEmpty(CKEDITOR.instances),
15505 CKEDITOR.plugins.add("colorbutton", {
15509 var p = new CKEDITOR.style(l["colorButton_" + d + "Style"]),
15510 m = CKEDITOR.tools.getNextId() + "_colorBox",
15513 e.ui.add(a, CKEDITOR.UI_PANELBUTTON, {
15525 css: CKEDITOR.skin.getPath("editor"),
15538 CKEDITOR.ui.fire("ready", this);
15546 c[CKEDITOR.SHIFT + 9] = "prev";
15550 e.activeFilter.check(p) || this.setState(CKEDITOR.TRISTATE_DISABLED)
15562 …for (var a = new CKEDITOR.dom.walker(b), f = b.collapsed ? b.startContainer : a.next(), b = ""; f;…
15563 f.type !== CKEDITOR.NODE_ELEMENT && (f = f.getParent());
15592 q = CKEDITOR.tools.addFunction(function(a, b) {
15596 e.removeStyle(new CKEDITOR.style(d, {
15605 a && e.applyStyle(new CKEDITOR.style(d, {
15618 …h.auto, '" onclick\x3d"CKEDITOR.tools.callFunction(', q, ",null,'", d, "');return false;\" href\x3…
15626 …orbox" _cke_focus\x3d1 hidefocus\x3dtrue title\x3d"', n, '" onclick\x3d"CKEDITOR.tools.callFunctio…
15629 …" _cke_focus\x3d1 hidefocus\x3dtrue title\x3d"', h.more, '" onclick\x3d"CKEDITOR.tools.callFunctio…
15640 …return CKEDITOR.tools.normalizeHex("#" + CKEDITOR.tools.convertRgbToHex(a || "")).replace(/#/g, "")
15644 if (!CKEDITOR.env.hc) {
15667 var d = CKEDITOR.tools;
15673 var d = (new CKEDITOR.style(e.config.colorButton_backStyle, {
15688CKEDITOR.config.colorButton_colors = "1ABC9C,2ECC71,3498DB,9B59B6,4E5F70,F1C40F,16A085,27AE60,2980…
15689 CKEDITOR.config.colorButton_foreStyle = {
15701 CKEDITOR.config.colorButton_backStyle = {
15707 CKEDITOR.plugins.colordialog = {
15710 var d = new CKEDITOR.dialogCommand("colordialog");
15713 CKEDITOR.dialog.add("colordialog", this.path + "dialogs/colordialog.js");
15733 else CKEDITOR.on("dialogDefinition", function(a) {
15737 b.onLoad = CKEDITOR.tools.override(b.onLoad, function(a) {
15749 CKEDITOR.plugins.add("colordialog", CKEDITOR.plugins.colordialog);
15751 CKEDITOR.plugins.add("templates", {
15754CKEDITOR.dialog.add("templates", CKEDITOR.getUrl(this.path + "dialogs/templates.js"));
15755 a.addCommand("templates", new CKEDITOR.dialogCommand("templates"));
15765 CKEDITOR.addTemplates = function(a, d) {
15768 CKEDITOR.getTemplates = function(a) {
15771 CKEDITOR.loadTemplates = function(a, d) {
15773 e.length ? CKEDITOR.scriptLoader.load(e, d) : setTimeout(d, 0)
15776 CKEDITOR.config.templates_files = [CKEDITOR.getUrl("plugins/templates/templates/default.js")];
15777 CKEDITOR.config.templates_replaceContent = !0;
15778 CKEDITOR.plugins.add("menu", {
15786 r[b.group] && (t[a] = new CKEDITOR.menuItem(this, a, b))
15806 CKEDITOR.env.gecko && CKEDITOR.env.mac && (h += ' onkeypress\x3d"return false;"');
15807CKEDITOR.env.gecko && (h += ' onblur\x3d"this.style.cssText \x3d this.style.cssText;" ondragstart\…
15808CKEDITOR.tools.callFunction({hoverFn},{index});" onmouseout\x3d"CKEDITOR.tools.callFunction({moveO…
15809 r = CKEDITOR.addTemplate("menuItem",
15811 …t = CKEDITOR.addTemplate("menuArrow", '\x3cspan class\x3d"cke_menuarrow"\x3e\x3cspan\x3e{label}\x3…
15812 …n = CKEDITOR.addTemplate("menuShortcut", '\x3cspan class\x3d"cke_menubutton_label cke_menubutton_s…
15813 CKEDITOR.menu = CKEDITOR.tools.createClass({
15816 this.id = CKEDITOR.tools.getNextId();
15821 var d = CKEDITOR.tools.extend({}, b.panel, {
15822 css: [CKEDITOR.skin.getPath("editor")],
15865 …b ? b.removeAll() : (b = this._.subMenu = new CKEDITOR.menu(this.editor, CKEDITOR.tools.extend({},…
15867 … }, !0)), b.parent = this, b._.onClick = CKEDITOR.tools.bind(this._.onClick, this));
15896 …e = this._.panel = new CKEDITOR.ui.floatPanel(this.editor, CKEDITOR.document.getBody(), this._.pan…
15897 e.onEscape = CKEDITOR.tools.bind(function(a) {
15903 e.onHide = CKEDITOR.tools.bind(function() {
15912 c[CKEDITOR.SHIFT + 9] = "prev";
15913 c["rtl" == k.lang.dir ? 37 : 39] = CKEDITOR.env.ie ? "mouseup" : "click";
15914 c[32] = CKEDITOR.env.ie ? "mouseup" :
15916 CKEDITOR.env.ie && (c[13] = "mouseup");
15921 this._.itemOverFn = CKEDITOR.tools.addFunction(function(a) {
15923 …this._.showSubTimeout = CKEDITOR.tools.setTimeout(this._.showSubMenu, k.config.menu_subMenuDelay |…
15925 this._.itemOutFn = CKEDITOR.tools.addFunction(function() {
15928 this._.itemClickFn = CKEDITOR.tools.addFunction(function(a) {
15930 if (b.state == CKEDITOR.TRISTATE_DISABLED) this.hide(1);
15944 CKEDITOR.ui.fire("ready", this);
15956 var b = CKEDITOR.tools.array.filter(this.items, function(b) {
15966 CKEDITOR.menuItem = CKEDITOR.tools.createClass({
15968 CKEDITOR.tools.extend(this, d, {
15979 g = "undefined" == typeof this.state ? CKEDITOR.TRISTATE_OFF : this.state,
15982 … f, c, l = g == CKEDITOR.TRISTATE_ON ? "on" : g == CKEDITOR.TRISTATE_DISABLED ? "disabled" : "off";
15986 … } && (k = ' aria-checked\x3d"' + (g == CKEDITOR.TRISTATE_ON ? "true" : "false") + '"');
15991 …(f = e.getCommand(this.command), (f = e.getCommandKeystroke(f)) && (c = CKEDITOR.tools.keystrokeTo…
16000 disabled: g == CKEDITOR.TRISTATE_DISABLED,
16008 …iconStyle: CKEDITOR.skin.getIconStyle(p, "rtl" == this.editor.lang.dir, p == this.icon ? null : th…
16023CKEDITOR.config.menu_groups = "clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,t…
16024 CKEDITOR.plugins.add("contextmenu", {
16027 CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass({
16028 base: CKEDITOR.menu,
16043 … var c = CKEDITOR.env.webkit ? f : CKEDITOR.env.mac ? a.$.metaKey : a.$.ctrlKey;
16046 if (CKEDITOR.env.mac && CKEDITOR.env.webkit) {
16048 … b = (new CKEDITOR.dom.elementPath(a.getTarget(), c.editable())).contains(function(a) {
16055 c = !b.equals(CKEDITOR.document),
16059 CKEDITOR.tools.setTimeout(function() {
16061 }, CKEDITOR.env.ie ?
16065 if (CKEDITOR.env.webkit) {
16070 f = CKEDITOR.env.mac ? a.data.$.metaKey : a.data.$.ctrlKey
16077 … this.editor.config.enableContextMenu && (this.editor.focus(), a = a || CKEDITOR.document.getDocum…
16083 var e = a.contextMenu = new CKEDITOR.plugins.contextMenu(a);
16093 a.setKeystroke(CKEDITOR.SHIFT + 121, "contextMenu");
16094 a.setKeystroke(CKEDITOR.CTRL + CKEDITOR.SHIFT + 121, "contextMenu")
16099 var c = new CKEDITOR.dom.walker(a);
16121 this.filter = new CKEDITOR.filter(a.config.copyFormatting_allowRules);
16125 var l = CKEDITOR.tools.indexOf,
16126 r = CKEDITOR.tools.getMouseButton,
16128 CKEDITOR.plugins.add("copyformatting", {
16133 var b = CKEDITOR.plugins.copyformatting;
16135 … t || (CKEDITOR.document.appendStyleSheet(this.path + "styles/copyformatting.css"), t = !0);
16151 r(b) === CKEDITOR.MOUSE_BUTTON_LEFT && a.execCommand("applyFormatting")
16153 d.attachListener(CKEDITOR.document, "mouseup", function(b) {
16155 …r(b) !== CKEDITOR.MOUSE_BUTTON_LEFT || e.state !== CKEDITOR.TRISTATE_ON || d.contains(b.data.getTa…
16157 … c && (b = CKEDITOR.document.getById(c._.id), d.attachListener(b, "dblclick", function() {
16170 …b.getKeystroke && 27 === b.getKeystroke() && e.state === CKEDITOR.TRISTATE_ON && a.execCommand("co…
16176 … if (!a.copyFormatting.filter.check(new CKEDITOR.style(e), !0, !0)) return d.cancel();
16187 …reateBookmark(), -1 === l(b.preservedElements, f.element) ? CKEDITOR.env.webkit && !CKEDITOR.env.c…
16192 var e = CKEDITOR.plugins.copyformatting,
16203 CKEDITOR.event.implementOn(q.prototype);
16204 CKEDITOR.plugins.copyformatting = {
16217 var d = CKEDITOR.plugins.copyformatting,
16222 h = CKEDITOR.document.getDocumentElement();
16223 …if (this.state === CKEDITOR.TRISTATE_ON) return e.styles = null, e.sticky = !1, g.removeClass("cke…
16224 …derMessage(a, "canceled"), d._detachPasteKeystrokeHandler(a), this.setState(CKEDITOR.TRISTATE_OFF);
16226 this.setState(CKEDITOR.TRISTATE_ON);
16234 editorFocus: CKEDITOR.env.ie &&
16235 !CKEDITOR.env.edge ? !1 : !0,
16239 c = CKEDITOR.plugins.copyformatting,
16242 h = CKEDITOR.document.getDocumentElement();
16243 if (e || d.state === CKEDITOR.TRISTATE_ON) {
16247 …h.removeClass("cke_copyformatting_tableresize_cursor"), d.setState(CKEDITOR.TRISTATE_OFF), c._deta…
16254 … return a.elementMode === CKEDITOR.ELEMENT_MODE_INLINE ? a.editable() : a.editable().getParent()
16257 var b = CKEDITOR.tools,
16258 d = a.getAttributes(CKEDITOR.plugins.copyformatting.excludedAttributes),
16262 type: CKEDITOR.STYLE_INLINE,
16271CKEDITOR.NODE_ELEMENT && !b.hasAttribute("data-cke-bookmark") && (d.element = b, a.copyFormatting.…
16275 for (var d = [], e = new CKEDITOR.dom.walker(b),
16276 … c; c = e.next();) d = d.concat(CKEDITOR.plugins.copyformatting._extractStylesFromElement(a, c));
16280 … for (var d = -1 !== l(["ol", "ul", "table"], b), e = new CKEDITOR.dom.walker(a), c; c = e.next();)
16287 return a.type !== CKEDITOR.NODE_COMMENT
16292 … return a.type == CKEDITOR.NODE_ELEMENT ? (a = a.getHtml().replace(/<span.*?>&nbsp;<\/span>/g,
16318 …for (f || (f = a); f.type !== CKEDITOR.NODE_TEXT;) f = !m || c || k ? f.getChild(0) : f.getChild(f…
16343 CKEDITOR.tools.isEmpty,
16346 …for (c = 0; c < a.length; c++) e = a[c]._.definition, -1 !== CKEDITOR.tools.indexOf(CKEDITOR.plugi…
16351 var e = new CKEDITOR.dom.walker(a),
16364 var e = CKEDITOR.plugins.copyformatting,
16367 CKEDITOR.env.webkit && !CKEDITOR.env.chrome && a.getSelection().selectRanges([b]);
16386 … }) : CKEDITOR.plugins.copyformatting._applyStylesToTextContext(a, b, [e]), b.moveToBookmark(c)
16391 b.element = a.getName(), b = new CKEDITOR.style(b));
16407 … }) : CKEDITOR.plugins.copyformatting._applyStylesToTextContext(a, b, [c]), b.moveToBookmark(f)
16411 e = CKEDITOR.plugins.copyformatting,
16437 …if (!CKEDITOR.env.ie6Compat && !CKEDITOR.env.ie7Compat) return CKEDITOR.document.getBody().append(
16440 …if (!CKEDITOR.env.ie6Compat && !CKEDITOR.env.ie7Compat) return CKEDITOR.document.getBody().findOne…
16451 CKEDITOR.config.copyFormatting_outerCursor = !0;
16452CKEDITOR.config.copyFormatting_allowRules = "b s u i em strong span p div td th ol ul li(*)[*]{*}";
16453 CKEDITOR.config.copyFormatting_disallowRules =
16455 CKEDITOR.config.copyFormatting_allowedContexts = !0;
16456 CKEDITOR.config.copyFormatting_keystrokeCopy = CKEDITOR.CTRL + CKEDITOR.SHIFT + 67;
16457 CKEDITOR.config.copyFormatting_keystrokePaste = CKEDITOR.CTRL + CKEDITOR.SHIFT + 86
16460 CKEDITOR.plugins.add("div", {
16466CKEDITOR.dialog.isTabEnabled(a, "editdiv", "advanced") && (b += ";div[dir,id,lang,title]{*}");
16467 a.addCommand("creatediv", new CKEDITOR.dialogCommand("creatediv", {
16475 …tState("div" in (a.config.div_wrapTable ? c.root : c.blockLimit).getDtd() ? CKEDITOR.TRISTATE_OFF :
16476 CKEDITOR.TRISTATE_DISABLED)
16479 a.addCommand("editdiv", new CKEDITOR.dialogCommand("editdiv", {
16486 …(b = CKEDITOR.plugins.div.getSurroundDiv(a, b)) && !b.data("cke-div-added") && (f.push(b), b.data(…
16488 ….length; d++) e = g[d], e.collapsed ? c(b.getStartElement()) : (e = new CKEDITOR.dom.walker(e), e.…
16512 … return !b || b.isReadOnly() ? null : CKEDITOR.plugins.div.getSurroundDiv(a) ? {
16513 editdiv: CKEDITOR.TRISTATE_OFF,
16514 removediv: CKEDITOR.TRISTATE_OFF
16518 CKEDITOR.dialog.add("creatediv", this.path + "dialogs/div.js");
16519 CKEDITOR.dialog.add("editdiv", this.path + "dialogs/div.js")
16523 CKEDITOR.plugins.div = {
16532 CKEDITOR.plugins.add("resize", {
16545 CKEDITOR.document.removeListener("mousemove", f);
16546 CKEDITOR.document.removeListener("mouseup", k);
16563 q = CKEDITOR.tools.addFunction(function(d) {
16575 CKEDITOR.document.on("mousemove", f);
16576 CKEDITOR.document.on("mouseup", k);
16582 CKEDITOR.tools.removeFunction(q)
16589 … cke_resizer_" + g + '" title\x3d"' + CKEDITOR.tools.htmlEncode(b.lang.common.resize) + '" onmouse…
16595 b.ui.space("resizer")[a.data == CKEDITOR.TRISTATE_ON ? "hide" : "show"]()
16606 CKEDITOR.env.ie && a.fire("selectionChange", {
16608 path: new CKEDITOR.dom.elementPath(b)
16627 var v = CKEDITOR.tools.addFunction(k),
16628 w = CKEDITOR.tools.addFunction(function(b, e) {
16631 e = new CKEDITOR.dom.event(e);
16636 …37: case 9: return (d = CKEDITOR.document.getById(g + (b + 1))) || (d = CKEDITOR.document.getById(…
16638 …39: case CKEDITOR.SHIFT + 9: return (d = CKEDITOR.document.getById(g + (b - 1))) || (d = CKEDITOR.…
16675 (m = CKEDITOR.document.getById(n));
16685 a.setKeystroke(CKEDITOR.ALT + 122, "elementsPathFocus")
16692 …(a = CKEDITOR.document.getById(a._.elementsPath.idBase + "0")) && a.focus(CKEDITOR.env.ie || CKEDI…
16697 CKEDITOR.env.gecko &&
16698 CKEDITOR.env.mac && (c += ' onkeypress\x3d"return false;"');
16699 CKEDITOR.env.gecko && (c += ' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');
16700CKEDITOR.addTemplate("pathItem", '\x3ca id\x3d"{id}" href\x3d"{jsTitle}" tabindex\x3d"-1" class\x3…
16701 CKEDITOR.plugins.add("elementspath", {
16704 idBase: "cke_elementspath_" + CKEDITOR.tools.getNextNumber() + "_",
16719 g && !g.isContextFor("p") && (e = CKEDITOR.ENTER_BR, b = 1);
16721 e == CKEDITOR.ENTER_BR ? u(a, e, null, b) : r(a, e, null, b);
16734 … return a.type == CKEDITOR.NODE_ELEMENT && "true" == a.getAttribute("contenteditable")
16738 e = new CKEDITOR.dom.range(e);
16742 CKEDITOR.plugins.add("enterkey", {
16764 [CKEDITOR.SHIFT + 13, "shiftEnter"]
16768 var A = CKEDITOR.dom.walker.whitespaces(),
16769 B = CKEDITOR.dom.walker.bookmark(),
16771 CKEDITOR.plugins.enterkey = {
16775 …if (a === CKEDITOR.ENTER_BR || -1 === CKEDITOR.tools.indexOf(["td", "th"], p.lastElement.getName()…
16787 l = e == CKEDITOR.ENTER_DIV ? "div" : "p",
16803 a = a.enterMode != CKEDITOR.ENTER_BR || r || q || t;
16807 …if (p.block.is("li") ? (d = h.createElement(e == CKEDITOR.ENTER_P ? "p" : "div"), r && d.setAttrib…
16821 … c.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1)) || c.getPrevious().remove();
16822 c.getNext().getFirst(CKEDITOR.dom.walker.invisible(1)) ||
16850CKEDITOR.dtd.$removeEmpty[l.getName()] && (l = l.clone(), d.moveChildren(l), d.append(l))
16855 !CKEDITOR.env.ie || !n || f && a.getChildCount() ||
16859 …else c.is("li") && (d = b.clone(), d.selectNodeContents(c), d = new CKEDITOR.dom.walker(d), d.eval…
16860 …urn !(B(a) || A(a) || a.type == CKEDITOR.NODE_ELEMENT && a.getName() in CKEDITOR.dtd.$inline && !(…
16861 …}, (k = d.next()) && k.type == CKEDITOR.NODE_ELEMENT && k.is("ul", "ol") && (CKEDITOR.env.needsBrF…
16871 n = new CKEDITOR.dom.elementPath(a.getSelection().getStartElement()),
16874 …r(f), CKEDITOR.env.gecko && m.createText("").insertAfter(f), b.setStartAt(f.getNext(), CKEDITOR.en…
16875CKEDITOR.env.ie && 8 > CKEDITOR.env.version ? m.createText("\r") : m.createElement("br"), b.delete…
16879 v = CKEDITOR.plugins.enterkey;
16919 CKEDITOR.plugins.add("entities", {
16954 CKEDITOR.config.basicEntities = !0;
16955 CKEDITOR.config.entities = !0;
16956 CKEDITOR.config.entities_latin = !0;
16957 CKEDITOR.config.entities_greek = !0;
16958 CKEDITOR.config.entities_additional = "#39";
16959 CKEDITOR.plugins.add("popup");
16960 CKEDITOR.tools.extend(CKEDITOR.editor.prototype, {
17020 CKEDITOR.plugins.add("filetools", {
17041 d.append("ckCsrfToken", CKEDITOR.tools.getCsrfToken());
17057 … f.message = b.lang.filetools.responseError, CKEDITOR.warn("filetools-response-error", {
17175 CKEDITOR.event.implementOn(k.prototype);
17176 CKEDITOR.event.implementOn(l.prototype);
17178 CKEDITOR.fileTools || (CKEDITOR.fileTools = {});
17179 CKEDITOR.tools.extend(CKEDITOR.fileTools, {
17183 var b = CKEDITOR.tools.capitalize;
17229 var b = new CKEDITOR.dom.element(a.$.form);
17230 …b && ((a = b.$.elements.ckCsrfToken) ? a = new CKEDITOR.dom.element(a) : (a = new CKEDITOR.dom.ele…
17233 }), b.append(a)), a.setAttribute("value", CKEDITOR.tools.getCsrfToken()))
17269 e = CKEDITOR.fileTools && CKEDITOR.fileTools.isFileUploadSupported;
17318 CKEDITOR.plugins.add("filebrowser", {
17321 a._.filebrowserFn = CKEDITOR.tools.addFunction(m, a);
17323 CKEDITOR.tools.removeFunction(this._.filebrowserFn)
17327 CKEDITOR.on("dialogDefinition", function(a) {
17333 CKEDITOR.plugins.add("find", {
17336 var b = a.addCommand("find", new CKEDITOR.dialogCommand("find")),
17337 c = a.addCommand("replace", new CKEDITOR.dialogCommand("find", {
17352 CKEDITOR.dialog.add("find", this.path + "dialogs/find.js")
17355 CKEDITOR.config.find_highlight = {
17372 var k = CKEDITOR.htmlParser.cssStyle,
17373 h = CKEDITOR.tools.cssLength,
17379 …if ((b = (b = (b = b && b["data-cke-realelement"]) && new CKEDITOR.htmlParser.fragment.fromHtml(de…
17391 CKEDITOR.plugins.add("fakeobjects", {
17401 CKEDITOR.editor.prototype.createFakeElement = function(a, b, c, d) {
17412 CKEDITOR.env.hc || (b.src = CKEDITOR.tools.transparentImageData);
17419 CKEDITOR.editor.prototype.createFakeParserElement = function(a, b, c, d) {
17423 f = new CKEDITOR.htmlParser.basicWriter;
17434 CKEDITOR.env.hc || (b.src = CKEDITOR.tools.transparentImageData);
17437 return new CKEDITOR.htmlParser.element("img", b)
17439 CKEDITOR.editor.prototype.restoreRealElement =
17441 if (a.data("cke-real-node-type") != CKEDITOR.NODE_ELEMENT) return null;
17442 …var b = CKEDITOR.dom.element.createFromHtml(decodeURIComponent(a.data("cke-realelement")), this.do…
17462 CKEDITOR.plugins.add("flash", {
17465CKEDITOR.addCss("img.cke_flash{background-image: url(" + CKEDITOR.getUrl(this.path + "images/place…
17469CKEDITOR.dialog.isTabEnabled(a, "flash", "properties") && (b += ";object[align]; embed[allowscript…
17470CKEDITOR.dialog.isTabEnabled(a, "flash", "advanced") && (b += ";object[id]{*}; embed[bgcolor]{*}(*…
17471 a.addCommand("flash", new CKEDITOR.dialogCommand("flash", {
17480 CKEDITOR.dialog.add("flash", this.path + "dialogs/flash.js");
17494 flash: CKEDITOR.TRISTATE_OFF
17521 CKEDITOR.tools.extend(CKEDITOR.config, {
17571 … v = "pageXOffset" in g.$ ? g.$.pageXOffset : CKEDITOR.document.$.documentElement.scrollLeft;
17578CKEDITOR.template('\x3cdiv id\x3d"cke_{name}" class\x3d"cke {id} cke_reset_all cke_chrome cke_edit…
17580 … b = CKEDITOR.document.getBody().append(CKEDITOR.dom.element.createFromHtml(k.output({
17590 u = CKEDITOR.tools.eventsBuffer(500, t),
17591 e = CKEDITOR.tools.eventsBuffer(100, t);
17620 var g = CKEDITOR.document.getWindow(),
17621 w = CKEDITOR.tools.cssLength;
17622 CKEDITOR.plugins.add("floatingspace", {
17630 CKEDITOR.plugins.add("listblock", {
17633 …var f = CKEDITOR.addTemplate("panel-list", '\x3cul role\x3d"presentation" class\x3d"cke_panel_list…
17634CKEDITOR.addTemplate("panel-list-item", '\x3cli id\x3d"{id}" class\x3d"cke_panel_listItem" role\x3…
17635 …h = CKEDITOR.addTemplate("panel-list-group", '\x3ch1 id\x3d"{id}" class\x3d"cke_panel_grouptitle" …
17637 CKEDITOR.ui.panel.prototype.addListBlock = function(a, b) {
17638 return this.addBlock(a, new CKEDITOR.ui.listBlock(this.getHolderElement(), b))
17640 CKEDITOR.ui.listBlock = CKEDITOR.tools.createClass({
17641 base: CKEDITOR.ui.panel.block,
17654 c[CKEDITOR.SHIFT + 9] = "prev";
17655 c[32] = CKEDITOR.env.ie ? "mouseup" : "click";
17656 CKEDITOR.env.ie && (c[13] = "mouseup");
17675 (this._.click = CKEDITOR.tools.addFunction(function(a) {
17684 var d = CKEDITOR.tools.getNextId();
17688 e = CKEDITOR.tools.htmlEncodeAttr(a).replace(k, "\\'");
17692 … onclick: CKEDITOR.env.ie ? 'onclick\x3d"return false;" onmouseup' : "onclick",
17694 title: CKEDITOR.tools.htmlEncodeAttr(c || a),
17701 var b = CKEDITOR.tools.getNextId();
17790 CKEDITOR.plugins.add("richcombo", {
17793 c.ui.addHandler(CKEDITOR.UI_RICHCOMBO, CKEDITOR.ui.richCombo.handler)
17797 …3d"cke_combo_button" title\x3d"{title}" tabindex\x3d"-1"' + (CKEDITOR.env.gecko && !CKEDITOR.env.h…
17798 CKEDITOR.env.gecko && CKEDITOR.env.mac && (c += ' onkeypress\x3d"return false;"');
17799 CKEDITOR.env.gecko && (c += ' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');
17800CKEDITOR.tools.callFunction({keydownFn},event,this);" onfocus\x3d"return CKEDITOR.tools.callFuncti…
17801 …(CKEDITOR.env.hc ? "\x26#9660;" : CKEDITOR.env.air ? "\x26nbsp;" : "") + "\x3c/span\x3e\x3c/span\x…
17802 k = CKEDITOR.addTemplate("combo", c);
17803 CKEDITOR.UI_RICHCOMBO = "richcombo";
17804 CKEDITOR.ui.richCombo = CKEDITOR.tools.createClass({
17806 CKEDITOR.tools.extend(this, a, {
17816 this.id = CKEDITOR.tools.getNextNumber();
17817 this.document = a.parent && a.parent.getDocument() || CKEDITOR.document;
17837 if (this.getState() != CKEDITOR.TRISTATE_ON) {
17838 … var b = this.modes[a.mode] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
17839 a.readOnly && !this.readOnly && (b = CKEDITOR.TRISTATE_DISABLED);
17842 b != CKEDITOR.TRISTATE_DISABLED && this.refresh && this.refresh()
17846 CKEDITOR.env,
17848 e = CKEDITOR.tools.addFunction(function(b) {
17857 CKEDITOR.document.getById(h).getChild(1).focus()
17861 if (c.state != CKEDITOR.TRISTATE_DISABLED)
17867 c.panel.showBlock(d.id, new CKEDITOR.dom.element(b), 4)
17877 var m = CKEDITOR.tools.addFunction(function(a, b) {
17878 a = new CKEDITOR.dom.event(a);
17884 CKEDITOR.tools.callFunction(e, b);
17891 n = CKEDITOR.tools.addFunction(function() {
17916 k = b.parent || CKEDITOR.document.getBody(),
17918 e = new CKEDITOR.ui.floatPanel(a, k, b),
17923 d.setState(CKEDITOR.TRISTATE_ON);
17930 … d.setState(d.modes && d.modes[a.mode] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED);
17945 d.setState(CKEDITOR.TRISTATE_OFF)
17982 … this._.committed || (this._.list.commit(), this._.committed = 1, CKEDITOR.ui.fire("ready", this));
17989 …a == CKEDITOR.TRISTATE_DISABLED ? b.setAttribute("aria-disabled", !0) : b.removeAttribute("aria-di…
17997 this._.state == CKEDITOR.TRISTATE_DISABLED && this.setState(this._.lastState)
18001CKEDITOR.TRISTATE_DISABLED && (this._.lastState = this._.state, this.setState(CKEDITOR.TRISTATE_DI…
18007 return new CKEDITOR.ui.richCombo(a)
18012 CKEDITOR.ui.prototype.addRichCombo = function(a, b) {
18013 this.add(a, CKEDITOR.UI_RICHCOMBO, b)
18019 u = new CKEDITOR.style(t),
18029 k[q] = new CKEDITOR.style(t, w);
18058 css: [CKEDITOR.skin.getPath("editor")].concat(y.contentsCss),
18083 CKEDITOR.START);
18084 g = c.checkBoundaryOfElement(h, CKEDITOR.END);
18089 …veToPosition(h, d ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_END) : (c.splitElemen…
18113 b.activeFilter.check(u) || this.setState(CKEDITOR.TRISTATE_DISABLED)
18124 b.moveToPosition(e, CKEDITOR.POSITION_AFTER_START);
18128 CKEDITOR.plugins.add("font", {
18137CKEDITOR.config.font_names = "Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, curs…
18138 CKEDITOR.config.font_defaultLabel = "";
18139 CKEDITOR.config.font_style = {
18151CKEDITOR.config.fontSize_sizes = "8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/2…
18152 CKEDITOR.config.fontSize_defaultLabel = "";
18153 CKEDITOR.config.fontSize_style = {
18165 CKEDITOR.plugins.add("forms", {
18168 CKEDITOR.addCss(".cke_editable form{border: 1px dotted #FF0000;padding: 2px;}\n");
18169CKEDITOR.addCss("img.cke_hidden{background-image: url(" + CKEDITOR.getUrl(this.path + "images/hidd…
18210 a.addCommand(c, new CKEDITOR.dialogCommand(c, h));
18216 CKEDITOR.dialog.add(c, e)
18228 …k && !a.plugins.image2 && e("ImageButton", "imagebutton", CKEDITOR.plugins.getPath("image") + "dia…
18278 form: CKEDITOR.TRISTATE_OFF
18284 select: CKEDITOR.TRISTATE_OFF
18287 textarea: CKEDITOR.TRISTATE_OFF
18296 button: CKEDITOR.TRISTATE_OFF
18300 checkbox: CKEDITOR.TRISTATE_OFF
18304 radio: CKEDITOR.TRISTATE_OFF
18308 imagebutton: CKEDITOR.TRISTATE_OFF
18312 textfield: CKEDITOR.TRISTATE_OFF
18316 hiddenfield: CKEDITOR.TRISTATE_OFF
18352 CKEDITOR.env.ie &&
18376 CKEDITOR.plugins.add("format", {
18382 k = new CKEDITOR.style(f["format_" + h]);
18391 css: [CKEDITOR.skin.getPath("editor")].concat(f.contentsCss),
18437 this.setState(CKEDITOR.TRISTATE_DISABLED)
18444 CKEDITOR.config.format_tags = "p;h1;h2;h3;h4;h5;h6;pre;address;div";
18445 CKEDITOR.config.format_p = {
18448 CKEDITOR.config.format_div = {
18451 CKEDITOR.config.format_pre = {
18454 CKEDITOR.config.format_address = {
18457 CKEDITOR.config.format_h1 = {
18460 CKEDITOR.config.format_h2 = {
18463 CKEDITOR.config.format_h3 = {
18466 CKEDITOR.config.format_h4 = {
18469 CKEDITOR.config.format_h5 = {
18472 CKEDITOR.config.format_h6 = {
18485 CKEDITOR.plugins.add("horizontalrule", {
18495 CKEDITOR.plugins.add("htmlwriter", {
18497 var a = new CKEDITOR.htmlWriter;
18503 CKEDITOR.htmlWriter = CKEDITOR.tools.createClass({
18504 base: CKEDITOR.htmlParser.basicWriter,
18515 var b = CKEDITOR.dtd,
18517 …for (a in CKEDITOR.tools.extend({}, b.$nonBodyContent, b.$block, b.$listItem, b.$tableContent)) th…
18560 …&& (this.forceSimpleAmpersand && (a = a.replace(/&amp;/g, "\x26")), a = CKEDITOR.tools.htmlEncodeA…
18574 … this._.indent && (this.indentation(), !this._.inPre && (b = CKEDITOR.tools.ltrim(b)));
18600 c ? CKEDITOR.tools.extend(c, a, !0) : this._.rules[b] =
18606 CKEDITOR.plugins.add("iframe", {
18609CKEDITOR.addCss("img.cke_iframe{background-image: url(" + CKEDITOR.getUrl(this.path + "images/plac…
18619 CKEDITOR.dialog.add("iframe", this.path + "dialogs/iframe.js");
18620 a.addCommand("iframe", new CKEDITOR.dialogCommand("iframe", {
18642 iframe: CKEDITOR.TRISTATE_OFF
18671 …b && (1 == d.count() && !d.getItem(0).getCustomData("retain") && CKEDITOR.tools.isEmpty(d.getItem(…
18682 CKEDITOR.env.ie && (d.hideFocus = !0, d.disabled = !0, d.removeAttribute("disabled"));
18685 c = new CKEDITOR.dom.document(c);
18689CKEDITOR.env.ie && !CKEDITOR.env.edge && c.getDocumentElement().addClass(c.$.compatMode);
18690 CKEDITOR.env.ie && !CKEDITOR.env.edge &&
18691 …b.enterMode != CKEDITOR.ENTER_P ? f("p") : CKEDITOR.env.edge && 15 > CKEDITOR.env.version && b.ent…
18692 …if (CKEDITOR.env.webkit || CKEDITOR.env.ie && 10 < CKEDITOR.env.version) c.getDocumentElement().on…
18700 …} catch (h) {}(CKEDITOR.env.gecko || CKEDITOR.env.ie && "CSS1Compat" == b.document.$.compatMode) &…
18704 if (CKEDITOR.env.ie) setTimeout(function() {
18714 CKEDITOR.env.ie && this.attachListener(c, "blur", function() {
18719 CKEDITOR.env.iOS && this.attachListener(c, "touchend", function() {
18724 CKEDITOR.env.ie && (b.document.$.title = this._.docTitle);
18725 CKEDITOR.tools.setTimeout(function() {
18748 if (CKEDITOR.env.gecko) try {
18752 …} catch (d) {} else CKEDITOR.env.ie && 11 > CKEDITOR.env.version && a.config.disableObjectResizing…
18757 if (8 <= CKEDITOR.document.$.documentMode) {
18761 for (b in CKEDITOR.dtd.$removeEmpty) f.push("html.CSS1Compat " +
18764 …} else CKEDITOR.env.gecko && (a.push("html{height:100% !important}"), a.push("img:-moz-broken{-moz…
18770 CKEDITOR.plugins.add("wysiwygarea", {
18782 …var c = "document.open();" + (CKEDITOR.env.ie ? "(" + CKEDITOR.tools.fixDomain + ")();" : "") + "d…
18783 …c = CKEDITOR.env.air ? "javascript:void(0)" : CKEDITOR.env.ie && !CKEDITOR.env.edge ? "javascript:…
18784 …d = CKEDITOR.dom.element.createFromHtml('\x3ciframe src\x3d"' + c + '" frameBorder\x3d"0"\x3e\x3c/…
18792 var e = CKEDITOR.env.ie && !CKEDITOR.env.edge || CKEDITOR.env.gecko;
18796 g && (CKEDITOR.env.ie && h && (g += ", " + h), d.setAttribute("title", g));
18798 var g = CKEDITOR.tools.getNextId(),
18799 …k = CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"' + g + '" class\x3d"cke_voice_label"\x3e…
18817 CKEDITOR.editor.prototype.addContentsCss = function(a) {
18820 CKEDITOR.tools.isArray(b) || (f.contentsCss = b ? [b] : []);
18823 l = CKEDITOR.tools.createClass({
18826 this._.frameLoadedHandler = CKEDITOR.tools.addFunction(function(a) {
18827 CKEDITOR.tools.setTimeout(m,
18832 base: CKEDITOR.editable,
18845 … g = CKEDITOR.tools.buildStyleHtml(p()).replace(/<style>/, '\x3cstyle data-cke-temp\x3d"1"\x3e');
18846 d || (g += CKEDITOR.tools.buildStyleHtml(b.config.contentsCss));
18859CKEDITOR.env.gecko && (a = a.replace(/<body/, '\x3cbody contenteditable\x3d"true" '), 2E4 > CKEDIT…
18861CKEDITOR.env.ie ? ' defer\x3d"defer" ' : "") + "\x3evar wasLoaded\x3d0;function onload(){if(!wasLo…
18862CKEDITOR.env.ie && 9 > CKEDITOR.env.version && (c += '\x3cscript id\x3d"cke_shimscrpt"\x3ewindow.p…
18863 …h && CKEDITOR.env.ie && 10 > CKEDITOR.env.version && (c += '\x3cscript id\x3d"cke_basetagscrpt"\x3…
18887CKEDITOR.env.gecko && f.enterMode != CKEDITOR.ENTER_BR && (b = b.replace(/<br>(?=\s*(:?$|<\/body>)…
18906 CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);
18907 … = b.removeCustomData("onResize")) && a.removeListener(), b.remove()) : CKEDITOR.warn("editor-dest…
18912 CKEDITOR.config.disableObjectResizing = !1;
18913 CKEDITOR.config.disableNativeTableHandles = !0;
18914 CKEDITOR.config.disableNativeSpellChecker = !0;
18927 CKEDITOR.plugins.add("image", {
18931 CKEDITOR.dialog.add("image", this.path + "dialogs/image.js");
18933CKEDITOR.dialog.isTabEnabled(b, "image", "advanced") && (a = "img[alt,dir,id,lang,longdesc,!src,ti…
18934 b.addCommand("image", new CKEDITOR.dialogCommand("image", {
18961 image: CKEDITOR.TRISTATE_OFF
18978 …(c = f(c), this.setState(c == a ? CKEDITOR.TRISTATE_ON : "right" == a || "left" == a ? CKEDITOR.TR…
18986 CKEDITOR.config.image_removeLinkByEmptyURL = !0;
18994 this.setState(CKEDITOR.tools.search(b, p) ? p : k)
19007 var k = CKEDITOR.TRISTATE_DISABLED,
19008 p = CKEDITOR.TRISTATE_OFF;
19009 CKEDITOR.plugins.add("indent", {
19011 var b = CKEDITOR.plugins.indent.genericDefinition;
19030 for (var n = new CKEDITOR.dom.walker(f), c; c = n.next();)
19031 if (c.type == CKEDITOR.NODE_ELEMENT)
19033 … c.getDirection()) f.setStartAfter(c), n = new CKEDITOR.dom.walker(f);
19046 CKEDITOR.plugins.indent = {
19055 this.enterBr = a.config.enterMode == CKEDITOR.ENTER_BR;
19058 this.indentKey = e ? 9 : CKEDITOR.SHIFT + 9;
19067 …hot"), b.execJob(a, c) && (d.data.done = !0), a.fire("unlockSnapshot"), CKEDITOR.dom.element.clear…
19077 CKEDITOR.plugins.indent.genericDefinition.prototype = {
19081 CKEDITOR.plugins.indent.specificDefinition.prototype = {
19105 d && (d = d[1], a = CKEDITOR.tools.indexOf(c, d) + 1);
19109 … b.$.className = CKEDITOR.tools.ltrim(b.$.className.replace(this.classNameRegex, ""));
19124 CKEDITOR.dom.element.setMarker(this.database, b, "indent_processed", 1)
19131 var h = CKEDITOR.dtd.$listItem,
19132 p = CKEDITOR.dtd.$list,
19133 k = CKEDITOR.TRISTATE_DISABLED,
19134 n = CKEDITOR.TRISTATE_OFF;
19135 CKEDITOR.plugins.add("indentblock", {
19179 …return this.isIndent ? n : e ? CKEDITOR[0 >= (parseInt(e.getStyle(m(e)), 10) || 0) ? "TRISTATE_DIS…
19190 …de, b.enforceRealBlocks = !0, b.enlargeBr = a != CKEDITOR.ENTER_BR; c = b.getNextParagraph(a == CK…
19196 var a = CKEDITOR.plugins.indent,
19202 CKEDITOR.tools.extend(c.prototype, a.specificDefinition.prototype, {
19236 …} for (var e = k.isIndent ? 1 : -1, a = d[0], d = d[d.length - 1], h = CKEDITOR.plugins.list.listT…
19243 } h[a].parent = new CKEDITOR.dom.element(g.getName(), g.getDocument())
19245 … e = CKEDITOR.plugins.list.arrayToList(h, q, null, f.config.enterMode, b.getDirection());
19256 …(l = l.getNext()) && l.is && l.getName() in p;) CKEDITOR.env.needsNbspFiller && !b.getFirst(x) && …
19264 (b.type != CKEDITOR.NODE_ELEMENT || !p[b.getName()]);) {
19271 b || (b = c.startPath().contains(p)) && c.setEndAt(b, CKEDITOR.POSITION_BEFORE_END);
19274 …d && d.type == CKEDITOR.NODE_ELEMENT && d.getName() in p && (c.setStartAt(d, CKEDITOR.POSITION_AFT…
19276 …b && c.startContainer.type == CKEDITOR.NODE_ELEMENT && c.startContainer.getName() in p && (d = new…
19278 …b && c.endContainer.type == CKEDITOR.NODE_ELEMENT && c.endContainer.getName() in p && (d = new CKE…
19285 return f.type == CKEDITOR.NODE_ELEMENT && f.is("li")
19291 var y = CKEDITOR.dom.walker.whitespaces(!0),
19292 z = CKEDITOR.dom.walker.bookmark(!1, !0),
19293 u = CKEDITOR.TRISTATE_DISABLED,
19294 v = CKEDITOR.TRISTATE_OFF;
19295 CKEDITOR.plugins.add("indentlist", {
19306 …!m || this.isIndent && CKEDITOR.plugins.indentList.firstItemInPath(this.context, c, m) || (f.execC…
19312 b = CKEDITOR.plugins.indentList.firstItemInPath(this.context, c, g);
19318 exec: CKEDITOR.tools.bind(w, this)
19321 var k = CKEDITOR.plugins.indent;
19326 CKEDITOR.tools.extend(g.prototype, k.specificDefinition.prototype, {
19334 CKEDITOR.plugins.indentList = {};
19335 CKEDITOR.plugins.indentList.firstItemInPath = function(f, g, k) {
19341 CKEDITOR.plugins.add("smiley", {
19345 a.addCommand("smiley", new CKEDITOR.dialogCommand("smiley", {
19354 CKEDITOR.dialog.add("smiley", this.path + "dialogs/smiley.js")
19357CKEDITOR.config.smiley_images = "regular_smile.png sad_smile.png wink_smile.png teeth_smile.png co…
19358CKEDITOR.config.smiley_descriptions = "smiley;sad;wink;laugh;frown;cheeky;blush;surprise;indecisio…
19384 CKEDITOR.ENTER_P ? "p" : "div";
19409 a.config.enterMode == CKEDITOR.ENTER_BR && (this.allowedContent.div = !0)
19417 for (var f = new CKEDITOR.dom.walker(b), d; d = f.next();)
19418 if (d.type == CKEDITOR.NODE_ELEMENT)
19419 …if (!d.equals(a.data.node) && d.getDirection()) b.setStartAfter(d), f = new CKEDITOR.dom.walker(b);
19434 …r (h = d[n].createIterator(), h.enlargeBr = b != CKEDITOR.ENTER_BR; g = h.getNextParagraph(b == CK…
19442 …var m = e && (g.$.className = CKEDITOR.tools.ltrim(g.$.className.replace(this.cssClassRegex, ""))),
19443 … r = this.state == CKEDITOR.TRISTATE_OFF && (!k || q(g, !0) != this.value);
19456CKEDITOR.TRISTATE_OFF) : !d && f ? this.setState(q(b, this.editor.config.useComputedState) == this…
19459 CKEDITOR.plugins.add("justify", {
19492 CKEDITOR.plugins.add("menubutton", {
19498 …a.state !== CKEDITOR.TRISTATE_DISABLED && (a.on && b ? b.hide() : (a.previousState = a.state, b ||…
19505 }), b.onHide = CKEDITOR.tools.bind(function() {
19507 … this.setState(!b || b[c.mode] ? a.previousState : CKEDITOR.TRISTATE_DISABLED);
19510 …this.onMenu && b.addListener(this.onMenu)), this.setState(CKEDITOR.TRISTATE_ON), a.on = 1, setTime…
19511 b.show(CKEDITOR.document.getById(a.id), 4)
19514 CKEDITOR.ui.menuButton = CKEDITOR.tools.createClass({
19515 base: CKEDITOR.ui.button,
19525 return new CKEDITOR.ui.menuButton(c)
19532 d.ui.addHandler(CKEDITOR.UI_MENUBUTTON, CKEDITOR.ui.menuButton.handler)
19535 CKEDITOR.UI_MENUBUTTON = "menubutton";
19537 CKEDITOR.plugins.add("language", {
19554 this.setState(c.getCurrentLangElement(a) ? CKEDITOR.TRISTATE_ON :
19555 CKEDITOR.TRISTATE_OFF)
19568 }, e[k].style = new CKEDITOR.style({
19578 state: CKEDITOR.TRISTATE_DISABLED,
19588 a.ui.add("Language", CKEDITOR.UI_MENUBUTTON, {
19598 for (f in e) b[f] = CKEDITOR.TRISTATE_OFF;
19599 b.language_remove = d ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
19601 CKEDITOR.TRISTATE_ON);
19651 CKEDITOR.plugins.add("link", {
19657 …var b = "background:url(" + CKEDITOR.getUrl(this.path + "images" + (CKEDITOR.env.hidpi ? "/hidpi" …
19659 CKEDITOR.addCss(c("ltr") + c("rtl"))
19663CKEDITOR.dialog.isTabEnabled(c, "link", "advanced") && (b = b.replace("]", ",accesskey,charset,dir…
19664 CKEDITOR.dialog.isTabEnabled(c, "link", "target") &&
19666 c.addCommand("link", new CKEDITOR.dialogCommand("link", {
19670 c.addCommand("anchor", new CKEDITOR.dialogCommand("anchor", {
19674 c.addCommand("unlink", new CKEDITOR.unlinkCommand);
19675 c.addCommand("removeAnchor", new CKEDITOR.removeAnchorCommand);
19676 c.setKeystroke(CKEDITOR.CTRL + 76, "link");
19691 CKEDITOR.dialog.add("link", this.path + "dialogs/link.js");
19692 CKEDITOR.dialog.add("anchor", this.path + "dialogs/anchor.js");
19699 …"anchor", a.data.link = b) : CKEDITOR.plugins.link.tryRestoreFakeAnchor(c, b) && (a.data.dialog = …
19735 a = CKEDITOR.plugins.link.tryRestoreFakeAnchor(c, a);
19736 if (!a && !(a = CKEDITOR.plugins.link.getSelectedLink(c))) return null;
19739 link: CKEDITOR.TRISTATE_OFF,
19740 unlink: CKEDITOR.TRISTATE_OFF
19742 … a && a.hasAttribute("name") && (b.anchor = b.removeAnchor = CKEDITOR.TRISTATE_OFF);
19758 …if ("a" == b && (CKEDITOR.plugins.link.tryRestoreFakeAnchor(c, a) || a.getAttribute("name") && (!a…
19787 CKEDITOR.plugins.link = {
19796 if (g = a.getRanges()[d], g.shrink(CKEDITOR.SHRINK_ELEMENT, !0, {
19873 CKEDITOR.tools.isEmpty(a) || (g.advanced = a)
19883 f = b.url && CKEDITOR.tools.trim(b.url.url) || "";
19937 b.advanced && CKEDITOR.tools.extend(l, m);
19941 removed: CKEDITOR.tools.objectKeys(l)
19960 CKEDITOR.unlinkCommand = function() {};
19961 CKEDITOR.unlinkCommand.prototype = {
19963 if (CKEDITOR.env.ie) {
19969 a = new CKEDITOR.style({
19971 type: CKEDITOR.STYLE_INLINE,
19979 …tribute("href") && a.getChildCount() ? this.setState(CKEDITOR.TRISTATE_OFF) : this.setState(CKEDIT…
19986 CKEDITOR.removeAnchorCommand = function() {};
19987 CKEDITOR.removeAnchorCommand.prototype = {
19993 … (d.getChildCount() ? d.is("a") : CKEDITOR.plugins.link.tryRestoreFakeAnchor(c, d))) d.remove(1);
19994 …else if (d = CKEDITOR.plugins.link.getSelectedLink(c)) d.hasAttribute("href") ? (d.removeAttribute…
20002 CKEDITOR.tools.extend(CKEDITOR.config, {
20010 …s && a.isBlockBoundary() || !(p = m.root[c ? "getPrevious" : "getNext"](CKEDITOR.dom.walker.invisi…
20014 …for (var f = CKEDITOR.plugins.list.listToArray(m.root, e), g = [], k = 0; k < m.contents.length; k…
20016 …nt("li", !0)) && !h.getCustomData("list_item_processed") && (g.push(h), CKEDITOR.dom.element.setMa…
20026 …} var d = CKEDITOR.plugins.list.arrayToList(f, e, null, b.config.enterMode, m.root.getAttribute("d…
20049 …c && c.type == CKEDITOR.NODE_ELEMENT && c.is(b.getName()) && (E(b, c, null, !e), b.remove(), b = c)
20056 …return b.type == CKEDITOR.NODE_ELEMENT && (b.getName() in CKEDITOR.dtd.$block || b.getName() in CK…
20057 CKEDITOR.dtd[b.getName()]["#"]
20062 e.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);
20066 g = new CKEDITOR.dom.elementPath(m.startContainer),
20069 h = new CKEDITOR.dom.elementPath(e.startContainer),
20070 d = h.contains(CKEDITOR.dtd.$listItem),
20071 h = h.contains(CKEDITOR.dtd.$list);
20073 (k = c.getLast()) && k.type == CKEDITOR.NODE_ELEMENT &&
20082 e.moveToPosition(c, CKEDITOR.POSITION_BEFORE_START);
20087 e.setEndAt(c, CKEDITOR.POSITION_BEFORE_END);
20088 e = new CKEDITOR.dom.walker(e);
20092 … (e = e.next()) && e.type == CKEDITOR.NODE_ELEMENT && e.getName() in CKEDITOR.dtd.$list && F(e);
20099 … return (b = b.getLast(u)) && b.type == CKEDITOR.NODE_ELEMENT && b.getName() in v ? b : null
20105 K = CKEDITOR.dom.walker.whitespaces(),
20106 H = CKEDITOR.dom.walker.bookmark(),
20110 z = CKEDITOR.dom.walker.bogus();
20111 CKEDITOR.plugins.list = {
20118 …h.type == CKEDITOR.NODE_ELEMENT && h.getName() in CKEDITOR.dtd.$list && CKEDITOR.plugins.list.list…
20127 m && CKEDITOR.dom.element.setMarker(m, h, "listarray_index", e.length);
20129 …unt(), l; a < p; a++) l = h.getChild(a), l.type == CKEDITOR.NODE_ELEMENT && v[l.getName()] ? CKEDI…
20137 …ocument(), h = new CKEDITOR.dom.documentFragment(k), d = null, a = e, p = Math.max(b[e].indent, 0)…
20148 …ement.getDirection(1), a = CKEDITOR.plugins.list.arrayToList(b, null, a, c, r != q ? q : null), !l…
20151 …(!1, !0), q != g.getDirection(1) && l.setAttribute("dir", q)) : l = new CKEDITOR.dom.documentFragm…
20156 … A = l.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT && (c != CKEDITOR.ENTER_BR || d || z || D),
20161 else if (w.type == CKEDITOR.NODE_ELEMENT && w.isBlockBoundary()) {
20173 … l.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT && a != b.length - 1 && (CKEDITOR.env.needsBrFiller &&
20174 …)) && q.type == CKEDITOR.NODE_ELEMENT && q.is("br") && q.remove(), (q = l.getLast(u)) && q.type ==…
20186 …if (b.type == CKEDITOR.NODE_ELEMENT && (CKEDITOR.dom.element.clearMarkers(m, b), b.getName() in CK…
20200 J = CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT);
20207 if (this.state == CKEDITOR.TRISTATE_OFF) {
20211 … && g.getEnclosedNode()) && m.is && this.type == m.getName() && this.setState(CKEDITOR.TRISTATE_ON)
20213CKEDITOR.ENTER_BR ? f.appendBogus() : c[0].fixBlock(1, m.enterMode == CKEDITOR.ENTER_P ? "p" : "di…
20220 …a.type == CKEDITOR.NODE_ELEMENT && "td" == a.getName() && g.setStartAt(d.startNode, CKEDITOR.POSIT…
20221 …p.type == CKEDITOR.NODE_ELEMENT && "td" == p.getName() && g.setEndAt(d.endNode, CKEDITOR.POSITION_…
20224 this.state == CKEDITOR.TRISTATE_OFF; d = g.getNextParagraph();)
20226 CKEDITOR.dom.element.setMarker(k, d, "list_block", 1);
20233 … }, f.push(a), CKEDITOR.dom.element.setMarker(k, q, "list_group_object", a));
20240 … }, CKEDITOR.dom.element.setMarker(k, p, "list_group_object_" + h, a), f.push(a)))
20244 if (a = f.shift(), this.state == CKEDITOR.TRISTATE_OFF)
20250 p = CKEDITOR.plugins.list.listToArray(h.root, a);
20252 …nt("li", !0)) && !n.getCustomData("list_item_processed") && (l.push(n), CKEDITOR.dom.element.setMa…
20262 a = CKEDITOR.plugins.list.arrayToList(p, a, null, c.config.enterMode);
20303 … else this.state == CKEDITOR.TRISTATE_ON && v[a.root.getName()] && I.call(this, b, a, k);
20305 CKEDITOR.dom.element.clearAllMarkers(k);
20312 …ins(e) ? this.setState(e.is(this.type) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF) : this.setS…
20315 CKEDITOR.plugins.add("list", {
20341 d = new CKEDITOR.dom.walker(f.clone());
20347 return !(b && a.type == CKEDITOR.NODE_ELEMENT && a.is("table"))
20352CKEDITOR.START) && (a = a.getParent()) && a.is("li") && (a = A(a)) ? (c = a, a = a.getPrevious(u),…
20353 …, c = a, e.moveToElementEditEnd(c), e.moveToPosition(e.endPath().block, CKEDITOR.POSITION_BEFORE_E…
20357 …p && f.checkBoundaryOfElement(p, CKEDITOR.START) && (c = p.getFirst(u), f.checkBoundaryOfElement(c…
20360 … if (d.range.setEndAt(h, CKEDITOR.POSITION_BEFORE_END), k = (h = c.getLast(u)) &&
20361 …()) && a.type == CKEDITOR.NODE_ELEMENT && a.getName() in v && a.equals(h) ? (g = 1, a = d.next()) …
20365 … for (c = e.startContainer; c.is(CKEDITOR.dtd.$inline);) p = c, c = c.getParent();
20366 p && e.moveToPosition(p, CKEDITOR.POSITION_AFTER_END)
20368 …Position(e.endPath().block, CKEDITOR.POSITION_BEFORE_END), f.endPath().block && f.moveToPosition(f…
20372 …} else d.range.setEndAt(h, CKEDITOR.POSITION_BEFORE_END), (a = d.next()) && a.type == CKEDITOR.NOD…
20383 CKEDITOR.plugins.liststyle = {
20388 b = new CKEDITOR.dialogCommand("numberedListStyle", {
20397 CKEDITOR.dialog.add("numberedListStyle", this.path + "dialogs/liststyle.js");
20398 b = new CKEDITOR.dialogCommand("bulletedListStyle", {
20407 CKEDITOR.dialog.add("bulletedListStyle", this.path + "dialogs/liststyle.js");
20426 numberedlist: CKEDITOR.TRISTATE_OFF
20429 bulletedlist: CKEDITOR.TRISTATE_OFF
20438 CKEDITOR.plugins.add("liststyle", CKEDITOR.plugins.liststyle)
20474 return b && b.type == CKEDITOR.NODE_TEXT && !E(b) || n(b) && !u(b) && !A(a, b)
20495 …b = CKEDITOR.getUrl(this.path + "images/" + (t.hidpi ? "hidpi/" : "") + "icon" + (a.rtl ? "-rtl" :…
20544 for (var n in m) m[n] = CKEDITOR.tools.cssLength(m[n]);
20567 t.ie || a.enterMode == CKEDITOR.ENTER_BR || a.hotNode.scrollIntoView();
20577 var b = new CKEDITOR.dom.range(a.doc),
20580 …t.ie && a.enterMode == CKEDITOR.ENTER_BR ? f = a.doc.createText(J) : (f = (f = P(a.element, !0)) &…
20583 b.moveToPosition(f, CKEDITOR.POSITION_AFTER_START);
20608 t.ie || a.enterMode == CKEDITOR.ENTER_BR || a.hotNode.scrollIntoView();
20628 if (!c || c.type != CKEDITOR.NODE_ELEMENT || !c.$) return !1;
20635 a.type == CKEDITOR.NODE_ELEMENT && a.$
20714 if (g && g.type == CKEDITOR.NODE_TEXT) return null;
20804 CKEDITOR.plugins.add("magicline", {
20930 var v = CKEDITOR.tools.extend,
20931 R = CKEDITOR.dom.element,
20933 t = CKEDITOR.env,
20934 ja = CKEDITOR.env.ie && 9 > CKEDITOR.env.version,
20935 B = CKEDITOR.dtd,
20953 K[CKEDITOR.ENTER_BR] = "br";
20954 K[CKEDITOR.ENTER_P] = "p";
20955 K[CKEDITOR.ENTER_DIV] = "div";
20968 return b && b.nodeType ? new CKEDITOR.dom.element(b) : null
20977 …return !k || k.type != CKEDITOR.NODE_ELEMENT || !k.$ || t.ie && 9 > t.version && !c.boundary.equal…
20980 E = CKEDITOR.dom.walker.whitespaces(),
20981 F = CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),
21018 …return !(b && b.type == CKEDITOR.NODE_TEXT || F(b) || u(b) || A(a, b) || b.type == CKEDITOR.NODE_E…
21033 CKEDITOR.config.magicline_keystrokePrevious = CKEDITOR.CTRL + CKEDITOR.SHIFT + 51;
21034 CKEDITOR.config.magicline_keystrokeNext = CKEDITOR.CTRL + CKEDITOR.SHIFT + 52;
21037 if (!a || a.type != CKEDITOR.NODE_ELEMENT || "form" != a.getName()) return [];
21040 c && (c = new CKEDITOR.dom.element(c), e.push([c, c.nextSibling]), c.remove())
21046 if (a && a.type == CKEDITOR.NODE_ELEMENT && "form" == a.getName() && 0 < e.length)
21076 var e = CKEDITOR.instances,
21086 CKEDITOR.plugins.add("maximize", {
21092 if (a.elementMode != CKEDITOR.ELEMENT_MODE_INLINE) {
21094 b = CKEDITOR.document,
21096 l, m, p, n = CKEDITOR.TRISTATE_OFF;
21099 wysiwyg: !CKEDITOR.env.iOS,
21100 source: !CKEDITOR.env.iOS
21106 … return a.type == CKEDITOR.NODE_ELEMENT && a.hasClass("cke_inner")
21115 l = !CKEDITOR.env.ie && [k.selectionStart, k.selectionEnd];
21118 if (this.state == CKEDITOR.TRISTATE_OFF) {
21125 overflow: CKEDITOR.env.webkit ? "" : "hidden",
21130 … !CKEDITOR.env.gecko && b.getDocumentElement().setStyle("position", "fixed");
21131CKEDITOR.env.gecko && CKEDITOR.env.quirks || b.getBody().setStyles(g);
21132 CKEDITOR.env.ie ? setTimeout(function() {
21135 … h.setStyle("position", CKEDITOR.env.gecko && CKEDITOR.env.quirks ? "fixed" : "absolute");
21149 CKEDITOR.env.gecko && v(a)
21150 } else if (this.state == CKEDITOR.TRISTATE_ON) {
21154 CKEDITOR.env.ie ? setTimeout(function() {
21159CKEDITOR.env.webkit && (h.setStyle("display", "inline"), setTimeout(function() {
21169 …= this.uiItems[0]) g = this.state == CKEDITOR.TRISTATE_OFF ? f.maximize.maximize : f.maximize.mini…
21171 …"wysiwyg" == a.mode ? l ? (CKEDITOR.env.gecko && v(a), a.getSelection().selectRanges(l), (k = a.ge…
21186 CKEDITOR.TRISTATE_DISABLED ? CKEDITOR.TRISTATE_DISABLED : n)
21192 CKEDITOR.plugins.add("newpage", {
21233 CKEDITOR.plugins.add("pagebreak", {
21236 …var a = ("background:url(" + CKEDITOR.getUrl(this.path + "images/pagebreak.gif") + ") no-repeat ce…
21238 CKEDITOR.addCss("div.cke_pagebreak{" + a + "}")
21241 …a.blockless || (a.addCommand("pagebreak", CKEDITOR.plugins.pagebreakCmd), a.ui.addButton && a.ui.a…
21245 }), CKEDITOR.env.webkit && a.on("contentDom", function() {
21254 CKEDITOR.tools.extend(f.attributes,
21268 …var d = CKEDITOR.htmlParser.fragment.fromHtml('\x3cspan style\x3d"display: none;"\x3e\x26nbsp;\x3c…
21296 CKEDITOR.plugins.pagebreakCmd = {
21324 …e = CKEDITOR.tools.keystrokeToString(c.common.keyboard, a.getCommandKeystroke(CKEDITOR.env.ie ? a.…
21325 ….notification ? b.notification : !b || !b.from || "keystrokeHandler" === b.from && CKEDITOR.env.ie,
21333 CKEDITOR.plugins.add("pastetext", {
21336 …var b = CKEDITOR.env.safari ? CKEDITOR.CTRL + CKEDITOR.ALT + CKEDITOR.SHIFT + 86 : CKEDITOR.CTRL +…
21339 CKEDITOR.plugins.clipboard.addPasteButton(a, "PasteText", {
21355 var h = CKEDITOR.cleanWord;
21356 …h ? e() : (a = CKEDITOR.getUrl(a.config.pasteFromWordCleanupFile || f + "filter/default.js"), CKED…
21359 CKEDITOR.plugins.add("pastefromword", {
21363 var b = CKEDITOR.plugins.pastefromword && CKEDITOR.plugins.pastefromword.images,
21366 0 !== b.length && (CKEDITOR.tools.array.forEach(b, function(a) {
21367 …d.push(a.type ? "data:" + a.type + ";base64," + CKEDITOR.tools.convertBytesToBase64(CKEDITOR.tools…
21386 CKEDITOR.plugins.clipboard.addPasteButton(a, "PasteFromWord", {
21393 …c = CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ? b.dataTransfer.getData("text/html", !0…
21394 …d = CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ? b.dataTransfer.getData("text/rtf") : n…
21409 …nup || e || confirm(a.lang.pastefromword.confirmCleanup)) g.dataValue = CKEDITOR.cleanWord(g.dataV…
21410 … g.dataValue, !0 === a.config.forcePasteAsPlainText ? b.type = "text" : CKEDITOR.plugins.clipboard…
21416 … if (CKEDITOR.plugins.clipboard.isCustomDataTypesSupported && m) a.on("afterPasteFromWord", f)
21438 …3e' + f + "\x3ctitle\x3e" + a.lang.preview.preview + "\x3c/title\x3e" + CKEDITOR.tools.buildStyleH…
21454CKEDITOR.env.ie && (window._cke_htmlToLoad = a.dataValue, e = "javascript:void( (function(){docume…
21455 …("(" + CKEDITOR.tools.fixDomain + ")();").replace(/\/\/.*?\n/g, "").replace(/parent\./g, "window.o…
21456CKEDITOR.env.gecko && (window._cke_htmlToLoad = a.dataValue, c = CKEDITOR.getUrl(h + "preview.html…
21458 CKEDITOR.env.ie && c && (c.location =
21460CKEDITOR.env.ie || CKEDITOR.env.gecko || (e = c.document, e.open(), e.write(a.dataValue), e.close(…
21464 CKEDITOR.plugins.add("preview", {
21466 …a.elementMode != CKEDITOR.ELEMENT_MODE_INLINE && (h = this.path, a.addCommand("preview", k), a.ui.…
21474 CKEDITOR.plugins.add("print", {
21476 …a.elementMode != CKEDITOR.ELEMENT_MODE_INLINE && (a.addCommand("print", CKEDITOR.plugins.print), a…
21483 CKEDITOR.plugins.print = {
21485 CKEDITOR.env.gecko ? a.window.$.print() : a.document.$.execCommand("Print")
21493 CKEDITOR.plugins.add("removeformat", {
21495 a.addCommand("removeFormat", CKEDITOR.plugins.removeformat.commands.removeformat);
21503 CKEDITOR.plugins.removeformat = {
21507 …a._.removeAttributes = a.config.removeFormatAttributes.split(",")), f = CKEDITOR.plugins.removefor…
21508 return a.type == CKEDITOR.NODE_ELEMENT
21510 c.collapsed || c.enlarge(CKEDITOR.ENLARGE_ELEMENT);
21520 … for (k(d), b = b.getNextSourceNode(!0, CKEDITOR.NODE_ELEMENT); b && !b.equals(d);)
21522 if (b.getPosition(d) & CKEDITOR.POSITION_CONTAINS) break;
21524 …} else k = b.getNextSourceNode(!1, CKEDITOR.NODE_ELEMENT), "img" == b.getName() && b.data("cke-rea…
21539 CKEDITOR.editor.prototype.addRemoveFormatFilter = function(a) {
21543CKEDITOR.config.removeFormatTags = "b,big,cite,code,del,dfn,em,font,i,ins,kbd,q,s,samp,small,span,…
21544 CKEDITOR.config.removeFormatAttributes = "class,style,lang,width,height,align,hspace,valign";
21560 CKEDITOR.plugins.add("save", {
21562 …a.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && (a.addCommand("save", b).startDisabled = !a.elem…
21571 CKEDITOR.plugins.add("selectall", {
21580 …if (b.is("textarea")) a = b.$, CKEDITOR.env.ie && a.createTextRange ? a.createTextRange().execComm…
21613 …var c = this.state != CKEDITOR.TRISTATE_ON || a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE && !a.…
21618 CKEDITOR.plugins.add("showblocks", {
21621 c, b, e, f, k = CKEDITOR.getUrl(this.path),
21622 l = !(CKEDITOR.env.ie &&
21623 9 > CKEDITOR.env.version),
21626 … + g + h, b += ".cke_show_blocks " + d + g + "{background-image:url(" + CKEDITOR.getUrl(k + "image…
21627CKEDITOR.addCss((c + "{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px}").conca…
21629 …l || CKEDITOR.addCss(".cke_show_blocks [contenteditable\x3dfalse],.cke_show_blocks .cke_show_block…
21638 a.config.startupOutlineBlocks && b.setState(CKEDITOR.TRISTATE_ON);
21645 b.state != CKEDITOR.TRISTATE_DISABLED && b.refresh(a)
21647 … a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE && (a.on("focus", c), a.on("blur", c));
21649 b.state != CKEDITOR.TRISTATE_DISABLED && b.refresh(a)
21666 var b = this.state == CKEDITOR.TRISTATE_ON ? "attachClass" : "removeClass";
21671 CKEDITOR.plugins.add("showborders", {
21677 …a = (CKEDITOR.env.ie6Compat ? [".%1 table.%2,", ".%1 table.%2 td, .%1 table.%2 th", "{", "border :…
21679 CKEDITOR.addCss(a)
21684 !1 !== a.config.startupShowBorders && b.setState(CKEDITOR.TRISTATE_ON);
21686 b.state != CKEDITOR.TRISTATE_DISABLED && b.refresh(a)
21689 b.state != CKEDITOR.TRISTATE_DISABLED && b.refresh(a)
21693 …a.getCommand("showborders").state == CKEDITOR.TRISTATE_ON && d.is("table") && (!d.hasAttribute("bo…
21723 CKEDITOR.on("dialogDefinition", function(a) {
21726 …data.definition, b = a.getContents("info").get("txtBorder"), b.commit = CKEDITOR.tools.override(b.…
21732 … = (a = a.getContents("advanced")) && a.get("advCSSClasses")) a.setup = CKEDITOR.tools.override(a.…
21738 }), a.commit = CKEDITOR.tools.override(a.commit, function(a) {
21747 CKEDITOR.plugins.add("sourcearea", {
21750 var a = e && this.equals(CKEDITOR.document.getActive());
21757 if (a.elementMode != CKEDITOR.ELEMENT_MODE_INLINE) {
21758 var f = CKEDITOR.plugins.sourcearea;
21761 b.setStyles(CKEDITOR.tools.extend({
21762 width: CKEDITOR.env.ie7Compat ?
21768 … }, CKEDITOR.tools.cssVendorPrefix("tab-size", a.config.sourceAreaTabSize || 4)));
21774CKEDITOR.env.ie && (b.attachListener(a, "resize", d, b), b.attachListener(CKEDITOR.document.getWin…
21786 … a.getCommand("source").setState("source" == a.mode ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF)
21788 var e = CKEDITOR.env.ie && 9 == CKEDITOR.env.version
21792 var c = CKEDITOR.tools.createClass({
21793 base: CKEDITOR.editable,
21817 CKEDITOR.plugins.sourcearea = {
21828 c.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED);
21835 CKEDITOR.plugins.add("specialchar", {
21899 CKEDITOR.dialog.add("specialchar", this.path + "dialogs/specialchar.js");
21904CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path + "dialogs/lang/" + b + ".js"), function() {
21905 CKEDITOR.tools.extend(a.lang.specialchar, c.langEntries[b]);
21921CKEDITOR.config.specialChars = "! \x26quot; # $ % \x26amp; ' ( ) * + - . / 0 1 2 3 4 5 6 7 8 9 : ;…
21922 CKEDITOR.plugins.add("scayt", {
21927 CKEDITOR.plugins.scayt.onLoadTimestamp = (new Date).getTime();
21928 …"moono-lisa" == (CKEDITOR.skinName || a.config.skin) && CKEDITOR.document.appendStyleSheet(this.pa…
21929 CKEDITOR.document.appendStyleSheet(this.path + "dialogs/dialog.css")
21933 d = CKEDITOR.plugins.scayt;
21937 CKEDITOR.dialog.add(this.dialogName,
21938 CKEDITOR.getUrl(this.path + "dialogs/options.js"));
21941 e = CKEDITOR.env;
21942 a.ui.add("Scayt", CKEDITOR.UI_MENUBUTTON, {
21951 … a.scayt && (b = d.state.scayt[a.name] ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF);
21965 scaytToggle: CKEDITOR.TRISTATE_OFF,
21966 scaytOptions: b ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
21967 scaytLangs: b ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
21968 scaytDict: b ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
21969 scaytAbout: b ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
21970 WSC: a.plugins.wsc ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
21975 …b && !CKEDITOR.plugins.scayt.isNewUdSupported(b) && (delete c.scaytDict, a.config.scayt_uiTabs[2] …
21984 … }), a.contextMenu._.onHide = CKEDITOR.tools.override(a.contextMenu._.onHide, function(b) {
21994 d = CKEDITOR.plugins.scayt;
22064 var b = CKEDITOR.plugins.scayt,
22066 …c = a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? a.container.getText() : a.document.getBody().g…
22073 var c = CKEDITOR.plugins.scayt,
22074 d = a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE,
22084 CKEDITOR.plugins.scayt && !a.scayt && setTimeout(e, 0);
22085 … b = CKEDITOR.plugins.scayt && CKEDITOR.plugins.scayt.state.scayt[a.name] && a.scayt;
22116 …&& "wysiwyg" == a.mode ? d && (c.destroy(a), a.fire("scaytButtonState", CKEDITOR.TRISTATE_DISABLED…
22127 … if (b = a.scayt) c.destroy(a), a.fire("scaytButtonState", CKEDITOR.TRISTATE_DISABLED);
22138 …cayt[b.editor.name] && (c.createScayt(a), b.editor.fire("scaytButtonState", CKEDITOR.TRISTATE_ON)))
22143 (a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE || a.plugins.divarea) && g()
22177 var c = CKEDITOR.plugins.scayt;
22197 CKEDITOR.tools.search(a.config.scayt_uiTabs, function(a) {
22201 …null === CKEDITOR.tools.search(b, !1) ? a.config.scayt_uiTabs = d : a.config.scayt_uiTabs = [1, 1,…
22212 …"boolean" !== typeof CKEDITOR.config.scayt_handleCheckDirty && (CKEDITOR.config.scayt_handleCheckD…
22213 …"boolean" !== typeof CKEDITOR.config.scayt_handleUndoRedo && (CKEDITOR.config.scayt_handleUndoRedo…
22214CKEDITOR.config.scayt_handleUndoRedo = CKEDITOR.plugins.undo ? CKEDITOR.config.scayt_handleUndoRed…
22222 var c = CKEDITOR.tools.isArray(a.config.scayt_disableOptionsStorage) ?
22226 g = CKEDITOR.tools.search,
22227 k = CKEDITOR.tools.indexOf;
22245 var c = CKEDITOR.plugins.scayt,
22285 d = CKEDITOR.plugins.scayt;
22368 state: CKEDITOR.TRISTATE_DISABLED,
22400 … var l = "scayt_suggest_" + CKEDITOR.plugins.scayt.suggestions[d].replace(" ", "_");
22401 … a.addCommand(l, this.createCommand(CKEDITOR.plugins.scayt.suggestions[d], f, g));
22407 }), b[l] = CKEDITOR.TRISTATE_OFF) : (a.addMenuItem(l, {
22412 …}), e[l] = CKEDITOR.TRISTATE_OFF, "on" === a.config.scayt_moreSuggestions && (a.addMenuItem("scayt…
22419 }), b.scayt_moresuggest = CKEDITOR.TRISTATE_OFF))
22421 …+) l = "grayt_suggest_" + CKEDITOR.plugins.scayt.suggestions[d].replace(" ", "_"), a.addCommand(l,…
22426 }), b[l] = CKEDITOR.TRISTATE_OFF;
22427 … else b.no_scayt_suggest = CKEDITOR.TRISTATE_DISABLED, a.addCommand("no_scayt_suggest", {
22449 }), e = this.buildSuggestionMenuItems(a, CKEDITOR.plugins.scayt.suggestions,
22454 }), e = this.buildSuggestionMenuItems(a, CKEDITOR.plugins.scayt.suggestions, l));
22457CKEDITOR.tools.indexOf(f, h.replace("scayt_", "")) && "all" != a.config.scayt_contextCommands || m…
22483 CKEDITOR.plugins.scayt = {
22487 var a = CKEDITOR.version.match(/^\d(\.\d*)*/),
22547 d = CKEDITOR.plugins.scayt;
22595 CKEDITOR.plugins.scayt.suggestions = d
22610 a.fire("scaytButtonState", a.readOnly ? CKEDITOR.TRISTATE_DISABLED :
22611 CKEDITOR.TRISTATE_ON)
22618 a.fire("scaytButtonState", CKEDITOR.TRISTATE_OFF)
22622 CKEDITOR.fireOnce("scaytReady");
22625 …CAYT.CKSCAYT ? (d = a.config.scayt_srcUrl + "?" + this.onLoadTimestamp, CKEDITOR.scriptLoader.load…
22631 CKEDITOR.on("dialogDefinition", function(a) {
22636 var b = CKEDITOR.plugins.scayt,
22641 var b = CKEDITOR.plugins.scayt,
22651 var b = CKEDITOR.plugins.scayt,
22670 var b = CKEDITOR.plugins.scayt,
22677 CKEDITOR.on("scaytReady", function() {
22678 if (!0 === CKEDITOR.config.scayt_handleCheckDirty) {
22679 var a = CKEDITOR.editor.prototype;
22680 a.checkDirty = CKEDITOR.tools.override(a.checkDirty, function(a) {
22684 … if (CKEDITOR.plugins.scayt && CKEDITOR.plugins.scayt.state.scayt[this.name] && this.scayt) {
22692 a.resetDirty = CKEDITOR.tools.override(a.resetDirty,
22696CKEDITOR.plugins.scayt && CKEDITOR.plugins.scayt.state.scayt[this.name] && this.scayt ? this._.pre…
22700 if (!0 === CKEDITOR.config.scayt_handleUndoRedo) {
22701 var a = CKEDITOR.plugins.undo.Image.prototype,
22703 a[c] = CKEDITOR.tools.override(a[c], function(a) {
22709 CKEDITOR.plugins.scayt &&
22710CKEDITOR.plugins.scayt.state.scayt[b.editor.name] && b.editor.scayt && (this.contents = c.removeMa…
22720 CKEDITOR.plugins.add("stylescombo", {
22730 …& b.element in CKEDITOR.dtd.$block || "string" == typeof b.type && !CKEDITOR.style.customHandlers[…
22731 …e + 1E3 * (d == CKEDITOR.STYLE_OBJECT ? 1 : d == CKEDITOR.STYLE_BLOCK ? 2 : 3), f[h] = b, k.push(b…
22743 css: [CKEDITOR.skin.getPath("editor")].concat(l.contentsCss),
22753 … c = d), this.add(b, a.type == CKEDITOR.STYLE_OBJECT ? b : a.buildPreview(), b);
22794 … b[CKEDITOR.STYLE_BLOCK] || this.hideGroup(g["panelTitle" + String(CKEDITOR.STYLE_BLOCK)]);
22795 … b[CKEDITOR.STYLE_INLINE] || this.hideGroup(g["panelTitle" + String(CKEDITOR.STYLE_INLINE)]);
22796 … b[CKEDITOR.STYLE_OBJECT] || this.hideGroup(g["panelTitle" + String(CKEDITOR.STYLE_OBJECT)])
22803 this.setState(CKEDITOR.TRISTATE_DISABLED)
22826 … if (b = (new CKEDITOR.dom.elementPath(e.getCommonAncestor(), e.root)).contains({
22831 a = CKEDITOR.tools.tryThese(function() {
22842 …if (a) a = new CKEDITOR.dom.element(a), e.moveToElementEditStart(a), e.checkStartOfBlock() && e.ch…
22845 …ent().$.cells, f = new CKEDITOR.dom.element(f.insertRow(-1), d.document), g = 0, h = a.length; g <…
22874 CKEDITOR.plugins.add("tab", {
22881 … a.data.keyCode && c.execCommand("selectNextCell") || a.data.keyCode == CKEDITOR.SHIFT + 9 && c.ex…
22883 c.addCommand("blur", CKEDITOR.tools.extend(g, h));
22885 CKEDITOR.tools.extend(f, h));
22891 CKEDITOR.dom.element.prototype.focusNext = function(k, h) {
22895 for (b = this.getNextSourceNode(k, CKEDITOR.NODE_ELEMENT); b;) {
22900 b = b.getNextSourceNode(!1, CKEDITOR.NODE_ELEMENT)
22902 …b = this.getDocument().getBody().getFirst(); b = b.getNextSourceNode(!1, CKEDITOR.NODE_ELEMENT);) {
22906 if (!(b = b.getNextSourceNode(!0, CKEDITOR.NODE_ELEMENT))) break;
22921 CKEDITOR.dom.element.prototype.focusPrevious = function(k, h) {
22922 … this.getDocument().getBody().getLast(); a = a.getPreviousSourceNode(!1, CKEDITOR.NODE_ELEMENT);) {
22926 if (!(a = a.getPreviousSourceNode(!0, CKEDITOR.NODE_ELEMENT))) break;
22947 CKEDITOR.plugins.add("table", {
22951 return CKEDITOR.tools.extend(c || {}, {
22954 … this.setState(b.contains("table", 1) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED)
22960 a.addCommand("table", new CKEDITOR.dialogCommand("table", {
22973 … if (c.styles.border) a = CKEDITOR.tools.style.parse.border(c.styles.border);
22974 else if (CKEDITOR.env.ie && 8 === CKEDITOR.env.version) {
22977 (a = CKEDITOR.tools.style.parse.border(b["border-top"]))
22986 a.addCommand("tableProperties", new CKEDITOR.dialogCommand("tableProperties", f()));
22995 a.moveToPosition(d, CKEDITOR.POSITION_BEFORE_START);
23006 CKEDITOR.dialog.add("table", this.path + "dialogs/table.js");
23007 CKEDITOR.dialog.add("tableProperties", this.path + "dialogs/table.js");
23028 tabledelete: CKEDITOR.TRISTATE_OFF,
23029 table: CKEDITOR.TRISTATE_OFF
23042 …0 < e.length || b.type != CKEDITOR.NODE_ELEMENT || !F.test(b.getName()) || b.getCustomData("select…
23054 var h = new CKEDITOR.dom.walker(h),
23057 …c; l = h.next();) l.type == CKEDITOR.NODE_ELEMENT && l.is(CKEDITOR.dtd.table) || (l = l.getAscenda…
23060 …}, !0)) && !l.getCustomData("selected_cell") && b(l) && (CKEDITOR.dom.element.setMarker(a, l, "sel…
23063 CKEDITOR.dom.element.clearAllMarkers(a);
23068 …[b.length - 1], k = b.getParent().$.rowIndex + b.$.rowSpan - 1, b = new CKEDITOR.dom.element(e.$.r…
23069 …b = CKEDITOR.tools.buildTableMap(e), e = b[g], g = f ? b[g - 1] : b[g + 1], b = b[0].length, c = c…
23071 …].rowSpan && g && e[k] == g[k] ? (h = e[k], h.rowSpan += 1) : (h = (new CKEDITOR.dom.element(e[k])…
23079 if (d instanceof CKEDITOR.dom.selection) {
23083 e = CKEDITOR.tools.buildTableMap(c),
23090 … for (var k = e[d], h = new CKEDITOR.dom.element(c.$.rows[d]), l = 0; l < k.length; l++) {
23091 var m = new CKEDITOR.dom.element(k[l]),
23093 … == d && (n = e[d + 1], n[l - 1] ? m.insertAfter(new CKEDITOR.dom.element(n[l - 1])) : (new CKEDIT…
23099 f[0].moveToPosition(c, CKEDITOR.POSITION_BEFORE_START);
23100 a = new CKEDITOR.dom.element(e[g +
23105 …d instanceof CKEDITOR.dom.element && (c = d.getAscendant("table"), 1 == c.$.rows.length ? c.remove…
23128 …e = w(b, 1), b = w(b), a = f ? e : b, g = CKEDITOR.tools.buildTableMap(c), c = [], e = [], b = [],…
23129 … < c[h].colSpan && e[h] == c[h] ? (g = c[h], g.colSpan += 1) : (a = new CKEDITOR.dom.element(c[h])…
23143 …tPrevious()) || (d = c.getParent().getPrevious().getLast()); d.type !== CKEDITOR.NODE_TEXT && "br"…
23145 b.setEndAt(d, CKEDITOR.POSITION_BEFORE_END);
23148 CKEDITOR.env.webkit && !d.isFake && (d = f(d));
23154 g = CKEDITOR.tools.buildTableMap(c),
23162 …for (n = 0; n < g.length; n++) a = g[n], e = new CKEDITOR.dom.element(c.$.rows[n]), a = new CKEDIT…
23163 …- 1 > h ? new CKEDITOR.dom.element(g[0][h + 1]) : k && -1 !== g[0][k - 1].cellIndex ? new CKEDITOR
23164 l.length == d && (b[0].moveToPosition(c, CKEDITOR.POSITION_AFTER_END),
23182 if (d instanceof CKEDITOR.dom.selection) {
23189 … for (var g = {}, k, h; k = b[a++];) CKEDITOR.dom.element.setMarker(g, k, "delete_cell", !0);
23192 CKEDITOR.dom.element.clearAllMarkers(g);
23195 } CKEDITOR.dom.element.clearAllMarkers(g);a = b[0].getParent();
23200 …e ? p(e, !0) : c && (f[0].moveToPosition(c, CKEDITOR.POSITION_BEFORE_START), f[0].select(), c.remo…
23201 …} else d instanceof CKEDITOR.dom.element && (f = d.getParent(), 1 == f.getChildCount() ? f.remove(…
23206 c = CKEDITOR.document;
23207 CKEDITOR.env.ie && 10 == CKEDITOR.env.version &&
23209 b = new CKEDITOR.dom.range(b);
23219 if (f == b) return new CKEDITOR.dom.element(d[f])
23227 …!= c.length : 2 > c.length) || (e = d.getCommonAncestor()) && e.type == CKEDITOR.NODE_ELEMENT && e…
23231 var g = CKEDITOR.tools.buildTableMap(e),
23246 c["up" == f || "left" == f ? "unshift" : "push"](new CKEDITOR.dom.element(n))
23251 u = !b && new CKEDITOR.dom.documentFragment(f),
23266 …}) || (r = u.getLast(CKEDITOR.dom.walker.whitespaces(!0)), !r || r.is && r.is("br") || u.append("b…
23275 b = new CKEDITOR.dom.nodeList(e.$.rows);
23288 a = CKEDITOR.tools.buildTableMap(e),
23295 …for (var h = Math.floor(h / 2), c = g + l, e = new CKEDITOR.dom.element(e.$.rows[c]), a = A(a, c),…
23298 c.insertBefore(new CKEDITOR.dom.element(m));
23319 e = CKEDITOR.tools.buildTableMap(e),
23341 D = CKEDITOR.tools.isArray;
23342 CKEDITOR.plugins.tabletools = {
23346 return CKEDITOR.tools.extend(a || {}, {
23352 }, 1) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED)
23362 e = CKEDITOR.tools.style.parse;
23363 b("cellProperties", new CKEDITOR.dialogCommand("cellProperties", f({
23394 CKEDITOR.tools.array.forEach(a.children, function(b) {
23417 CKEDITOR.dialog.add("cellProperties", this.path + "dialogs/tableCell.js");
23535 tablecell_insertBefore: CKEDITOR.TRISTATE_OFF,
23536 tablecell_insertAfter: CKEDITOR.TRISTATE_OFF,
23537 tablecell_delete: CKEDITOR.TRISTATE_OFF,
23538 … tablecell_merge: x(a, null, !0) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
23539 … tablecell_merge_right: x(a, "right", !0) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
23540 … tablecell_merge_down: x(a, "down", !0) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
23541 … tablecell_split_vertical: E(a, !0) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
23542 … tablecell_split_horizontal: C(a, !0) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
23543 … tablecell_properties: 0 < b.length ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
23607 tablerow_insertBefore: CKEDITOR.TRISTATE_OFF,
23608 tablerow_insertAfter: CKEDITOR.TRISTATE_OFF,
23609 tablerow_delete: CKEDITOR.TRISTATE_OFF
23637 tablecolumn_insertBefore: CKEDITOR.TRISTATE_OFF,
23638 tablecolumn_insertAfter: CKEDITOR.TRISTATE_OFF,
23639 tablecolumn_delete: CKEDITOR.TRISTATE_OFF
23667 tablecell: CKEDITOR.TRISTATE_OFF,
23668 tablerow: CKEDITOR.TRISTATE_OFF,
23669 tablecolumn: CKEDITOR.TRISTATE_OFF
23678 CKEDITOR.plugins.add("tabletools", CKEDITOR.plugins.tabletools)
23680 CKEDITOR.tools.buildTableMap = function(q, r, B, v, w) {
23706 return CKEDITOR.plugins.widget && CKEDITOR.plugins.widget.isDomWidget(a)
23712 e = CKEDITOR.tools.buildTableMap(c),
23733 for (g = l; g <= p; g++) d = new CKEDITOR.dom.element(e[c][g]),
23734 …d.$ && !d.getCustomData("selected_cell") && (k.push(d), CKEDITOR.dom.element.setMarker(f, d, "sele…
23735 CKEDITOR.dom.element.clearAllMarkers(f);
23740 …f (a) return a = a.clone(), a.enlarge(CKEDITOR.ENLARGE_ELEMENT), (a = a.getEnclosedNode()) && a.is…
23818 …return ("mousedown" !== a.name || CKEDITOR.tools.getMouseButton(a) !== CKEDITOR.MOUSE_BUTTON_LEFT …
23840 …!m.active && "mousedown" === a.name && CKEDITOR.tools.getMouseButton(a) === CKEDITOR.MOUSE_BUTTON_…
23842 }, CKEDITOR.document.on("mouseup", w, null, {
23846 …"mouseup" === a.name && (CKEDITOR.tools.getMouseButton(a) === CKEDITOR.MOUSE_BUTTON_LEFT && (c(a.d…
23849 CKEDITOR.document.removeListener("mouseup", w))
23870 f = CKEDITOR.env.ie && 9 > CKEDITOR.env.version,
23871 l = a.blockless || CKEDITOR.env.ie ? "span" : "div",
23903 …-1 !== CKEDITOR.tools.array.indexOf(b, d.data.name) && (d.data.selectedCells = v(a.getSelection()))
23906 -1 !== CKEDITOR.tools.array.indexOf(b, d.data.name) && c(a, d.data)
23942 c = CKEDITOR.tools.buildTableMap(c),
23945 if ((new CKEDITOR.dom.element(c[d][e])).equals(b)) {
23950 … return CKEDITOR.tools.buildTableMap(this._getTable(), r(this.rows.first), a, r(this.rows.last), b)
23958 ….cells.all, h, k = 0; k < a; k++) h = F(c ? this.cells.all : g, b), h = CKEDITOR.tools.array.filte…
23971 …= c.all, e = r(c.first), g = r(c.last), c = 0; c < a; c++) d = d.concat(CKEDITOR.tools.array.filte…
23981 return a.getPosition(c) & CKEDITOR.POSITION_PRECEDING ? -1 : 1
23987 return Math.max.apply(null, CKEDITOR.tools.array.map(a, function(a) {
24007 a = new CKEDITOR.dom.element(l[0][0]);
24009 a = z(a, new CKEDITOR.dom.element(b[b.length - 1]))
24012 …first)) : (f.emptyCells(), t(d, f.cells.all)), a = f.getTableMap(), l = CKEDITOR.tools.buildTableM…
24026 if (a.checkBoundaryOfElement(b, CKEDITOR.START)) return 1;
24027 if (a.checkBoundaryOfElement(b, CKEDITOR.END)) return 2
24033 d = new CKEDITOR.dom.element("body");
24034 c || (c = new CKEDITOR.htmlDataProcessor(a));
24046 …for (k = new CKEDITOR.dom.element(g.$.rows[a.rows.first.$.rowIndex + l]), p = 0; p < c[l].length; …
24047 …if (f = new CKEDITOR.dom.element(c[l][p]), d = b[l] && b[l][p] ? new CKEDITOR.dom.element(b[l][p])…
24049 … else if (0 === p || c[l][p - 1])(d = 0 !== p ? new CKEDITOR.dom.element(c[l][p -
24051 …Parent()) ? f.insertAfter(d) : 0 < e ? k.$.cells[e] ? f.insertAfter(new CKEDITOR.dom.element(k.$.c…
24052 CKEDITOR.dom.element.setMarker(h, f, "processed", !0)
24054 CKEDITOR.dom.element.clearAllMarkers(h)
24057 CKEDITOR.plugins.tableselection = {
24066 CKEDITOR.tools.array.forEach(a._find("td"),
24076 g = CKEDITOR.dom.range.mergeRanges(e);
24077 CKEDITOR.tools.array.forEach(g, function(a) {
24078 a.enlarge(CKEDITOR.ENLARGE_ELEMENT)
24084 …r (var q = n.getAscendant("table", !0), u = n.getPreviousSourceNode(!1, CKEDITOR.NODE_ELEMENT, q),…
24087 !t(u);) u = u.getPreviousSourceNode(!1, CKEDITOR.NODE_ELEMENT, q);
24105 h = CKEDITOR.tools.extend({
24107 }, CKEDITOR.dtd.$tableContent);
24121 else if (13 !== f || 13 === l || l === CKEDITOR.SHIFT + 13) {
24135 … if (c && c.isInTable() && c.isFake && g && !(d.data.getKeystroke() & CKEDITOR.CTRL)) {
24147 isSupportedEnvironment: !(CKEDITOR.env.ie && 11 > CKEDITOR.env.version)
24149 CKEDITOR.plugins.add("tableselection", {
24152 y = CKEDITOR.plugins.tabletools;
24157 CKEDITOR.document.appendStyleSheet(this.path + "styles/tableselection.css")
24160CKEDITOR.plugins.tableselection.isSupportedEnvironment && (a.addContentsCss && a.addContentsCss(th…
24172 CKEDITOR.plugins.tableselection.keyboardIntegration(a);
24173CKEDITOR.plugins.clipboard && !CKEDITOR.plugins.clipboard.isCustomCopyCutSupported && (b.attachLis…
24186 var g = [CKEDITOR.CTRL + 90, CKEDITOR.CTRL + 89, CKEDITOR.CTRL + CKEDITOR.SHIFT + 90],
24191 CKEDITOR.plugins.add("undo", {
24224 f.setState(d.undoable() ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED);
24225 h.setState(d.redoable() ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED)
24265 CKEDITOR.plugins.undo = {};
24266 var e = CKEDITOR.plugins.undo.UndoManager = function(a) {
24336 …a.bookmarks ? c.selectBookmarks(a.bookmarks) : CKEDITOR.env.ie && (c = this.editor.document.getBod…
24452 return CKEDITOR.env.ie && e.getKeyGroup(a) == e.keyGroups.FUNCTIONAL
24454 var f = CKEDITOR.plugins.undo.Image = function(a, b) {
24458 CKEDITOR.env.ie && c && (c = c.replace(/\s+data-cke-expando=".*?"/g, ""));
24468CKEDITOR.env.ie && (CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks) && (b = b.replace(h, ""), a = a…
24479 ….startOffset || d.endOffset != e.endOffset || !CKEDITOR.tools.arrayCompare(d.start, e.start) || !C…
24486 var k = CKEDITOR.plugins.undo.NativeEditingHandler = function(a) {
24496 … if (-1 < CKEDITOR.tools.indexOf(g, a.data.getKeystroke())) a.data.preventDefault();
24538 … b.attachListener(b, CKEDITOR.env.ie ? "keypress" : "input", c.onInput, c, null, 999);
24552 var m = CKEDITOR.plugins.undo.KeyEventsStack = function() {
24599 CKEDITOR.tools.extend(this, {
24611 CKEDITOR.tools.extend(this, d, {
24618 CKEDITOR.tools.extend(this, {
24624 container: CKEDITOR.document.getBody(),
24625 winTop: CKEDITOR.document.getWindow()
24632 var c = CKEDITOR.tools.bind(this.queryViewport, this),
24633 e = CKEDITOR.tools.bind(this.hideVisible, this),
24634 g = CKEDITOR.tools.bind(this.removeAll, this);
24649 …this.lineTpl = (new CKEDITOR.template('\x3cdiv data-cke-lineutils-line\x3d"1" class\x3d"cke_reset_…
24650 lineStyle: CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},
24652 tipLeftStyle: CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({}, q, {
24657 tipRightStyle: CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({}, q, {
24667 …if (d = a && a.type == CKEDITOR.NODE_ELEMENT) d = !(r[a.getComputedStyle("float")] || r[a.getAttri…
24671 CKEDITOR.plugins.add("lineutils");
24672 CKEDITOR.LINEUTILS_BEFORE = 1;
24673 CKEDITOR.LINEUTILS_AFTER = 2;
24674 CKEDITOR.LINEUTILS_INSIDE = 4;
24680 e, g, f, h, k = CKEDITOR.tools.eventsBuffer(50, function() {
24681 …ations = {}, (g = c.$.elementFromPoint(f, h)) && g.nodeType && (e = new CKEDITOR.dom.element(g), d…
24699 a[CKEDITOR.LINEUTILS_BEFORE] = CKEDITOR.POSITION_BEFORE_START;
24700 a[CKEDITOR.LINEUTILS_AFTER] = CKEDITOR.POSITION_AFTER_END;
24701 a[CKEDITOR.LINEUTILS_INSIDE] = CKEDITOR.POSITION_AFTER_START;
24719 …b & CKEDITOR.LINEUTILS_AFTER && l(c = d.getNext()) && c.isVisible() && (a(c, CKEDITOR.LINEUTILS_BE…
24720 …b & CKEDITOR.LINEUTILS_INSIDE && l(c = d.getFirst()) && c.isVisible() && (a(c, CKEDITOR.LINEUTILS_…
24732 …} while ((!a || a.type != CKEDITOR.NODE_ELEMENT || "true" != a.getAttribute("contenteditable")) &&…
24741 … else if (d(a, k) && (h = 0, l(k = new CKEDITOR.dom.element(k)))) return k
24744 var d = CKEDITOR.env.ie || CKEDITOR.env.webkit ? function(a, c) {
24775 …if (!b.equals(this.editable) && b.type == CKEDITOR.NODE_ELEMENT && (b.hasAttribute("contenteditabl…
24783 … var c = a.element[b === CKEDITOR.LINEUTILS_BEFORE ? "getPrevious" : "getNext"]();
24785 …b == CKEDITOR.LINEUTILS_BEFORE ? (a.siblingRect.bottom + a.elementRect.top) / 2 : (a.elementRect.b…
24790CKEDITOR.LINEUTILS_BEFORE && this.store(c, CKEDITOR.LINEUTILS_BEFORE, a(b, CKEDITOR.LINEUTILS_BEFO…
24791CKEDITOR.LINEUTILS_INSIDE && this.store(c, CKEDITOR.LINEUTILS_INSIDE, (b.elementRect.top + b.eleme…
24894 for (var g in e) e[g] = CKEDITOR.tools.cssLength(e[g]);
24898 var a = CKEDITOR.dom.element.createFromHtml(this.lineTpl);
24936 CKEDITOR.plugins.lineutils = {
24946 CKEDITOR.plugins.add("widgetselection", {
24948 if (CKEDITOR.env.webkit) {
24949 var b = CKEDITOR.plugins.widgetselection;
24954 … a.data.getKeystroke() == CKEDITOR.CTRL + 65 && CKEDITOR.tools.setTimeout(function() {
24969 CKEDITOR.plugins.widgetselection = {
24980 …d && d.type == CKEDITOR.NODE_ELEMENT && !d.isEditable() && (this.startFiller = this.createFiller(),
24982 …c && c.type == CKEDITOR.NODE_ELEMENT && !c.isEditable() && (this.endFiller = this.createFiller(!0)…
25002 …return !b || b && b.collapsed ? !1 : (b = b.clone(), b.enlarge(CKEDITOR.ENLARGE_ELEMENT), !!(b && …
25009 var b = new CKEDITOR.dom.element(this.fillerTagName);
25037 …Count() - 1), CKEDITOR.POSITION_BEFORE_END), d.getSelection().selectRanges([f])) : e && (c ? f.set…
25038 …f.setEndAt(b.getLast().getPrevious(), CKEDITOR.POSITION_BEFORE_END), b.editor.getSelection().selec…
25080 CKEDITOR.tools.extend(this, d, {
25085 data: CKEDITOR.tools.extend({},
25114 CKEDITOR.dom.element.call(this, b.$);
25118CKEDITOR.dtd[this.getName()].p ? (this.enterMode = b ? b.getAllowedEnterMode(a.enterMode) : a.ente…
25133 f = CKEDITOR.dom.element.createFromHtml(b.template.output(f)),
25135 k = new CKEDITOR.dom.documentFragment(l.getDocument());
25173 var e = CKEDITOR.tools.getIndex(a._.upcasts, function(a) {
25177 a._.upcasts.splice(e, 0, [CKEDITOR.tools.bind(b, c), c.name, d])
25261 …a || (a = c.allowedContent ? new CKEDITOR.filter(c.allowedContent) : this.editor.filter.clone(), d…
25282 …if (f = c[k], l = {}, h = f[0](a, l)) return h instanceof CKEDITOR.htmlParser.element && (a = h), …
25299 if (a.type == CKEDITOR.NODE_ELEMENT) {
25300 var d = CKEDITOR.dtd[a.name];
25314 return "boolean" == typeof a.inline ? a.inline : !!CKEDITOR.dtd.$inline[b]
25335 return CKEDITOR.tools.trim(b)
25340 c = CKEDITOR.plugins.lineutils;
25350CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ? c.cancel() : "" !== f && h == CKEDITOR.DATA_TRANSFER_INTERN…
25354 CKEDITOR.tools.extend(a, {
25358 …if (!b.is(CKEDITOR.dtd.$listItem) && b.is(CKEDITOR.dtd.$block) && !g.isDomNestedEditable(b) && !a.…
25363 c = CKEDITOR.filter.instances[c.data("cke-filter")];
25367 return CKEDITOR.LINEUTILS_BEFORE | CKEDITOR.LINEUTILS_AFTER
25397 e = d instanceof CKEDITOR.dom.element ? a.getByElement(d) : null;
25399 …e && (e.inline && d.type == CKEDITOR.NODE_ELEMENT && d.hasAttribute("data-cke-widget-drag-handler"…
25400 ….getNestedEditable(e.wrapper, d) ? e = null : (c.data.preventDefault(), CKEDITOR.env.ie || e.focus…
25405 CKEDITOR.env.ie && c.attachListener(d, "mouseup", function() {
25426CKEDITOR.CTRL + 65 ? (c = b.getBogus(), d = d.editor.createRange(), d.selectNodeContents(b), c && …
25470 var e = CKEDITOR.tools.getNextNumber(),
25492 }, CKEDITOR.NODE_ELEMENT,
25519 … for (b.data.dataValue.forEach(d.iterator, CKEDITOR.NODE_ELEMENT, !0); h = d.toBeWrapped.pop();) {
25522 … k.type == CKEDITOR.NODE_ELEMENT && k.attributes["data-cke-widget-wrapper"] && k.replaceWith(l);
25530 … ++l) f = c.getItem(l), h = f.getFirst(g.isDomWidgetElement), h.type == CKEDITOR.NODE_ELEMENT && h…
25542 …(a = g.getNestedEditable(b.editable(), a.range.startContainer)) && (a = CKEDITOR.filter.instances[…
25562 0 > CKEDITOR.tools.indexOf(b, a) && c.push(a);
25563 a = CKEDITOR.tools.indexOf(d, a);
25576 …(h = a.focused) && t(a, h); h = d.pop();) b.splice(CKEDITOR.tools.indexOf(b, h), 1), h.isInited() …
25592 … for (e = CKEDITOR.tools.clone(e); f = b.pop();) c ? e[f] || (d = e[f] = 1) : e[f] && (delete e[f],
25605 e = CKEDITOR.env.edge && 16 <= CKEDITOR.env.version;
25607 var f = !c.blockless && !CKEDITOR.env.ie || e ? "div" : "span",
25610 f = CKEDITOR.env.ie && 9 > CKEDITOR.env.version;
25655 var a = CKEDITOR.document.getActive(),
25662 CKEDITOR.env.gecko &&
25664CKEDITOR.env.webkit || (this.editor.forceNextSelectionCheck(), this.editor.selectionChange(1))
25696 … c ? d = c.findOne("img") : (c = new CKEDITOR.dom.element("span", b.document), c.setAttributes({
25699 }), d = new CKEDITOR.dom.element("img", b.document), d.setAttributes({
25702 src: CKEDITOR.tools.transparentImageData,
25715 …if (!a.inline && (d.on("mousedown", ba, a), CKEDITOR.env.ie && 9 > CKEDITOR.env.version)) d.on("dr…
25732CKEDITOR.tools.isEmpty(e.visible) || (c = d.getRange(c[0]), this.focus(), f.fire("drop", {
25742 if (CKEDITOR.tools.getMouseButton(a) === CKEDITOR.MOUSE_BUTTON_LEFT) {
25753 q = CKEDITOR.tools.eventsBuffer(50, function() {
25767 h.isInline() || g.push(CKEDITOR.document.once("mouseup",
25784 b || (b = new CKEDITOR.dom.element("img", a.editor.document), b.setAttributes({
25785 src: CKEDITOR.tools.transparentImageData,
25810 if (CKEDITOR.env.ie && 9 > CKEDITOR.env.version) a.wrapper.on("dragstart", function(b) {
25820 if (b == CKEDITOR.CTRL + 67 || b == CKEDITOR.CTRL + 88) {
25821 B(a, b == CKEDITOR.CTRL + 88);
25824 if (b in ga || CKEDITOR.CTRL & b || CKEDITOR.ALT &
25851 CKEDITOR.style.addCustomHandler({
25864 …a instanceof CKEDITOR.editor && this.checkApplicable(a.elementPath(), a) && (b = a.widgets.focused…
25867 a instanceof CKEDITOR.editor && this.checkApplicable(a.elementPath(),
25872 if (!(a instanceof CKEDITOR.editor)) return !1;
25885 return b instanceof CKEDITOR.editor ?
25914 return a ? CKEDITOR.tools.trim(a).split(/\s+/) : null
25921 CKEDITOR.plugins.add("widget", {
25924 …void 0 !== CKEDITOR.document.$.querySelectorAll && (CKEDITOR.addCss(".cke_widget_wrapper{position:…
25928 void 0 !== CKEDITOR.document.$.querySelectorAll && (a.widgets = new p(a))
25931 if (void 0 !== CKEDITOR.document.$.querySelectorAll) {
25934 …r (d in b) c = b[d], (e = c.button) && a.ui.addButton && a.ui.addButton(CKEDITOR.tools.capitalize(…
25946 b = CKEDITOR.tools.prototypedCopy(b);
25951 b.template && (b.template = new CKEDITOR.template(b.template));
25967 a = new CKEDITOR.dom.walker(a);
25972 this.fire("checkWidgets", CKEDITOR.tools.copy(a || {}))
26046 a = CKEDITOR.tools.trim(a).split(/\s+/);
26054 if (a instanceof CKEDITOR.dom.element) {
26058 …if ((c = a.getParent()) && c.type == CKEDITOR.NODE_ELEMENT && c.data("cke-widget-wrapper")) return…
26062 c = new CKEDITOR.dom.element(e ? "span" : "div");
26067 } else if (a instanceof CKEDITOR.htmlParser.element) {
26071 …if ((c = a.parent) && c.type == CKEDITOR.NODE_ELEMENT && c.attributes["data-cke-widget-wrapper"]) …
26075 c = new CKEDITOR.htmlParser.element(e ? "span" : "div", y(e, b));
26088 CKEDITOR.event.implementOn(p.prototype);
26156 return c && c.is(CKEDITOR.dtd.$editable) ? (c = new q(this.editor, c, {
26163 …, b.pathName), this.editor.focusManager.add(c), c.on("focus", H, this), CKEDITOR.env.ie && c.on("b…
26232 CKEDITOR.event.implementOn(g.prototype);
26238 CKEDITOR.NODE_ELEMENT && a.hasAttribute("data-cke-widget-drag-handler")
26241 … return a.type == CKEDITOR.NODE_ELEMENT && a.hasClass("cke_widget_drag_handler_container")
26244 return a.type == CKEDITOR.NODE_ELEMENT && a.hasAttribute("data-cke-widget-editable")
26247 return a.type == CKEDITOR.NODE_ELEMENT && a.hasAttribute("data-widget")
26250 return a.type == CKEDITOR.NODE_ELEMENT && a.hasAttribute("data-cke-widget-wrapper")
26256 return a.type == CKEDITOR.NODE_ELEMENT && !!a.attributes["data-widget"]
26259 return a.type == CKEDITOR.NODE_ELEMENT && !!a.attributes["data-cke-widget-wrapper"]
26262 …q.prototype = CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.dom.element.prototype),…
26292 CKEDITOR.plugins.widget = g;
26300 this._message = new CKEDITOR.template(b);
26301 this._singularMessage = c ? new CKEDITOR.template(c) : null;
26311 CKEDITOR.plugins.add("notificationaggregator", {
26362 return new CKEDITOR.plugins.notification(this.editor, {
26373 …var b = CKEDITOR.tools.indexOf(this._tasks, a); - 1 !== b && (a._doneWeight && (this._doneWeights …
26384 CKEDITOR.event.implementOn(e.prototype);
26409 CKEDITOR.event.implementOn(d.prototype);
26410 CKEDITOR.plugins.notificationAggregator = e;
26411 CKEDITOR.plugins.notificationAggregator.task = d
26414 CKEDITOR.plugins.add("uploadwidget", {
26420 CKEDITOR.fileTools || (CKEDITOR.fileTools = {});
26421 CKEDITOR.tools.extend(CKEDITOR.fileTools, {
26423 var h = CKEDITOR.fileTools,
26439 …questParameters), CKEDITOR.fileTools.markElement(m, c, e.id), "loadAndUpload" != g && "upload" != …
26442 CKEDITOR.tools.extend(f, {
26444 return new CKEDITOR.htmlParser.text("")
26450 f = CKEDITOR.tools.capitalize,
26458 } else CKEDITOR.instances[a.name] &&
26498 … (!h || h.isFinished()) h = a._.uploadWidgetNotificaionAggregator = new CKEDITOR.plugins.notificat…
26525CKEDITOR.instances[a.name] && a.showNotification(a.lang.uploadwidget.abort, "info")
26540 return "image-" + CKEDITOR.tools.array.map(a, l).join("") + "-" + e + "." + c
26543 CKEDITOR.plugins.add("uploadimage", {
26546 CKEDITOR.addCss(".cke_upload_uploading img{opacity: 0.3}")
26549 if (CKEDITOR.plugins.clipboard.isFileApiSupported) {
26550 var a = CKEDITOR.fileTools,
26557 var b = new CKEDITOR.dom.element("img");
26576 f = new CKEDITOR.dom.element(f.body),
26596 CKEDITOR.plugins.add("wsc", {
26603 …a.config.wsc_customerId = a.config.wsc_customerId || CKEDITOR.config.wsc_customerId || "1:ua3xw1-2…
26605 CKEDITOR.config.wsc_customDictionaryIds || "";
26606 …a.config.wsc_userDictionaryName = a.config.wsc_userDictionaryName || CKEDITOR.config.wsc_userDicti…
26607 …a.config.wsc_customLoaderScript = a.config.wsc_customLoaderScript || CKEDITOR.config.wsc_customLoa…
26609 CKEDITOR.config.wsc_cmd = a.config.wsc_cmd || CKEDITOR.config.wsc_cmd || "spell";
26610 CKEDITOR.config.wsc_version = "v4.3.0-master-d769233";
26611 CKEDITOR.config.wsc_removeGlobalVariable = !0
26615 …(CKEDITOR.skinName || a.config.skin) && CKEDITOR.document.appendStyleSheet(this.path + "skins/" +
26618 var b = CKEDITOR.env;
26621 a.addCommand("checkspell", new CKEDITOR.dialogCommand("checkspell")).modes = {
26622 …wysiwyg: !CKEDITOR.env.opera && !CKEDITOR.env.air && document.domain == window.location.hostname &…
26627 …var b = a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? a.container.getText() : a.document.getBody…
26632CKEDITOR.dialog.add("checkspell", this.path + (CKEDITOR.env.ie && 7 >= CKEDITOR.env.version ? "dia…
26635CKEDITOR.config.plugins = 'dialogui,dialog,about,a11yhelp,dialogadvtab,basicstyles,bidi,blockquote…
26636 CKEDITOR.config.skin = 'moono-lisa';
26639 var path = CKEDITOR.getUrl('plugins/' + strip);
26641 for (var i = 0; i < icons.length; i++) CKEDITOR.skin.icons[icons[i]] = {
26647 …if (CKEDITOR.env.hidpi) setIcons('about,0,,bold,24,,italic,48,,strike,72,,subscript,96,,superscrip…
26650 CKEDITOR.lang.languages = {