Lines Matching refs:c

2 Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
22 … for (var c = document.getElementsByTagName("script"), d = 0; d < c.length; d++) {
23 var g = c[d].src.match(a);
43 } catch (c) {}
47 for (var a; a = c.shift();) a()
49 var c = [];
60 c.push(b);
62 if (1 == c.length)
79 var c = d.getUrl;
81 return b.call(d, a) || c.call(d, a)
260 var c = 0;
261c = d ? parseFloat(d[1]) : b.quirks || !document.documentMode ? parseFloat(a.match(/msie (\d+)/)[1…
262 …b.gecko && (d = a.match(/rv:([\d\.]+)/)) && (d = d[1].split("."), c = 1E4 * d[0] + 100 * (d[1] || …
263 b.air && (c = parseFloat(a.match(/ adobeair\/(\d+)/)[1]));
264 b.webkit && (c = parseFloat(a.match(/ applewebkit\/(\d+)/)[1]));
265 b.version = c;
266 b.isCompatible = !(b.ie && 7 > c) && !(b.gecko && 4E4 > c) && !(b.webkit && 534 > c);
268 b.needsBrFiller = b.gecko || b.webkit || b.ie && 10 < c;
269 b.needsNbspFiller = b.ie && 11 > c;
338 c = />/g,
389 for (var c = 1; c < e; c++) {
390 var g = arguments[c],
441 …return void 0 === a || null === a ? "" : String(a).replace(b, "\x26amp;").replace(c, "\x26gt;").re…
456 c = e == CKEDITOR.ENTER_P ? "p" : "div";
459 if (g.test(v)) var d = "\x3c" + c + "\x3e",
460 m = "\x3c/" + c + "\x3e",
466 b || (v = v.replace(new RegExp("\x3cbr\x3e(?\x3d\x3c/" + c + "\x3e)"), function(a) {
493 setTimeout: function(a, e, b, c, g) {
497 c ? a.apply(b, [].concat(c)) : a.apply(b)
502 var c, g = 0;
508 c = !1;
512 c && (clearTimeout(c), c = 0);
514 m < a ? c = setTimeout(d, a - m) : d()
517 c && (clearTimeout(c), c = g = 0)
542 for (var b = 0, c = a.length; b < c; b++) {
547 for (c = a.length; b < c; b++)
564 c = a.privates || a._,
571 if (c) var d = e,
575 for (e in c) {
576 var b = c[e];
624 var c = arguments[e];
626 a = c();
646 c, g = CKEDITOR.tools.parseCssText(a,
648 for (c in g) b.push(c + ":" + g[c]);
653 … return a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi, function(a, b, c, g) {
654 a = [b, c, g];
660 return a.replace(/#(([0-9a-f]{3}){1,2})($|;|\s+)/gi, function(a, b, c, g) {
668 var c = {};
671 if (!a || ";" == a) return c;
674 c[b] = g
676 return c
679 var b, c = [];
680 for (b in a) c.push(b + ":" + a[b]);
681 e && c.sort();
682 return c.join("; ")
685 var c;
688 for (c in a)
689 if (a[c] != e[c]) return !1;
691 for (c in e)
692 if (a[c] != e[c]) return !1;
704 for (var c = 0, g = a.length; c < g; ++c) b[a[c]] = e;
720 function c() {
730 e < a ? g = setTimeout(c, a - e) : c()
740 …put progress section summary time video".split(" "), c = b.length, g; c--;) g = a.createElement(b[
744 for (var b = 0, c = a.length; b < c; ++b)
761 c = e & 65535,
768c && (a[c] ? (d.push(a[c]), n.push(a[c])) : (d.push(String.fromCharCode(c)), n.push(String.fromCha…
777 for (var e = document.cookie.split(";"), b, c, g = 0; g < e.length; g++)
778 … if (b = e[g].split("\x3d"), c = decodeURIComponent(CKEDITOR.tools.trim(b[0]).toLowerCase()),
779 c === a) return decodeURIComponent(1 < b.length ? b[1] : "");
793 … for (b = 0; b < a.length; b++) var c = "abcdefghijklmnopqrstuvwxyz0123456789".charAt(a[b] %
795 e = e + (.5 < Math.random() ? c.toUpperCase() : c);
810 c = a.length / 2,
812 for (g = 0; g < c; g++) b.push(parseInt(a.substr(2 * g, 2), 16));
817 c = a.length,
819 for (g = 0; g < c; g += 3) {
992 c = this._findColor(a);
993 c.length && (b.color = c[0], CKEDITOR.tools.array.forEach(c, function(b) {
1001 c.top = g[a[0]];
1002 c.right = g[a[1]];
1003 c.bottom = g[a[2]];
1004 c.left = g[a[3]]
1006 var c = {},
1021 return c
1025 c = a.split(/\s+/g);
1028 CKEDITOR.tools.array.forEach(c, function(a) {
1035 c = CKEDITOR.tools.array,
1038 return b = b.concat(c.filter(a.split(/\s+/), function(a) {
1045 filter: function(a, b, c) {
1048 b.call(c, d, n, a) && g.push(d)
1052 forEach: function(a, b, c) {
1055 for (d = 0; d < g; d++) b.call(c, a[d], d, a)
1057 map: function(a, b, c) {
1058 for (var g = [], d = 0; d < a.length; d++) g.push(b.call(c,
1062 reduce: function(a, b, c, g) {
1063 for (var d = 0; d < a.length; d++) c = b.call(g, c, a[d], d, a);
1064 return c
1066 every: function(a, b, c) {
1068 b = this.filter(a, b, c);
1075 for (var c in a)
1076 if (a[c] === b) return c;
1080 var c = CKEDITOR.tools,
1081 g = c.clone(a),
1082 d = c.clone(b);
1083 c.array.forEach(c.objectKeys(d), function(a) {
1084 … g[a] = "object" === typeof d[a] && "object" === typeof g[a] ? c.object.merge(g[a], d[a]) :
1091 function c(a) {
1097 c(a.getWindow().getFrame())
1101 c(a.getFrame());
1120 for (var c = CKEDITOR.tools.clone(a), g = 1; g < arguments.length; g++) {
1122 for (var d in b) delete c[d]
1124 return c
1127 c = {},
1238 a(c, f, b, n);
1245 address: c,
1247 article: c,
1248 aside: c,
1252 }, c),
1257 blockquote: c,
1258 body: c,
1265 caption: c,
1276 dd: c,
1280 }, c),
1282 div: c,
1287 dt: c,
1292 }, c),
1293 figcaption: c,
1296 }, c),
1297 footer: c,
1298 form: c,
1309 header: c,
1322 }, c, h),
1332 li: c,
1334 main: c,
1335 map: c,
1339 }, c),
1344 nav: c,
1377 section: c,
1408 td: c,
1413 th: c,
1434 }, c),
1439 }, c),
1442 center: c,
1449 noframes: c,
1725 return function(c) {
1726 "undefined" != typeof CKEDITOR && a.fire(b, new CKEDITOR.dom.event(c))
1746 c = b && b[a];
1747c && (this.$.removeEventListener ? this.$.removeEventListener(a, c, !1) : this.$.detachEvent && th…
1754 var c = a[b];
1756 b, c) : this.$.removeEventListener && this.$.removeEventListener(b, c, !1);
1771 } catch (c) {
1775 a.setCustomData = function(a, c) {
1777 (d[f] || (d[f] = {}))[a] = c;
1781 var c = this.$["data-cke-expando"];
1782 return (c = c && d[c]) && a in c ? c[a] : null
1785 var c = this.$["data-cke-expando"],
1786 c = c && d[c],
1788 c && (f = c[a], h = a in c, delete c[a]);
1823 function b(c) {
1824 c["data-cke-expando"] && (c["data-cke-expando"] = !1);
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) {
1827 c = c.childNodes;
1828 for (var f = 0; f < c.length; f++) b(c[f])
1832 function c(b) {
1840 for (d = 0; d < b.getChildCount(); d++) c(b.getChild(d))
1846 …on && (this.type == CKEDITOR.NODE_ELEMENT || this.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT) && c(f);
1869 for (var d = [], b = this.getDocument().$.documentElement, c = this.$; c && c != b;) {
1870 var f = c.parentNode;
1872 $: c
1874 c = f
1882 function d(a, c) {
1883 var n = c ? a.nextSibling : a.previousSibling;
1885 c) : n : null
1891 var c = this.$,
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 == …
1900 var c = b;
1902 return !a.equals(c)
1920 var c = b;
1922 return !a.equals(c)
1984 for (var b = Math.min(d.length, a.length), c = 0; c < b; c++)
1985 if (d[c] !=
1986 … a[c]) return d[c] < a[c] ? CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING;
1991 c, f;
1993 "function" == typeof a ? (f = !0, c = a) : (f = !1, c = function(b) {
1998 if (c(f ? new CKEDITOR.dom.node(b) : b)) return new CKEDITOR.dom.node(b);
2170 this.$.documentElement, c = 0; b && c < a.length; c++) {
2171 var f = a[c];
2249 CKEDITOR.dom.element.setMarker = function(a, d, b, c) {
2254 return d.setCustomData(b, c)
2260 var c = d.getCustomData("list_marker_names"),
2263 for (h in c) d.removeCustomData(h);
2281 var c = CKEDITOR.tools.escapeCss(a.$.id);
2282 return "#" + c + " " + b.split(/,\s*/).join(", #" + c + " ")
2285 function c(a) {
2286 …for (var b = 0, c = 0, e = k[a].length; c < e; c++) b += parseFloat(this.getComputedStyle(k[a][c])…
2299 var c = this.$.className;
2300 c && (a(c, b) || (c += " " + b));
2301 this.$.className = c || b;
2310 var c = this.getAttribute("class");
2311 c && a(c, b) && ((c = c.replace(new RegExp("(?:^|\\s+)" +
2312 …b + "(?\x3d\\s|$)"), "").replace(/^\s+/, "")) ? this.setAttribute("class", c) : this.removeAttribu…
2341 var c = new CKEDITOR.dom.range(this.getDocument());
2342 c.setStartAfter(this);
2343 c.setEndAfter(a);
2344 var e = c.extractContents(!1, b || !1),
2346 c.insertNode(this.remove());
2348 …for (c = new CKEDITOR.dom.element("div"); d = e.getFirst();) d.$.style.backgroundColor && (d.$.sty…
2349 c.insertAfter(this);
2350 c.remove(!0)
2391 var c = this.getDocument()._getHtml5ShivFrag();
2392 c.appendChild(b);
2394 c.removeChild(b);
2447 c = this.$.attributes,
2451 …for (e = 0; e < c.length; e++) - 1 === CKEDITOR.tools.indexOf(a, c[e].name) && (b[c[e].name] = c[e…
2537 var c = this.getParent();
2538c.type == CKEDITOR.NODE_ELEMENT && (c = c.clone(), c.setHtml(b), b = c.getHtml(), c.setHtml(a), a …
2544 b, c;
2545 …), !b.equals(CKEDITOR.document.getWindow()) && (c = b.$.frameElement) && (a = (new CKEDITOR.dom.el…
2550 for (var a = this.getChildren(), b = 0, c = a.count(); b < c; b++) {
2559 var c = a[b];
2560 switch (c.nodeName) {
2566 if (c.specified) return !0
2573 c = {
2577 return 0 < b && (2 < b || !c[a[0].nodeName] || 2 == b && !c[a[1].nodeName])
2581 var c = this.$.attributes.getNamedItem(b);
2590 return c ?
2591 c.specified : !1
2603 var c = this.$;
2605 if (c != a) {
2608 for (; e = c.lastChild;) a.insertBefore(c.removeChild(e), a.firstChild);
2610 for (; e = c.firstChild;) a.appendChild(c.removeChild(e))
2614 function a(b, c, e) {
2615 if (c && c.type == CKEDITOR.NODE_ELEMENT) {
2616 for (var d = []; c.data("cke-bookmark") || c.isEmptyInlineRemoveable();)
2617 …if (d.push(c), c = e ? c.getNext() : c.getPrevious(), !c || c.type != CKEDITOR.NODE_ELEMENT) retur…
2618 if (b.isIdentical(c)) {
2620 c.moveChildren(b, !e);
2621 c.remove();
2641 … return CKEDITOR.env.ie && (CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks) ? function(b, c) {
2642c : "style" == b ? this.$.style.cssText = c : "tabindex" == b ? this.$.tabIndex = c : "checked" ==…
2644 } : CKEDITOR.env.ie8Compat && CKEDITOR.env.secure ? function(b, c) {
2645 if ("src" == b && c.match(/^http:\/\//)) try {
2680 var c = ["top", "left", "right", "bottom"],
2683 for (var b = [], d = 0; d < c.length; d++)
2686 0; v < e.length; v++) b.push([a, c[d], e[v]].join("-"));
2687 else b.push([a, c[d]].join("-"));
2707 …for (var a, b = this.getElementsByTag("*"), c = 0, e = b.count(); c < e; c++) a = b.getItem(c), a.…
2720 c = 0,
2732 … h.scrollLeft, c = d.$.scrollTop || h.scrollTop) : (c = v ? d.$ : h, b = c.scrollLeft, c = c.scrol…
2737 c += x.$.offsetTop - x.$.scrollTop;
2738 x.equals(this) || (b += x.$.clientLeft || 0, c += x.$.clientTop || 0);
2739 … for (; m && !m.equals(x);) b -= m.$.scrollLeft, c -= m.$.scrollTop, m = m.getParent();
2743 … && (a = (new CKEDITOR.dom.element(f.$.frameElement)).getDocumentPosition(a), b += a.x, c += a.y));
2745 v || (b += this.$.clientLeft ? 1 : 0, c += this.$.clientTop ? 1 : 0);
2748 y: c
2756 var c = b.getWindow();
2758 var e = c.$.frameElement;
2764 scrollIntoParent: function(a, b, c) {
2767 function h(b, c) {
2769 a.getWindow().$.scrollBy(b, c) : (a.$.scrollLeft += b, a.$.scrollTop += c)
2773 var c = {
2779 c.x = e.left;
2780 c.y = e.top
2783 … e.equals(b) || (e = x(CKEDITOR.dom.element.get(e.$.frameElement), b), c.x += e.x, c.y += e.y);
2784 return c
2806 c && (0 > v || 0 < e) && h(0 > v ? v : e, 0)
2808 setState: function(a, b, c) {
2816 c && this.setAttribute("aria-pressed", !0);
2817 c && this.removeAttribute("aria-disabled");
2823 c && this.setAttribute("aria-disabled", !0);
2824 c && this.removeAttribute("aria-pressed");
2827 …eClass(b + "_on"), this.removeClass(b + "_disabled"), c && this.removeAttribute("aria-pressed"), c
2840 var c = this.$.attributes;
2842 for (var e = 0; e < c.length; e++) {
2843 var d = c[e],
2866 function a(b, c) {
2868 if (0 <= c && c < e.length) return e[c]
2871 var c = this.$;
2873 for (b = b.slice(); 0 < b.length && c;) c = a(c,
2875 else c = a(c, b);
2876 return c ? new CKEDITOR.dom.node(c) : null
2902 c, e, d;
2904 for (c in b)
2905 …if (e = b[c], e.element.equals(this) && e.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO || !a && (…
2909 var c = d(this);
2912 c();
2916 var c = d(this);
2918 c();
2921 forEach: function(a, b, c) {
2922 if (!(c || b && this.type != b)) var e = a(this);
2924 c = this.getChildren();
2925 …for (var d = 0; d < c.count(); d++) e = c.getItem(d), e.type == CKEDITOR.NODE_ELEMENT ? e.forEach(…
2934 …"number" == typeof b && (!d || CKEDITOR.env.ie && CKEDITOR.env.quirks || (b -= c.call(this, a)), t…
2938 b && (d -= c.call(this, a));
2983 var c = this.range;
2987 if (c.collapsed) return this.end(), null;
2988 c.optimize()
2990 var e, d = c.startContainer;
2991 e = c.endContainer;
2992 var f = c.startOffset,
2993 y = c.endOffset,
3002 … !a.equals(C)) && (a.type != CKEDITOR.NODE_ELEMENT || !b || !a.equals(c.root))
3009 ….equals(a)) && (!q || !a.equals(q)) && (a.type != CKEDITOR.NODE_ELEMENT || !b || !a.equals(c.root))
3030 for (var c, e = null; c = a.call(this, b);) e = c;
3080 c = {
3085 …" != this.getComputedStyle("float") || this.getComputedStyle("position") in c || !b[this.getComput…
3098 function c(a) {
3103 d = e && e.type != CKEDITOR.NODE_ELEMENT && (f = e.getParent()) && c(f);
3104 d = a ? d : d || c(e);
3110 var c;
3111 …b && b.type == CKEDITOR.NODE_TEXT && (c = !CKEDITOR.tools.trim(b.getText()) || CKEDITOR.env.webkit…
3112 return !!(a ^ c)
3118 c = CKEDITOR.env.webkit ? 1 : 0;
3120 … b(e) ? e = 1 : (e.type == CKEDITOR.NODE_TEXT && (e = e.getParent()), e = e.$.offsetWidth <= c);
3125 return function(c) {
3126 return !!(b ^ c.type == a)
3133 return function(c) {
3134 … var e = CKEDITOR.env.needsBrFiller ? c.is && c.is("br") : c.getText && f.test(c.getText());
3135 e && (e = c.getParent(), c = c.getNext(b), e = e.isBlockBoundary() &&
3136 (!c || c.type == CKEDITOR.NODE_ELEMENT && c.isBlockBoundary()));
3164 for (var c = 0, e = b.getChildCount(); c < e; ++c)
3165 if (!r(b.getChild(c))) return !!a;
3172 c;
3173 for (c in a) CKEDITOR.dtd[c]["#"] && (b[c] = 1);
3205 function d(a, b, c, d, f) {
3206 function h(a, b, c, e) {
3207 var d = c ? a.getPrevious() : a.getNext();
3209 l || e ? b.append(a.clone(!0, f), c) : (a.remove(), r && b.append(a, c));
3214 var a, b, c, e = Math.min(O.length, p.length);
3216 if (b = O[a], c = p[a], !b.equals(c)) return a;
3222 c = E && z && !t.equals(F);
3223 b < w - 1 || b < A - 1 || c ? (c ? a.moveToPosition(F,
3224 …T && (c = CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display…
3225 startNode: c
3238 …t.equals(F) || t.type === CKEDITOR.NODE_ELEMENT && t.getFirst().equals(F))) c.append(a.document.cr…
3243 … w = O.length - 1, A = p.length - 1, G = c, I, X, V, da = -1, Q = N; Q <= w; Q++) {
3255 G = c;
3257 if (c = p[Q], V = c.getPrevious(), c.equals(O[Q])) b && (G = G.getChild(0));
3259 …Q != A || c.equals(O[Q]) && A < w ? b && (I = G.append(c.clone(0, f))) : q ? h(c, G, !1, z) : P &&…
3270 c = CKEDITOR.dom.walker.bookmark(!0),
3273 …return c(f) || b(f) ? !0 : d(f) && !a ? a = !0 : f.type == CKEDITOR.NODE_TEXT && (f.hasAscendant("…
3277 function c(a) {
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…
3351 var c = new CKEDITOR.dom.documentFragment(this.document);
3352 this.collapsed || d(this, 1, c, a, "undefined" == typeof b ? !0 : b);
3353 return c
3356 var b, c, d, f, h = this.collapsed;
3363 …h || (c = b.clone(), c.setHtml("\x26nbsp;"), a && c.setAttribute("id", d + "E"), f = this.clone(),…
3367c ? (this.setStartAfter(b), this.setEndBefore(c)) : this.moveToPosition(b, CKEDITOR.POSITION_AFTER…
3370 endNode: a ? d + "E" : c,
3400 …e.getText() ? d += m : (f = e.getPrevious(c), m ? (d = m, e = f ? f.getNext() : e.getParent().getF…
3407 function b(a, c) {
3408 var e = c.getCustomData("cke-fillingChar");
3414 var c = CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT, !0);
3415 return function(c) {
3425 c && (a(f),
3428 start: f.container.getAddress(c),
3429 end: d ? null : m.container.getAddress(c),
3432 normalized: c,
3441 c = a.startOffset,
3444 this.setStart(b, c);
3446 } else b = (c = a.serializable) ? this.document.getById(a.startNode) : a.startNode,
3447 …a = c ? this.document.getById(a.endNode) : a.endNode, this.setStartBefore(b), b.remove(), a ? (thi…
3452 c = this.startOffset,
3456 if (f = a.getChildCount(), f > c) a = a.getChild(c);
3478 var c = this.startContainer,
3480c = c.equals(d) ? a && c.type == CKEDITOR.NODE_ELEMENT && this.startOffset == this.endOffset - 1 ?…
3481 return b && !c.is ? c.getParent() : c
3499 var c = this.startContainer,
3502 if ((!a || f) && c && c.type == CKEDITOR.NODE_TEXT) {
3504 if (d >= c.getLength()) d = c.getIndex() + 1, c = c.getParent();
3506 var h = c.split(d),
3507 d = c.getIndex() + 1,
3508 c = c.getParent();
3509 …ls(this.endContainer) ? this.setEnd(h, this.endOffset - this.startOffset) : c.equals(this.endConta…
3511 else d = c.getIndex(), c = c.getParent();
3512 this.setStart(c, d);
3518 c = this.endContainer;
3520 …!c || c.type != CKEDITOR.NODE_TEXT || (d ? (d >= c.getLength() || c.split(d), d = c.getIndex() + 1…
3523 function c(a) {
3532 var c = new CKEDITOR.dom.range(g);
3533 c.setStart(a, b);
3534 c.setEndAt(g, CKEDITOR.POSITION_BEFORE_END);
3535 var c = new CKEDITOR.dom.walker(c),
3537 for (c.guard = function(a) {
3539 }; e = c.next();) {
3555 for (l = c(l); l || t;) {
3588 } l && (l = c(l.getParent()))
3631 l && (l = c(l.getParent()))
3690 shrink: function(a, b, c) {
3691 …var d = "boolean" === typeof c ? c : c && "boolean" === typeof c.shrinkOnBlockBoundary ? c.shrinkO…
3692 f = c && c.skipBogus;
3700 l = c = 1;
3701 …EXT && (k ? k >= m.getLength() ? h.setStartAfter(m) : (h.setStartBefore(m), c = 0) : h.setStartBef…
3710 h.guard = function(b, c) {
3712 …if (a == CKEDITOR.SHRINK_ELEMENT && b.type == CKEDITOR.NODE_TEXT || c && b.equals(L) || !1 === d &…
3713 c || b.type != CKEDITOR.NODE_ELEMENT || (L = b);
3716c && (m = h[a == CKEDITOR.SHRINK_ELEMENT ? "lastForward" : "next"]()) && this.setStartAt(m, b ? CK…
3719 return !(!c && !l)
3726 c = b.getChild(this.startOffset);
3727 c ? a.insertBefore(c) : b.append(a);
3744 setStart: function(b, c) {
3745 …b.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$empty[b.getName()] && (c = b.getIndex(), b = b.ge…
3747 this.startOffset = c;
3748 this.endContainer || (this._setEndContainer(b), this.endOffset = c);
3751 setEnd: function(b, c) {
3752 …b.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$empty[b.getName()] && (c = b.getIndex() + 1, b = …
3754 this.endOffset = c;
3756 (this._setStartContainer(b), this.startOffset = c);
3771 setStartAt: function(b, c) {
3772 switch (c) {
3788 setEndAt: function(b, c) {
3789 switch (c) {
3805 var c = this.createBookmark(),
3815 this.moveToBookmark(c);
3819 var c = new CKEDITOR.dom.elementPath(this.startContainer, this.root),
3821 f = c.block,
3824 if (!c.blockLimit.equals(d.blockLimit)) return null;
3826 c = f && this.checkStartOfBlock();
3829 …his.root), this.moveToPosition(h, CKEDITOR.POSITION_AFTER_END), h = null) : c ? (m = new CKEDITOR.…
3834 wasStartOfBlock: c,
3842 var c = this.extractContents(!1, b || !1),
3844 c.appendTo(d);
3852 … return b(a) || c(a) || a.type == CKEDITOR.NODE_ELEMENT && a.isEmptyInlineRemoveable() ||
3857 c = CKEDITOR.dom.walker.bookmark(!1);
3859 …for (var c = this.createBookmark(), d = this[b ? "endPath" : "startPath"](), f = d.block || d.bloc…
3860 this.moveToBookmark(c)
3876 f.evaluator = c(d);
3881 c = this.startOffset;
3882 …CKEDITOR.env.ie && c && a.type == CKEDITOR.NODE_TEXT && (a = CKEDITOR.tools.ltrim(a.substring(0, c
3886 c = this.clone();
3887 c.collapse(!0);
3888 c.setStartAt(a.block || a.blockLimit, CKEDITOR.POSITION_AFTER_START);
3889 a = new CKEDITOR.dom.walker(c);
3895 c = this.endOffset;
3896 …ie && a.type == CKEDITOR.NODE_TEXT && (a = CKEDITOR.tools.rtrim(a.substring(c)), g.test(a) && this…
3899 c = this.clone();
3900 c.collapse(!1);
3901 c.setEndAt(a.block || a.blockLimit, CKEDITOR.POSITION_BEFORE_END);
3902 a = new CKEDITOR.dom.walker(c);
3906 getPreviousNode: function(a, b, c) {
3909 d.setStartAt(c || this.root, CKEDITOR.POSITION_AFTER_START);
3910 c = new CKEDITOR.dom.walker(d);
3911 c.evaluator = a;
3912 c.guard = b;
3913 return c.previous()
3915 getNextNode: function(a, b, c) {
3918 d.setEndAt(c || this.root, CKEDITOR.POSITION_BEFORE_END);
3919 c = new CKEDITOR.dom.walker(d);
3920 c.evaluator = a;
3921 c.guard = b;
3922 return c.next()
3925 function a(b, c) {
3930 ….is("html") || "true" == b.getAttribute("contentEditable") && (b.contains(c) || b.equals(c))) break
3938 c = this.endContainer;
3939 return !(a(b, c) && a(c, b))
3945 for (var c = 0; a;) {
3948 c = 1;
3952 …)) this.moveToPosition(a, b ? CKEDITOR.POSITION_BEFORE_END : CKEDITOR.POSITION_AFTER_START), c = 1;
3956 f = c,
3962 return !!c
3965 var c, d = 0,
3967 … a ? (c = new CKEDITOR.dom.range(this.root), c.moveToPosition(a, m[b ? 0 : 1])) : c = this.clone();
3970c[b ? "getNextEditableNode" : "getPreviousEditableNode"]()) d = 1, (h = f.type == CKEDITOR.NODE_EL…
3971 d && this.moveToRange(c);
3986 c = CKEDITOR.dom.walker.whitespaces(!0);
3988 return c(a) && b(a)
4015 c = this.endContainer,
4017 f = c.getAscendant("table", !0);
4018 return CKEDITOR.env.safari && d && c.equals(this.root) ?
4023 b, c, d, f = this.clone();
4025 …(d = f.startContainer.type == CKEDITOR.NODE_TEXT) ? (c = f.startContainer.getText(), b = f.startCo…
4027 d && (f.startContainer.setText(c), b.remove());
4031 function a(b, c) {
4035 e = new CKEDITOR.dom.range(c.root),
4037c.startContainer instanceof CKEDITOR.dom.element && (h = 0 === c.startOffset && c.startContainer.h…
4038c.endContainer instanceof CKEDITOR.dom.element && (l = (l = c.endOffset === (c.endContainer.getChi…
4039 h && e.setStart(c.startContainer.getParent(), c.startContainer.getIndex());
4040 l && e.setEnd(c.endContainer.getParent(), c.endContainer.getIndex() + 1);
4041 if (h || l) c = e;
4042 e = c.cloneContents();
4045 var b = c.root.editor;
4058 }, c), CKEDITOR.tools.array.forEach(e, function(a) {
4063 … l && (Array.prototype.splice.call(d, f, a.length - e, a.widgetRect), c = !0)
4065 c || (e < d.length - 1 ? b(e + 1) : d.push(a.widgetRect))
4067 var c;
4072 function b(a, c, e) {
4074c.collapsed ? e.startContainer instanceof CKEDITOR.dom.element ? (a = e.checkStartOfBlock(), f = n…
4075 …a = c.getClientRects(), e.startContainer.setText("")) : a = [d(e.createBookmark())]) : a = [d(e.cr…
4079 function c(a, b, d) {
4090 var c;
4093 …a ? (a.setText("​"), a.removeStyle("display"), c = [b.getClientRect(), a.getClientRect()], a.remov…
4096 right: Math.max(c[0].right, c[1].right),
4097 bottom: Math.max(c[0].bottom, c[1].bottom),
4098 left: Math.min(c[0].left, c[1].left),
4099 top: Math.min(c[0].top, c[1].top),
4100 width: Math.abs(c[0].left - c[1].left),
4101 height: Math.max(c[0].bottom, c[1].bottom) - Math.min(c[0].top, c[1].top)
4113 return c(a, d, this)
4116 return [c(d(this.createBookmark()), a, this)]
4126 var c = this.getCommonAncestor(),
4130 if (c && c.find)
4131 for (m = c.find(a), h = 0; h < m.count(); h++)
4132 …if (c = m.getItem(h), b || !c.isReadOnly()) g = c.getPosition(d.startNode) & CKEDITOR.POSITION_FOL…
4133 …equals(c), k = c.getPosition(d.endNode) & CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_IS_CONTA…
4139 var c = a[a.length - 1],
4143 if (c) {
4147 e.setStart(c.endContainer, c.endOffset);
4152 d ? c.setEnd(b.endContainer, b.endOffset) : a.push(b);
4183 function b(a, c, f, h) {
4196 … if ((g = CKEDITOR.filter.instances[h.element.data("cke-filter")]) && !g.check(c)) return b(a,
4197c, f, h.remaining);c = new CKEDITOR.dom.range(h.element);c.selectNodeContents(h.element);c = c.cre…
4201 iterator: c
4206 function c(a, b, c) {
4209 a.collapse(!c);
4210 return a.checkBoundaryOfElement(b, c ? CKEDITOR.START : CKEDITOR.END)
4239 J = !x.collapsed && c(x, k.block),
4240 u = !x.collapsed && c(x, m.block, 1);
4326 _getNextSourceNode: function(a, b, c) {
4328 return !(a.equals(c) || a.equals(f))
4358 this.checkAllowed = function(c) {
4359 return c || "boolean" != typeof b ? b = a.activeFilter.checkFeature(this) : b
4418 function a(a, b, c, d, f) {
4427 c && (w.featureName = c.toLowerCase());
4455 c = 0;
4456 for (d = a.length; c < d; ++c) {
4457 e = E(a[c]);
4483 function d(a, c, d, f) {
4484 if (!a.match || a.match(c))
4485 if (f || g(a, c))
4486 …| (d.allAttributes = b(a.attributes, c.attributes, d.validAttributes)), d.allStyles || (d.allStyle…
4488 c = c.classes;
4493 for (var e = 0, w = c.length, l; e < w; ++e) l = c[e], f[l] ||
4502 function b(a, b, c) {
4505 for (var d in b) c[d] || (c[d] = a(d));
4509 function c(a, b, c) {
4512 c.hadInvalidAttribute = f(a.attributes, b.attributes) || c.hadInvalidAttribute;
4513 c.hadInvalidStyle = f(a.styles, b.styles) || c.hadInvalidStyle;
4521 c.hadInvalidClass = a || c.hadInvalidClass
4528 var c = !1,
4532 if (d || a(f)) delete b[f], c = !0;
4533 return c
4536 function h(a, b, c) {
4537 if (a.disabled || a.customConfig && !c || !b) return !1;
4547 var c = {},
4550 for (f in a) c[f] = a[f], d++;
4551 return d ? c : !1
4556 var c, d, f, e;
4558 for (e = b.classes, c = 0; c < f.length; ++c)
4559 if (d = f[c], "string" == typeof d) {
4567 for (var c = 0, d; c < b.length; ++c)
4568 if (d = b[c], "string" == typeof d) {
4582 var b, c, d, f, e = {},
4584 …for (a = z(a); b = a.match(p);)(c = b[2]) ? (d = y(c, "styles"), f = y(c, "attrs"), c = y(c, "clas…
4586 classes: c,
4594 var c = a.match(N[b]);
4595 return c ? z(c[1]) : null
4600 c = a.classBackup = a.attributes["class"];
4603 a.classes || (a.classes = c ? c.split(/\s+/) : [])
4647 if (!1 === c(h[g], b, z)) {
4651 for (g = 0, k = q.length; g < k; ++g) c(q[g], b, z);
4691 c;
4692 for (c in a) - 1 < c.indexOf("*") && b.push(c.replace(/\*/g, ".*"));
4698 c;
4701 if (c = CKEDITOR.tools.writeCssText(a.styles, !0)) b.style = c;
4720 return function(c) {
4721 return c in a || b && c.match(b)
4734 function l(a, b, c) {
4736 …empty[d] || !a.children.length) "hr" == d && "br" == b ? a.replaceWith(u()) : (a.parent && c.push({
4753 if (f) a.name = b, a.attributes = {}, c.push({
4759 …T && q.$inline[w.name]) ? (p || (p = new CKEDITOR.htmlParser.element(b), p.insertAfter(a), c.push({
4762 …type == CKEDITOR.NODE_DOCUMENT_FRAGMENT || w.type != CKEDITOR.NODE_ELEMENT || h[w.name] || c.push({
4772 } ? a.remove() : (a.parent && c.push({
4778 function t(a, b, c) {
4780 for (d = 0; d < c.length; ++d)
4781 if (f = c[d], !(f.check && !a.check(f.check, !1) || f.left && !f.left(b))) {
4788 var c = b.getDefinition(),
4789 d = c.attributes,
4790 f = c.styles,
4792 if (a.name != c.element) return !1;
4795 for (c = d[e].split(/\s+/), w = a.classes.join("|"); p = c.pop();) {
4805 var c, d;
4806 … "string" == typeof a ? c = a : a instanceof CKEDITOR.style ? d = a : (c = a[0], d = a[1]);
4808 element: c,
4810 right: function(a, c) {
4811 c.transform(a, b)
4823 return function(b, c) {
4824 c[a](b)
4863 allow: function(b, c, d) {
4868 … if (b.toAllowedContentRules) return this.allow(b.toAllowedContentRules(this.editor), c, d);
4878 for (f = 0; f < b.length; ++f) l = this.allow(b[f], c, d);
4881 a(this, b, c, this.allowedContent, this._.allowedRules);
4884 applyTo: function(a, b, c, d) {
4891 doFilter: !c,
4903 var c;
4905 … var d = decodeURIComponent(a.value.replace(/^\{cke_protected\}/, ""));c = [];
4910 c = !0;
4912 …children.length && (l = d.children[0]).type == CKEDITOR.NODE_ELEMENT && B(f, l, c, t);c = !c.length
4914 c || e.push(a)
4921 for (var z; c = e.pop();) c.type == CKEDITOR.NODE_ELEMENT ? l(c, d, a) : c.remove();
4923 if (c = E.el, c.parent) switch (z = q[c.parent.name] || q.span, E.check) {
4925 … q.$removeEmpty[c.name] && !c.children.length ? l(c, d, a) : m(c) || l(c, d, a);
4928 c.parent.type ==
4929 CKEDITOR.NODE_DOCUMENT_FRAGMENT || z[c.name] || l(c, d, a);
4932c.parent.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT || z[c.name] || l(c.parent, d, a)
4952 var b, c, d = [],
4954 … = 0; b < a.length && !f; ++b) c = a[b], ("string" == typeof c || c instanceof CKEDITOR.style) && …
4974 var b, c;
4986 c = [];
4988 … e.left.getDefinition().element), h instanceof CKEDITOR.style && (h = C(h)), c.push({
4995 d[b].push(c)
4999 check: function(a, b, c) {
5003 if (this.check(a[d], b, c)) return !0;
5008 w = a + "\x3c" + (!1 === b ? "0" : "1") + (c ? "1" : "0") + "\x3e";
5038 skipRequired: !c,
5039 skipFinalValidation: !c
5041 …0 < p.length ? c = !1 : ((b = f.attributes["class"]) && (f.attributes["class"] = f.attributes["cla…
5042 "string" == typeof a && (this._.cachedChecks[w] = c);
5043 return c
5052 return function(c, d) {
5055 if (this.check(H[c])) return c;
5109 lengthToStyle: function(a, b, c) {
5110 c = c || b;
5111 if (!(c in a.styles)) {
5113 d && (/^\d+$/.test(d) && (d += "px"), a.styles[c] = d)
5117 lengthToAttribute: function(a, b, c) {
5118 c = c || b;
5119 if (!(c in a.attributes)) {
5122 f ? a.attributes[c] = f[1] : "cke-test" == d && (a.attributes[c] = "cke-test")
5174 c[d[0]];
5175 a.styles["margin-right"] = c[d[1]];
5176 a.styles["margin-bottom"] = c[d[2]];
5177 a.styles["margin-left"] = c[d[3]]
5180 var c = a.styles.margin.match(/(\-?[\.\d]+\w+)/g) || ["0px"];
5181 switch (c.length) {
5201 var c = b.getDefinition(),
5202 d = c.styles,
5203 f = c.attributes,
5205 a.name = c.element;
5208 for (c =
5209 …a.classes.join("|"), w = f[e].split(/\s+/); p = w.pop();) - 1 == c.indexOf(p) && a.classes.push(p);
5266 c = "blur";
5267 … d && (CKEDITOR.env.ie ? (b = "focusin", c = "focusout") : CKEDITOR.event.useCapture = 1);
5277 a.on(c, f.blur, this);
5411 var c = this;
5413 c[a].dir = c.rtl[a] ? "rtl" : "ltr";
5414 b(a, c[a])
5421 var c = d.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),
5422 f = c[1],
5423 c = c[2];
5424 b[f + "-" + c] ? f = f + "-" + c : b[f] || (f = null);
5438 load: function(b, c, f, h) {
5446 c && (k ? c.call(f, a) : c.call(f, n, r))
5454 v = function(b, c) {
5458 for (var e = 0; e < f.length; e++) f[e](b, c)
5472c && (CKEDITOR.env.ie && (8 >= CKEDITOR.env.version || CKEDITOR.env.ie9Compat) ? e.$.onreadystatec…
5492 (b = c[0]) && this.load(b.scriptUrl, b.callback, CKEDITOR, 0)
5494 var c = [];
5497 c.push({
5501 c.shift();
5505 1 == c.length && a.call(this)
5542 for (var c = 0; c < a.length; c++) {
5543 var f = a[c];
5556 … for (var c = this.loaded, f = this.registered, h = [], k = {}, g = {}, n = 0; n < a.length; n++) {
5559 if (c[r] || f[r]) g[r] = this.get(r);
5573 c[m] = 1
5582 return function(b, c, f) {
5604 c && c.call(f || window, h)
5612 var c = this.get(a);
5613 a = c.langEntries || (c.langEntries = {});
5614 c = c.lang || (c.lang = []);
5615 c.split && (c = c.split(",")); - 1 == CKEDITOR.tools.indexOf(c, d) && c.push(d);
5631 var c = this.items[a] = {
5636 CKEDITOR.tools.extend(c, b)
5644 c = d && d.command && this.editor.getCommand(d.command),
5647 c && c.uiItems.push(b);
5687 c);
5694 this.on("mode", c);
5724 function c() {
5735 b, c) {
5738 for (f in e) d = e[f], (c || d.contextSensitive) && d.refresh(a, b)
5746 c = x[b] || (x[b] = {});
5747c.fn ? (c.fn.call(a, a.config), CKEDITOR.getUrl(a.config.customConfig) != b && k(a) || a.fireOnce(…
5748 c.fn = CKEDITOR.editorConfig ? CKEDITOR.editorConfig : function() {};
5758 for (var c in b.on) a.on(c,
5759 b.on[c]);
5763 c = a.config;
5764 …a.readOnly = c.readOnly ? !0 : a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? a.element.is("texta…
5767 a.tabIndex = c.tabIndex || a.element && a.element.getAttribute("tabindex") || 0;
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);
5787 CKEDITOR.lang.load(a.config.language, a.config.defaultLanguage, function(b, c) {
5790 a.lang = CKEDITOR.tools.prototypedCopy(c);
5816 var c = a.config,
5817 d = b(c.plugins),
5818 f = b(c.extraPlugins),
5819 e = b(c.removePlugins);
5857 c.keystrokes && a.setKeystroke(a.config.keystrokes);
5879 function c(a) {
5892 c(M) ? (e || (e = q.getAscendant("table").clone(), e.append(q.getAscendant({
5908 for (var c = 0; c < b.length; c++) {
5909 var d = b[c];
5920 var c = b instanceof CKEDITOR.command ? b : new CKEDITOR.command(this, b);
5921 this.mode && f(this, c);
5922 return this.commands[a] = c
5926 c.updateElement();
5927 c._.required && !d.getValue() && !1 === c.fire("required") &&
5934 var c = this,
5935 d = c.element,
5942 })), c.on("destroy", function() {
5971 var c = this.getCommand(a),
5975 command: c
5977 return c && c.state != CKEDITOR.TRISTATE_DISABLED &&
5978 …!1 !== this.fire("beforeCommandExec", d) && (d.returnValue = c.exec(d.commandData), !c.async && !1…
6001 setData: function(a, b, c) {
6004 b && "object" == typeof b && (c = b.internal, f = b.callback, d = !b.noSnapshot);
6005 !c && d && this.fire("saveSnapshot");
6006 if (f || !c) this.once("dataReady", function(a) {
6007 !c && d && this.fire("saveSnapshot");
6013 !c && this.fire("setData", a);
6015 !c && this.fire("afterSetData", a)
6021 insertHtml: function(a, b, c) {
6025 range: c
6036 c = this.getSelection(),
6037 c = c && c.getRanges();
6038 if (!b || !c || 0 === c.length) return null;
6039 b = B(c, b);
6043 var c = this.editable(),
6047 if (!c || 0 === d.length) return null;
6048 for (e = 0; e < d.length; e++) f.append(c.extractHtmlFromRange(d[e], b));
6068 …], c, d, f = b.length; f--;) c = b[f], d = 0, CKEDITOR.tools.isArray(c) && (d = c[1], c = c[0]), d…
6073 c = this.keystrokeHandler.keystrokes,
6076 for (d in c)
6077 if (c.hasOwnProperty(d) && c[d] == b) return d
6132 for (var c, f, h = 0, k; c = this._.htmlPartsRegex.exec(b);) {
6133 f = c.index;
6138 if (f = c[1])
6142 } if (k) k.push(c[0]);
6143 else if (f = c[3]) {
6146 n, r = c[4];
6147 c = !!c[5];
6154 this.onTagOpen(f, g, c);
6157 } else if (f = c[2]) this.onComment(f)
6213 c = this.next;
6214 b && (b.next = c);
6215 c && (c.previous = b);
6222 c = a.previous = this.previous,
6224 c && (c.next = a);
6233 c = a.next;
6238 c && (c.previous = this);
6353 c = CKEDITOR.tools.extend({}, {
6374 for (var c = 0; c < m.length; c++) {
6375 var d = m[c],
6379 … f == u.name && (y(u, u.parent, 1), c--) : (b || (r(), b = 1), d = d.clone(), d.parent = u, u = d,…
6390 c = a.children[b - 1],
6392 c && c.type == CKEDITOR.NODE_TEXT && ((d = CKEDITOR.tools.rtrim(c.value)) ?
6393 c.value = d : a.children.length = b - 1)
6397 function y(b, c, d) {
6398 c = c || u || x;
6400 …oid 0 === b.previous && (v(c, b) && (u = c, D.onTagOpen(g, {}), b.returnPoint = c = u), e(b), a(b)…
6401 b.returnPoint ? (u = b.returnPoint, delete b.returnPoint) : u = d ? c : f
6406 var c, d;
6407 …return (c = b.attributes && (d = b.attributes["data-cke-real-element-type"]) ? d : b.name) && c in…
6438 …EDITOR.dtd[h] || (u._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span) : c, e.isUnknown || u.is…
6461 …} for (var c = [], d = [], f = u; f != x && f.name != a;) f._.isBlockLike || d.unshift(f), c.push(…
6463 for (b = 0; b < c.length; b++) {
6464 var e = c[b];
6479 … e = b ? CKEDITOR.dtd[b] || (u._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span) : c;
6508 var c = 0 < b ? this.children[b - 1] : null;
6509 if (c) {
6510 …if (a._.isBlockLike && c.type == CKEDITOR.NODE_TEXT && (c.value = CKEDITOR.tools.rtrim(c.value), 0…
6515 c.next =
6518 a.previous = c;
6528 filterChildren: function(a, b, c) {
6530 c = this.getFilterContext(c);
6531 if (b && !this.parent) a.onRoot(c, this);
6534 c) && b--
6541 writeChildrenHtml: function(a, b, c) {
6543 if (c && !this.parent && b) b.onRoot(d, this);
6546 c = this.children;
6547 for (d = c.length; b < d; b++) c[b].writeHtml(a)
6549 forEach: function(a, b, c) {
6550 if (!(c || b && this.type != b)) var d = a(this);
6552 c = this.children;
6553 …for (var f = 0; f < c.length; f++) d = c[f], d.type == CKEDITOR.NODE_ELEMENT ? d.forEach(a, b) : b…
6567 function d(b, c, d, h) {
6569 for (k in c)(g = b[k]) || (g = b[k] = new a), g.add(c[k], d, h)
6584 addRules: function(a, c) {
6586 "number" == typeof c ? f = c : c && "priority" in c && (f =
6587 c.priority);
6589 "object" != typeof c && (c = {});
6590 a.elementNames && this.elementNameRules.addMany(a.elementNames, f, c);
6591 a.attributeNames && this.attributeNameRules.addMany(a.attributeNames, f, c);
6592 a.elements && d(this.elementsRules, a.elements, f, c);
6593 a.attributes && d(this.attributesRules, a.attributes, f, c);
6594 a.text && this.textRules.add(a.text, f, c);
6595 a.comment && this.commentRules.add(a.comment, f, c);
6596 a.root && this.rootRules.add(a.root, f, c)
6601 onElementName: function(a, c) {
6603 c)
6605 onAttributeName: function(a, c) {
6606 return this.attributeNameRules.execOnName(a, c)
6608 onText: function(a, c, d) {
6609 return this.textRules.exec(a, c, d)
6611 onComment: function(a, c, d) {
6612 return this.commentRules.exec(a, c, d)
6614 onRoot: function(a, c) {
6615 return this.rootRules.exec(a, c)
6617 onElement: function(a, c) {
6618 …for (var d = [this.elementsRules["^"], this.elementsRules[c.name], this.elementsRules.$], h, k = 0…
6620 h = h.exec(a, c, this);
6622 if (h && h != c) return this.onNode(a, h);
6623 if (c.parent && !c.name) break
6624 } return c
6626 onNode: function(a, c) {
6627 var d = c.type;
6628c) : d == CKEDITOR.NODE_TEXT ? new CKEDITOR.htmlParser.text(this.onText(a, c.value)) : d == CKEDIT…
6630 onAttribute: function(a, c, d, h) {
6631 return (d = this.attributesRules[d]) ? d.exec(a, h, c, this) : h
6637 add: function(a, c, d) {
6638 this.rules.splice(this.findIndex(c), 0, {
6640 priority: c,
6645 c, d) {
6646 for (var h = [this.findIndex(c), 0], k = 0, g = a.length; k < g; k++) h.push({
6648 priority: c,
6654 for (var c = this.rules, d = c.length - 1; 0 <= d && a < c[d].priority;) d--;
6657 exec: function(a, c) {
6658 … var d = c instanceof CKEDITOR.htmlParser.node || c instanceof CKEDITOR.htmlParser.fragment,
6664 … if (d && (n = c.type, r = c.name), e = k[y], !(a.nonEditable && !e.options.applyToAll ||
6668 null != e && (h[0] = c = e)
6669 } return c
6671 execOnName: function(a, c) {
6672 …length, g; c && d < k; d++) g = h[d], a.nonEditable && !g.options.applyToAll || a.nestedEditable &…
6673 return c
6692 …for (q(w, 1) && l.push(w); w;) h(w) && (p = c(w)) && q(p) && ((E = c(p)) && !h(E) ? l.push(p) : (e…
6703 var c;
6704 …type == CKEDITOR.NODE_TEXT && (c = a.value.match(m)) && (c.index && ((new CKEDITOR.htmlParser.text…
6705 …a.value = c[0]), !CKEDITOR.env.needsBrFiller && z && (!b || a.parent.name in g) || !z && ((c = a.p…
6724 var l = c(b);
6742 function c(a) {
6757 var c = a.children[a.children.length - 1];
6760 c && (c.next = b, b.previous = c)
6782 function(a, b, c) {
6783 return "\x3c" + b + c.replace(q, function(a, b) {
6784 …return E.test(b) && -1 == c.indexOf("data-cke-saved-" + b) ? " data-cke-saved-" + a + " data-cke-"…
6790 return a.replace(b, function(a, b, c) {
6791 …0 === a.indexOf("\x3ctextarea") && (a = b + B(c).replace(/</g, "\x26lt;").replace(/>/g, "\x26gt;")…
6816 var c = b._.dataStore;
6820 return c && c[b] || ""
6825 var c = [],
6833 return "\x3c!--{cke_tempcomment}" + (c.push(a) - 1) + "--\x3e"
6837 return c[d]
6839 … return /cke_temp(comment)?/.test(a) ? a : "\x3c!--{cke_temp}" + (c.push(a) - 1) + "--\x3e"
6843 "") + encodeURIComponent(c[d]).replace(/--/g, "%2D%2D") + "--\x3e"
6851 … return a = a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g, function(a, c, d, f) {
6852 return "\x3c" + c + d + "\x3e" + D(B(f), b) + "\x3c/" + c + "\x3e"
6856 var c,
6859 this.dataFilter = c = new CKEDITOR.htmlParser.filter;
6862 c.addRules(t);
6863 c.addRules(F, {
6866 c.addRules(a(b, "data"), {
6878 var c = a.dataValue,
6879 f, c = x(c, b),
6880 c = e(c, H),
6881 c = r(c),
6882 c = e(c, z),
6883 c = c.replace(O, "$1cke:$2"),
6884 c = c.replace(N, "\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"),
6885 c = c.replace(/(<pre\b[^>]*>)(\r\n|\n)/g, "$1$2$2"),
6886c = c.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi, "$1data-cke-" + CKEDITOR.rnd + "-$2");
6889 …R.env.ie && 9 > CKEDITOR.env.version && "pre" == f && (f = "div", c = "\x3cpre\x3e" + c + "\x3c/pr…
6891 f.setHtml("a" + c);
6892 c = f.getHtml().substr(1);
6893 c = c.replace(new RegExp("data-cke-" + CKEDITOR.rnd + "-", "ig"), "");
6894 l && (c = c.replace(/^<pre>|<\/pre>$/gi, ""));
6895 c = c.replace(p, "$1$2");
6896 c = y(c);
6897 c = B(c);
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…
6902 a.dataValue = c
6913 c = new CKEDITOR.htmlParser.basicWriter;
6914 b.writeChildrenHtml(c);
6915 b = c.getHtml(!0);
6919 var c = a.data.dataValue;
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.…
6931 var c = a.data.dataValue,
6934 c.writeChildrenHtml(d);
6935 c = d.getHtml(!0);
6936 c = B(c);
6937 c = D(c, b);
6938 a.data.dataValue = c
6942 toHtml: function(a, b, c, d) {
6945 …b && "object" == typeof b ? (e = b.context, c = b.fixForBody, d = b.dontFilter, l = b.filter, p = …
6950 fixForBody: c,
6958 var c, d, f;
6959 b && (c = b.context, d = b.filter, f = b.enterMode);
6960 c || null === c || (c = this.editor.editable().getName());
6964 context: c,
7001 var c = b.attributes.width,
7003 c && (a.attributes.width = c);
7028 …for (var c = ["name", "href", "src"], d, f = 0; f < c.length; f++) d = "data-cke-saved-" + c[f], d…
7034 var c, d;
7035 ….type == a.type && (c = CKEDITOR.tools.indexOf(K, a.name), d = CKEDITOR.tools.indexOf(K, b.name));…
7036 return c > d ? 1 : -1
7096 c = b.match(/^cke:(.*)/);
7097 c && (b = c[1]);
7108 …|| "").replace(/&quot;/g, '"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function(a, c, f) {
7109 "font-family" == c && (f = f.replace(/["']/g, ""));
7110 d[c.toLowerCase()] = f
7115 var c = this.toString();
7116c && (a instanceof CKEDITOR.dom.element ? a.setAttribute("style", c) : a instanceof CKEDITOR.htmlP…
7120 c;
7121 for (c in d) d[c] && a.push(c, ":", d[c], ";");
7277 var c = this.source.replace(a, function(a, b) {
7280 return b ? b.push(c) : c
7302 var c = a[d];
7303 if (c) return c;
7304 c = {
7308 CKEDITOR.fire("template", c);
7309 return a[d] = new CKEDITOR.template(c.source)
7336 c = a.is("textarea") ? a : null;
7337c ? (b.setData(c.getValue(), null, !0), a = CKEDITOR.dom.element.createFromHtml('\x3cdiv contented…
7338 … a.insertAfter(c), c.hide(), c.$.form && b._attachToForm()) : b.setData(a.getHtml(), null, !0);
7354 c && (b.container.clearCustomData(), b.container.remove(), c.show());
7363 …for (var c = CKEDITOR.document.getElementsByTag(b), f = 0, h = c.count(); f < h; f++) a = c.getIte…
7536 return !c(a) || a.type == CKEDITOR.NODE_COMMENT || a.isReadOnly()
7538 …TOR.ENTER_DIV ? "div" : "p"), CKEDITOR.env.needsBrFiller || (b = b.getFirst(c)) && b.type == CKEDI…
7545 e = d && d.getLast(c);
7555 function c(a) {
7560 return function(c) {
7561 var d = c.data.$.toElement || c.data.$.fromElement || c.data.$.relatedTarget;
7562 …_ELEMENT ? new CKEDITOR.dom.element(d) : null) && (b.equals(d) || b.contains(d)) || a.call(this, c)
7570 if (!(e || !c(b) || a && B(b))) return !1
7593 function k(a, b, c) {
7594 …Paragraph && a.activeEnterMode != CKEDITOR.ENTER_BR && (a.editable().equals(c) && !b || b && "true…
7609 function r(a, b, c) {
7611 for (b = a = c ? b : a;
7643 } catch (c) {
7644 if (!CKEDITOR.env.ie) throw c;
7649 var c = Array.prototype.slice.call(arguments, 0);
7650 …|blur$/.exec(a) && (a = "focus" == a ? "focusin" : "focusout", b = f(b, this), c[0] = a, c[1] = b);
7651 return CKEDITOR.dom.element.prototype.on.apply(this, c)
7669 b, c;
7670 …for (c in a) a.hasOwnProperty(c) && (b = a[c], null !== b ? this.setAttribute(c, b) : this.removeA…
7678 var c = this.getAttribute(a);
7679 …b !== c && (!this._.attrChanges && (this._.attrChanges = {}), a in this._.attrChanges || (this._.a…
7690 insertHtml: function(a, b, c) {
7694 c || (c = d.getSelection().getRanges()[0]);
7695 x(this, b || "html", a, c);
7696 c.select();
7700 insertHtmlIntoRange: function(a, b, c) {
7701 x(this, c || "html", a, b);
7717 return c(a) && !B(a)
7726 var c = this.editor,
7727 d = c.config.enterMode,
7743 "div" : "p", c.editable());
7775 var b = c.getDocument().$,
7778 a: if (d.anchorNode && d.anchorNode == c.$) e = !0;
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…
7790 var a = c.getDocument().$,
7792 e = c.getDocument().getActive();
7793 …"None" == d.type && e.equals(c) && (d = new CKEDITOR.dom.range(c), a = a.body.createTextRange(), d…
7795 var c = this;
7818 var c = K,
7827 c.table.detectPurge(d);
7833 c.list.detectMerge(d, this);
7834 c.table.detectRanges(d, this);
7835 c.block.detectMerge(d, this);
7836 …Ranges ? (c.table.deleteRanges(d), a.moveToBookmark(d.bookmark), d.range = a) : (a.moveToBookmark(…
7839 c.fixUneditableRangePosition(a);
7840 c.list.merge(d, this);
7841 c.table.purge(d, this);
7842 c.block.merge(d, this);
7844 c = a.startPath();
7845 … if (d = a.checkStartOfBlock() && a.checkEndOfBlock() && c.block && !a.root.equals(c.block)) {
7847 var d = c.block.getElementsByTag("span"),
7859 … d && (a.moveToPosition(c.block, CKEDITOR.POSITION_BEFORE_START), c.block.remove())
7860 … } else c.autoParagraph(this.editor, a), v(a.startContainer) && a.startContainer.appendBogus();
7955 var c = b.data.domEvent.getKey(),
7959 if (c in
7963 k, w, A, c = 8 == c;
7964c ? "getPrevious" : "getNext"](e)) && A.type == CKEDITOR.NODE_ELEMENT && A.is("table") && g[c ? "c…
7965c ? "End" : "Start")](A), g.select(), a.fire("saveSnapshot"), d = 1) : p.blockLimit && p.blockLimi…
7971 …b.data.getKeystroke() in q && !this.getFirst(c) && (this.appendBogus(), b = a.createRange(), b.mov…
7983 var c = b.data.getTarget();
7984c.is("img", "hr", "input", "textarea", "select") && !c.isReadOnly() && (a.getSelection().selectEle…
7992 var c = a.createRange();
7993 c.moveToElementEditStart(b);
7994 c.select(!0)
8004 var c = b.data.domEvent.getKey();
8005 if (c in q && (b = a.getSelection(), 0 !== b.getRanges().length)) {
8006 var c =
8007 8 == c,
8012 …if (e && d[c ? "checkStartOfBlock" : "checkEndOfBlock"]() && d.moveToClosestEditablePosition(e, !c
8014 … var f = d.startContainer.getChild(d.startOffset - (c ? 1 : 0));
8027 (p = (c ? d : e).getBogus()) && p.remove();
8030 (c ? e : d).moveChildren(c ? d : e, !1);
8032 r(e, d, !c);
8038c = d, p = b.block, d = c.endPath().block, p && d && !p.equals(d) ? (a.fire("saveSnapshot"), (e = …
8039 c.select(), b = !0) : b = !1;
8061 var c = a.getCustomData("stylesheet_ref");
8062 … --c ? a.setCustomData("stylesheet_ref", c) : (a.removeCustomData("stylesheet_ref"),
8078 var c = b.editor;
8079 c.on("insertElement", function(a) {
8084 c.on("selectionChange", function(b) {
8085 if (!c.readOnly) {
8086 var d = c.getSelection();
8087 …d && !d.isLocked && (d = c.checkDirty(), c.fire("lockSnapshot"), a(b), c.fire("unlockSnapshot"), !…
8096 var c = b.title;
8100 c);
8101 c && a.changeAttr("title", c);
8103 …if (d && (c = this.ui.space(this.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? "top" : "contents")…
8106 c.append(d);
8123 function b(c, d) {
8127 …for (var z = E[z.getName()], k = 0, H = c.getChildren(), m = H.count(), n = -1, r = -1, C = 0, P =…
8144 function d(b, c) {
8149 z = E[c],
8151 …&& e.push(" "); h < g; h++) q = f.getItem(h), a(q) && !q.is(z) ? e = e.concat(d(q, c)) : e.push(q);
8164 function h(b, c, d, e) {
8167 f.setEndAt(c, CKEDITOR.POSITION_BEFORE_END);
8169 ….contains(q) && e.contains(g) && g.isIdentical(q) && (g.moveChildren(q), g.remove(), h(b, c, d, e))
8172 function q(b, c) {
8173 function d(b, c) {
8174 … if (c.isBlock && c.isElement && !c.node.is("br") && a(b) && b.is("br")) return b.remove(), 1
8176 var e = c.endContainer.getChild(c.endOffset),
8177 f = c.endContainer.getChild(c.endOffset - 1);
8179 f && d(f, b[0]) && (c.setEnd(c.endContainer, c.endOffset - 1), c.collapse())
8246 (A = n.startNode.getPrevious(c)) && a(A) && f(A) && w.push(A);
8247 (A = n.startNode.getNext(c)) && a(A) && f(A) && w.push(A);
8383 D = D.getLast(c)
8403 function b(a, c, d) {
8404 c = a.getDocument().createElement(c);
8405 a.append(c, d);
8406 return c
8409 function c(a) {
8418 c(f.getElementsByTag("td"));
8419 c(f.getElementsByTag("th"));
8447 var c = b.startContainer,
8451 e.setStart(c, 0);
8453 … e || (e = b.clone(), e.setEndAt(c, CKEDITOR.POSITION_BEFORE_END), e = a(e).lastForward(), d = !0);
8454 e || (e = c);
8455 …CKEDITOR.POSITION_BEFORE_START), b.collapse(!0), e.remove()) : ((c = e.getBogus()) && c.remove(), …
8461 var c = a.range,
8462 d = c.clone(),
8463 e = c.clone(),
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…
8472 var c = b.getDocument(),
8474 a.appendEolBr && (d = this.createEolBr(c), a.fragment.append(d));
8475 … !a.prependEolBr || d && !d.getPrevious() || a.fragment.append(this.createEolBr(c),
8489 c = b.startNode,
8491 !b || !B(b) || c && c.equals(b) || a.range.setEndBefore(b)
8496 var c = a.range,
8497 d = c.getCommonAncestor(),
8499 f = new CKEDITOR.dom.elementPath(c.startContainer, b),
8500 c = new CKEDITOR.dom.elementPath(c.endContainer, b),
8511 …d.$listItem) && (f = f.contains(CKEDITOR.dtd.$list), c = c.contains(CKEDITOR.dtd.$list), !f.equals…
8522 rebuildFragment: function(a, b, c, d) {
8523 … for (var e; c && !c.equals(b) && d(c);) e = c.clone(0, 1), a.fragment.appendTo(e),
8524 a.fragment = e, c = c.getParent()
8531 c = a.endContainer,
8534 …b.type == CKEDITOR.NODE_ELEMENT && b.equals(c) && b.is("tr") && ++d == e && a.shrink(CKEDITOR.SHRI…
8539 function a(b, c) {
8541 if (d.is(CKEDITOR.dtd.$inline)) b[c ? "insertBefore" : "insertAfter"](d)
8544 function b(c, d, e) {
8548 v(c) && c.remove()
8551 function c(a, b) {
8560 var d = c(b, a.bookmark),
8570 merge: function(a, c) {
8574 f = new CKEDITOR.dom.elementPath(d, c),
8575 g = new CKEDITOR.dom.elementPath(e, c);
8591 var c = new CKEDITOR.dom.range(b);
8592 c.setStartBefore(a.bookmark.startNode);
8593 c.setEndAfter(a.bookmark.endNode);
8594 a.mergeBlockBookmark = c.createBookmark()
8597 merge: function(a, c) {
8601 f = new CKEDITOR.dom.elementPath(d, c),
8602 g = new CKEDITOR.dom.elementPath(e, c),
8612 function a(c) {
8614 f, g = new CKEDITOR.dom.walker(c),
8615 h = c.startPath().contains(d),
8616 k = c.endPath().contains(d),
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.…
8635 A && (f = c.clone(), f.selectNodeContents(a), e.push(f))
8643 function b(a, c) {
8645 e = a.getPosition(c);
8657 c = b.clone();
8658 c.enlarge(CKEDITOR.ENLARGE_ELEMENT);
8659 var c = new CKEDITOR.dom.walker(c),
8661 c.evaluator = function(a) {
8664 c.checkForward();
8666 var c = b.startPath().contains("table"),
8668c && f && b.checkBoundaryOfElement(c, CKEDITOR.START) && b.checkBoundaryOfElement(f, CKEDITOR.END)…
8672 var g = c(f, e.bookmark),
8692 c = a.range.clone(),
8695 c.moveToBookmark(a.purgeTableBookmark);
8696 c.deleteContents();
8709 var c =
8712 …k(a, c.block, c.blockLimit) && (d = g(a)) && (d = b.document.createElement(d), d.appendBogus(), b.…
8722 function d(b, c) {
8725 if ((d = !c && 1 === b.length) && !(d = b[0].collapsed)) {
8747 var c = [],
8749 for (d = 0; d < a.count(); d++) c.push(a.getItem(d));
8750 return c
8752 var c = [],
8757 }) ? c.push(d) : c = c.concat(b(d));
8758 return c
8761 function c(a) {
8763 var c = "",
8766 …for (f = 0; f < a.length; f++) e && !e.equals(a[f].getAscendant("tr")) ? (c += d.join("\t") + "\n"…
8767 return c += d.join("\t")
8783 d.selectedText = c(a);
8794 c;
8796 c = this.getSelection(1);
8798 if (!(e = !c) && (e = !c.isHidden())) {
8800 var f = c.getRanges(),
8818 … if (!b && (b = c || this.getSelection(1), !b || b.getType() == CKEDITOR.SELECTION_NONE)) return;
8820 c = this.elementPath();
8821c.compare(this._.selectionPreviousPath) || (e = this._.selectionPreviousPath && this._.selectionPr…
8823 path: c
8842 function b(c, d) {
8843 …return c && c.type != CKEDITOR.NODE_TEXT ? a.clone()["moveToElementEdit" + (d ? "End" : "Start")](
8846 var c = a.startContainer,
8847 d = a.getPreviousNode(n, null, c),
8849 c);
8850 …return b(d) || b(e, 1) || !(d || e || c.type == CKEDITOR.NODE_ELEMENT && c.isBlockBoundary() && c.…
8861 var c = a && a.removeCustomData("cke-fillingChar");
8862 if (c) {
8867 if (c.getLength() > f && e && e.intersectsNode(c.$)) {
8875 d.anchorNode == c.$ && d.anchorOffset > f && (g[0].offset -= f);
8876 d.focusNode == c.$ && d.focusOffset > f && (g[1].offset -= f)
8879 c.setText(v(c.getText(), 1));
8880 …(c = a.getDocument().$, d = c.getSelection(), c = c.createRange(), c.setStart(g[0].node, g[0].offs…
8891 var c = b && CKEDITOR.tools.htmlEncode(b) || "\x26nbsp;",
8892c = CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" s…
8893 …version ? "display:none" : "position:fixed;top:0;left:-1000px") + '"\x3e' + c + "\x3c/div\x3e", a.…
8895 a.editable().append(c);
8901 e.setStartAt(c, CKEDITOR.POSITION_AFTER_START);
8902 e.setEndAt(c, CKEDITOR.POSITION_BEFORE_END);
8906 a._.hiddenSelectionContainer = c
8916 return function(c) {
8917 var d = c.data.getKeystroke();
8921 ….getAttribute("contenteditable") && (a.getSelection().fake(d), c.data.preventDefault(), c.cancel())
8928 var c = a[b];
8929 c.getCommonAncestor().isReadOnly() && a.splice(b, 1);
8930 if (!c.collapsed) {
8931 if (c.startContainer.isReadOnly())
8932 for (var d = c.startContainer,
8933 … || !d.isReadOnly());) e && "false" == d.getAttribute("contentEditable") && c.setStartAfter(d), d …
8934 d = c.startContainer;
8935 e = c.endContainer;
8936 var f = c.startOffset,
8937 g = c.endOffset,
8938 h = c.clone();
8945 c.clone();
8946 c.setEndBefore(d);
8947 c.collapsed && a.splice(b--, 1);
8966 var c = a.editor.createRange();
8967c.moveToClosestEditablePosition(a.selected, b) && a.editor.getSelection().selectRanges([c]);
8974 var c = b.editor,
8975 d = c.createRange(),
8977c.readOnly) return (e = d.moveToClosestEditablePosition(b.selected, a)) || (e = d.moveToClosestEdi…
8980 var c = a(),
8983 37: c,
8984 38: c,
8994 c.getSelection();
8997 var c = a.editor;
8998 c.on("contentDom", function() {
9000 r = new CKEDITOR.dom.selection(c.getSelection());
9008 c = a.createRange();
9009 … "None" != a.type && c.parentElement() && c.parentElement().ownerDocument == e.$ && c.select()
9019 var e = c.document,
9021 g = c.editable(),
9028 …0 !== n && (a = c.getSelection().getNative()) && a.isCollapsed && a.anchorNode == g.$ && (a = c.cr…
9031 n && CKEDITOR.env.webkit && (n = c._.previousActive &&
9032c._.previousActive.equals(e.getActive())) && null != c._.previousScrollTop && c._.previousScrollTo…
9033 c.unlockSelection(n);
9039 …attachListener(g, "beforedeactivate", a, null, null, -1) : g.attachListener(c, "selectionCheck", a…
9040 c.lockSelection(r);
9049 …2 == a.data.$.button && ((a = c.document.getSelection()) && a.getType() != CKEDITOR.SELECTION_NONE…
9052 …2 == a.data.$.button && v && (c.document.$.documentElement.scrollLeft = v.x, c.document.$.document…
9063 var c = l.$.createTextRange();
9065 c.moveToPoint(a.clientX, a.clientY)
9067 … t.setEndPoint(0 > u.compareEndPoints("StartToStart", c) ? "EndToEnd" : "StartToStart", c);
9072 function c() {
9074 f.removeListener("mouseup", c);
9075 q.removeListener("mouseup", c);
9087 c);
9088 q.on("mouseup", c)
9097 g.attachListener(g, "selectionchange", h, c);
9098 g.attachListener(g, "keyup", k, c);
9101 c = d(b);
9102 c && !c.equals(g) && (b.selectElement(c), a.data.preventDefault())
9103 }, c);
9105 c.forceNextSelectionCheck();
9106 c.selectionChange(1)
9114 x && k.call(c);
9117 … } else g.attachListener(CKEDITOR.env.ie ? g : e.getDocumentElement(), "mouseup", k, c);
9134 "keydown", D(c), null, null, -1)
9136 c.on("setData", function() {
9137 c.unlockSelection();
9140 c.on("contentDomUnload", function() {
9141 c.unlockSelection()
9143 if (CKEDITOR.env.ie9Compat) c.on("beforeDestroy", b, null, null, 9);
9144 c.on("dataReady", function() {
9145 delete c._.fakeSelection;
9146 delete c._.hiddenSelectionContainer;
9147 c.selectionChange(1)
9149 c.on("loadSnapshot", function() {
9151 b = c.editable().getLast(a);
9153 …CKEDITOR.env.gecko && (a = c.editable().getFirst(a)) && a.is("br") && a.getAttribute("_moz_editor_…
9155 c.on("key", function(a) {
9156 if ("wysiwyg" == c.mode) {
9157 var b = c.getSelection();
9161 editor: c,
9174 c = a.getCustomData("cke-fillingChar");
9175 c && (c.getCustomData("ready") ?
9176 (y(a), a.editor.fire("selectionCheck")) : c.setCustomData("ready", 1))
9222 var c = a instanceof CKEDITOR.dom.element;
9225 this.root = c ? a : this.document.getBody();
9280 var c = this.getNative(),
9281 d = c.type;
9284 c.createRange().parentElement() &&
9292 c = this.getNative();
9293 if (!c || !c.rangeCount) b = CKEDITOR.SELECTION_NONE;
9294 else if (1 == c.rangeCount) {
9295 var c = c.getRangeAt(0),
9296 d = c.startContainer;
9297 …d == c.endContainer && 1 == d.nodeType && 1 == c.endOffset - c.startOffset && M[d.childNodes[c.sta…
9306 var b = function(b, c) {
9308 b.collapse(c);
9363 c = a && a.createRange(),
9366 …ew CKEDITOR.dom.range(this.root), d = b(c, !0), a.setStart(new CKEDITOR.dom.node(d.container), d.o…
9369 for (var d = [], e = 0; e < c.length; e++) {
9370 …for (var f = c.item(e), g = f.parentNode, h = 0, a = new CKEDITOR.dom.range(this.root); h < g.chil…
9381 b, c = this.getNative();
9382 if (!c) return a;
9383 for (var d = 0; d < c.rangeCount; d++) {
9384 var e = c.getRangeAt(d);
9394 var c = this._.cache,
9395 d = c.ranges;
9396 d || (c.ranges = d = new CKEDITOR.dom.rangeList(a.call(this)));
9408 var c = this.getRanges()[0];
9409 if (c) {
9410 … if (c.collapsed) b = c.startContainer, b.type != CKEDITOR.NODE_ELEMENT && (b = b.getParent());
9412 …for (c.optimize(); b = c.startContainer, c.startOffset == (b.getChildCount ? b.getChildCount() : b…
9413 b = c.startContainer;
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();
9417 else b = c.startContainer
9429 c = CKEDITOR.tools.tryThese(function() {
9432 …tRanges()[0].clone(), c, d, e = 2; e && !((c = a.getEnclosedNode()) && c.type == CKEDITOR.NODE_ELE…
9435 return a.selectedElement = c ? new CKEDITOR.dom.element(c) : null
9456 c = this.getRanges(),
9460 a && (a = b || c[0] && c[0].getCommonAncestor()) && a.getAscendant("body",
9461 …1) && (d(c) ? f.call(this, c) : e ? this.fake(b) : b ? this.selectElement(b) : this.selectRanges(c
9473 var c = a.checkDirty();
9477 !c && a.resetDirty()
9492 c = b && b._.hiddenSelectionContainer;
9494 if (c)
9495 …for (var c = this.root, g, h = 0; h < a.length; ++h) g = a[h], g.endContainer.equals(c) && (g.endO…
9526 …if ((c = b.getEnclosedNode()) && c.type == CKEDITOR.NODE_ELEMENT && c.getName() in M && (!c.is("a"…
9527 I = c.$.createControlRange();
9528 I.addElement(c.$);
9574 var c = this.root.editor;
9577 B(c, b);
9588 c._.fakeSelection = this;
9615 for (var b = [], c, e = 0; e < a.length; e++) {
9620 …a.isFake && (c = d(b) ? b[0]._getTableElement() : b[0].getEnclosedNode(), c && c.type == CKEDITOR.…
9621 a.isFake && !d(b) ? this.fake(c) : this.selectRanges(b);
9649 for (var c, d;
9651 if (a.getAttribute("data-nostyle")) c = a;
9654 "false" == e ? c = a : "true" == e && (d = 1)
9656 return c
9659 function d(a, b, c, d) {
9660 return (a.getPosition(b) | d) == d && (!c.childRule || c.childRule(a))
9663 function b(c) {
9664 var e = c.document;
9665 …if (c.collapsed) e = J(this, e), c.insertNode(e), c.moveToPosition(e, CKEDITOR.POSITION_BEFORE_END…
9672 m && (m = c.root.getCustomData("cke_includeReadonly"));
9675 c.enlarge(CKEDITOR.ENLARGE_INLINE, 1);
9676 c.trim();
9677 var r = c.createBookmark(),
9683 var x = c.getCommonAncestor(),
9712 …y && CKEDITOR.dtd.$removeEmpty[y] && (q.getPosition(t) | P) != P || (u = c.clone(), u.setStartBefo…
9737 c.moveToBookmark(r);
9738 c.shrink(CKEDITOR.SHRINK_TEXT);
9739 c.shrink(CKEDITOR.NODE_ELEMENT, !0)
9743 function c(a) {
9745 …for (var a = new CKEDITOR.dom.elementPath(d.getParent()), c = new CKEDITOR.dom.elementPath(n.getPa…
9750 for (g = 0; g < c.elements.length; g++) {
9751 h = c.elements[g];
9752 if (h == c.block || h == c.blockLimit) break;
9759 var c =
9761 d = c.startNode,
9782 var n = c.endNode,
9787 a.moveToBookmark(c);
9808 c = b.attributes;
9809 if (c)
9810 for (var d in c) a.removeAttribute(d, c[d]);
9819 c = a.createIterator();
9820 c.enforceRealBlocks = !0;
9821 this._.enterMode && (c.enlargeBr = this._.enterMode != CKEDITOR.ENTER_BR);
9822 …for (var d, e = a.document, f; d = c.getNextParagraph();) !d.isReadOnly() && (c.activeFilter ? c.a…
9828 c = a.createIterator();
9829 c.enforceRealBlocks = !0;
9830 c.enlargeBr = this._.enterMode != CKEDITOR.ENTER_BR;
9831 for (var d, e; d = c.getNextParagraph();) this.checkElementRemovable(d) &&
9837 var c = !b;
9838 c && (b = a.getDocument().createElement("div"), a.copyAttributes(b));
9859 } else g ? b = v(c ? [a.getHtml()] : e(a), b) : a.moveChildren(b);
9862 var c = b,
9864c.getPrevious(H)) && k.type == CKEDITOR.NODE_ELEMENT && k.is("pre") && (d = y(k.getHtml(), /\n$/, …
9865 c.setHtml(d), k.remove())
9866 } else c && m(b)
9871 …terHtml(), /(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi, function(a, b, c) {
9872 return b + "\x3c/pre\x3e" + c + "\x3cpre\x3e"
9873 }).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi, function(a, c) {
9874 b.push(c)
9879 function y(a, b, c) {
9882 …n[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi, function(a, b, c) {
9884 c && (e = c);
9887 return d + a.replace(b, c) + e
9891 var c;
9892 1 < a.length && (c = new CKEDITOR.dom.documentFragment(b.getDocument()));
9905 if (c) {
9908 c.append(f)
9911 return c || b
9915 var c = this._.definition,
9916 d = c.attributes,
9917 c = c.styles,
9919 f = CKEDITOR.tools.isEmpty(d) && CKEDITOR.tools.isEmpty(c),
9923 …for (var h in c) this._.definition.fullMatch && a.getStyle(h) != t(h, c[h], !0) || (f = f || !!a.g…
9930 …for (var b = l(this), c = a.getElementsByTag(this.element), d, e = c.count(); 0 <= --e;) d = c.get…
9933 …for (c = a.getElementsByTag(f), e = c.count() - 1; 0 <= e; e--) d = c.getItem(e), d.isReadOnly() |…
9936 function x(a, b, c) {
9946 c || m(a)
9952 var c = a.getPrevious(H),
9954 !c || c.type != CKEDITOR.NODE_TEXT && c.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())
9965 function J(a, b, c) {
9970 c && c.copyAttributes(d);
9977 var c = b._.definition,
9978 d = c.attributes,
9979 c = CKEDITOR.style.getStyleText(c);
9982 c && a.setAttribute("style", c);
9988 for (var c in a) a[c] = a[c].replace(E, function(a, c) {
9989 return b[c]
9996 c = a._.definition.overrides;
9997 if (c) {
9998 CKEDITOR.tools.isArray(c) || (c = [c]);
9999 for (var d = 0; d < c.length; d++) {
10000 var e = c[d],
10015 b, c) {
10017 d[c ? "setStyle" : "setAttribute"](a, b);
10018 return d[c ? "getStyle" : "getAttribute"](a)
10022 function c(a, b) {
10028 … if (!(d in b) || c(b[d], d) != c(a[d], d) && "inherit" != a[d] && "inherit" != b[d]) return !1;
10032 function L(a, b, c) {
10038 for (var g = d.createIterator(); f = g.getNextRange();) b.call(this, f, c);
10099 var c = a.attributes;
10100c && c.style && (a.styles = CKEDITOR.tools.extend({}, a.styles, CKEDITOR.tools.parseCssText(c.styl…
10102 c = this.element = a.element ? "string" == typeof a.element ? a.element.toLowerCase() :
10104 …this.type = a.type || (C[c] ? CKEDITOR.STYLE_BLOCK : M[c] ? CKEDITOR.STYLE_OBJECT : CKEDITOR.STYLE…
10134 …this.removeFromRange = this.type == CKEDITOR.STYLE_INLINE ? c : this.type == CKEDITOR.STYLE_BLOCK ?
10147 for (var c = a.elements, d = 0, e; d < c.length; d++)
10148 … if (e = c[d], this.type != CKEDITOR.STYLE_INLINE || e != a.block && e != a.blockLimit) {
10159 checkApplicable: function(a, b, c) {
10160 b && b instanceof CKEDITOR.filter && (c = b);
10161 if (c && !c.check(this)) return !1;
10171 var c = this._.definition;
10172 if (!a || !c.ignoreReadonly && a.isReadOnly()) return !1;
10177 if (d = c._AC) c = d;
10181 f = c.attributes;
10184 if (g = CKEDITOR.style.getStyleText(c)) d.style || e++, d.style = g;
10186 c = c._AC = d
10188 if (c._length) {
10189 for (var h in c)
10191 … if (d = a.getAttribute(h) || "", "style" == h ? F(c[h], d) : c[h] == d) {
10199 checkElementRemovable: function(a, b, c) {
10200 if (this.checkElementMatch(a, b, c)) return !0;
10204 for (c = 0; c < b.length; c++)
10205 if (d = b[c][0], d = a.getAttribute(d)) {
10206 var e = b[c][1];
10217 c = [],
10220 var c = ["\x3c", d],
10223 for (var f in e) c.push(" ", f, '\x3d"', e[f], '"');
10224 (e = CKEDITOR.style.getStyleText(b)) && c.push(' style\x3d"', e, '"');
10225 c.push("\x3e", a || b.name, "\x3c/", d, "\x3e");
10226 return c.join("")
10236 c = a.attributes && a.attributes.style || "",
10238 c.length && (c = c.replace(q, ";"));
10242 "inherit" == f ? d += g : c += g
10244 c.length && (c = CKEDITOR.tools.normalizeCssText(c, !0));
10245 return a._ST = c + d
10308 c = b[0];
10309 … CKEDITOR.stylesSet.addExternal(c, b[1] ? b.slice(1).join(":") : CKEDITOR.getUrl("styles.js"), "");
10310 CKEDITOR.stylesSet.load(c, function(b) {
10311 d._.stylesDefinitions = b[c];
10385 var c = 0,
10400 d && (b ? c += 1 : --k);
10402 for (; c < k; c++)
10403 if (f(h[c])) return h[c];
10433 c = this.getLength(),
10436 …d.childNodes.length == b && (a >= c ? (h = f.createText(""), h.insertAfter(this)) : (a = f.createT…
10445 function a(a, c, d) {
10447 k = c[d ? "endContainer" : "startContainer"],
10449 n = h ? c.document.getById(a.startNode) : a.startNode;
10450 a = h ? c.document.getById(a.endNode) : a.endNode;
10451 …evious()) ? (c.startOffset = c.startOffset - k.getLength() - a.getPrevious().getLength(), k = a.ge…
10452 k.equals(n.getParent()) && c[g]++;
10453 k.equals(a.getParent()) && c[g]++;
10454 c[d ? "endContainer" : "startContainer"] = k;
10455 return c
10465 c = CKEDITOR.dom.walker.bookmark(),
10484 … else if (c(n) || n.type == CKEDITOR.NODE_ELEMENT && n.isBlockBoundary()) continue;
10497 for (var c = [], d, h = 0; h < this.length; h++) {
10498 c.push(d = this[h].createBookmark(b, !0));
10501 return c
10504 for (var c = [], d = 0; d <
10505 this.length; d++) c.push(this[d].createBookmark2(a));
10506 return c
10509 for (var c = 0; c < this.length; c++) this[c].moveToBookmark(a[c])
10519 var c = CKEDITOR.skin["ua_" + b],
10521 if (c)
10522 for (var c = c.split(",").sort(function(a, b) {
10524 }), f = 0, g; f < c.length; f++)
10525 …if (g = c[f], d.ie && (g.replace(/^ie/, "") == d.version || d.quirks && "iequirks" == g) && (g = "…
10526 b += "_" + c[f];
10536 function c(a) {
10543 function f(a, b, c) {
10551 for (d = 0; d < c.length; d++) g = g.replace(c[d][0], c[d][1]);
10555 for (d = 0; d < c.length; d++) g = g.replace(c[d][0], c[d][1]);
10563 loadPart: function(c, d) {
10565 b(c, d)
10566 }) : b(c, d)
10572 addIcon: function(a, b, c, d) {
10576 offset: c || 0,
10580 getIconStyle: function(a, b, c, d, f) {
10584 a = c || g && g.path || "";
10596 var b = c(CKEDITOR.document);
10599 var c = CKEDITOR.skin.chameleon,
10602 "function" == typeof c && (d = c(this, "editor"), h =
10603 c(this, "panel"));
10621 a = c(a);
10644 } catch (c) {
10657 Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
10668 c;
10669 c = parseInt(a[e], 16);
10670c = ("0" + (0 > d ? 0 | c * (1 + d) : 0 | c + (255 - c) * d).toString(16)).slice(-2);
10671 a[f] = c
10768 var c = h.call(this, a);
10769 c.labelId = CKEDITOR.tools.getNextId() +
10775 a.includeLabel && (e["aria-labelledby"] = c.labelId);
10779 …cke_dialog_ui_labeled_label' + g + '" ', ' id\x3d"' + c.labelId + '"', c.inputId ? ' for\x3d"' + c
10786 …el class\x3d"cke_dialog_ui_labeled_label' + g + '" id\x3d"' + c.labelId + '" for\x3d"' + c.inputId…
10801 c = {
10807 a.maxLength && (c.maxlength = a.maxLength);
10808 a.size && (c.size = a.size);
10809 a.inputStyle && (c.style = a.inputStyle);
10828 c["aria-labelledby"] = this._.labelId;
10830 (c["aria-required"] = this._.required);
10831 for (var e in c) b.push(e + '\x3d"' + c[e] + '" ');
10841 c = this._.inputId = CKEDITOR.tools.getNextId() + "_textarea",
10856 … class\x3d"cke_dialog_ui_input_textarea" role\x3d"presentation"\x3e\x3ctextarea id\x3d"', c, '" '],
10872 var c = CKEDITOR.tools.extend({}, a, {
10882 t(c);
10884 "undefined" != typeof c.inputStyle && (c.style = c.inputStyle);
10885 … f.checkbox = new CKEDITOR.ui.dialog.uiElement(b, c, e, "input", null, g);
10897 c = this;
10925 c._["default"] == n && (r.checked = "checked");
10968 var c = CKEDITOR.tools.extend({}, a);
10969 delete c.style;
10971 CKEDITOR.ui.dialog.uiElement.call(this, b, c, d, "a", null, {
10989 var c = CKEDITOR.tools.extend({}, a, {
11005 t(c);
11007 "undefined" != typeof c.inputStyle && (c.style = c.inputStyle);
11008 f.select = new CKEDITOR.ui.dialog.uiElement(b, c, e, "select", null,
11042 var c = CKEDITOR.tools.extend({}, a),
11043 e = c.onClick;
11044c.className = (c.className ? c.className + " " : "") + "cke_dialog_ui_button";
11045 c.onClick = function(c) {
11048 c = e ? e.call(this, c) : !1;
11049 … !1 !== c && ("xhr" !== c && b.getContentElement(d[0], d[1]).submit(), this.disable())
11054 CKEDITOR.ui.dialog.button.call(this, b, c, d)
11061 return function(f, c, e) {
11064 g = c.html;
11066 var k = c.focus;
11073 c.isFocusable && (this.isFocusable = this.isFocusable);
11076 … CKEDITOR.ui.dialog.uiElement.call(this, f, c, m, "span", null, null, "");
11084 fieldset: function(b, a, d, f, c) {
11085 var e = c.label;
11089 … CKEDITOR.ui.dialog.uiElement.call(this, b, c, f, "fieldset", null, null, function() {
11091 …e && a.push("\x3clegend" + (c.labelStyle ? ' style\x3d"' + c.labelStyle + '"' : "") + "\x3e" + e +…
11205 c = this.getInputElement().$;
11208 … void 0 === d || null === d ? CKEDITOR.env.ie ? c.add(f.$) : c.add(f.$, null) : c.add(f.$, d);
11258 …for (var d = this._.children, f, c = 0; c < d.length && (f = d[c]); c++) f.getElement().$.checked =
11283 …this._.children, b = this, c = 0; c < a.length; c++) a[c].getElement().on("propertychange", functi…
11310 d, f = function(a, b, c, d) {
11312 a.getInputElement().on(c, d, a)
11315 c;
11316 for (c in b)
11317 …(d = c.match(a)) this.eventProcessors[c] ? this.eventProcessors[c].call(this, this._.dialog, b[c])…
11330 for (b = 0; b < c.length; b++) c[b].enable()
11335 c = a.buttons,
11386 … for (var f = a.children, c, e = [], h = [], g = 0; g < f.length && (c = f[g]); g++) {
11389 h.push(CKEDITOR.dialog._.uiElementBuilders[c.type].build(b, c, k))
11404 …, b = CKEDITOR.tools.indexOf(this._.tabIdList, this._.currentTabId) + a, c = b - 1; c > b - a; c--)
11405 … if (this._.tabs[this._.tabIdList[c % a]][0].$.offsetHeight) return this._.tabIdList[c % a];
11410 …ngth, b = CKEDITOR.tools.indexOf(this._.tabIdList, this._.currentTabId), c = b + 1; c < b + a; c++)
11411 … if (this._.tabs[this._.tabIdList[c % a]][0].$.offsetHeight) return this._.tabIdList[c % a];
11416 for (var c = a.$.getElementsByTagName("input"),
11417 e = 0, d = c.length; e < d; e++) {
11418 var f = new CKEDITOR.dom.element(c[e]);
11424 var c = this.getInputElement();
11425 c && (a ? c.removeAttribute("aria-invalid") : c.setAttribute("aria-invalid", !0));
11449 c = b.getChild([0, 0, 0, 0, 0]),
11450 e = c.getChild(0),
11451 d = c.getChild(1);
11452 a.plugins.clipboard && CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(c);
11453 …cke_iframe_shim" src\x3d"' + a + '" tabIndex\x3d"-1"\x3e\x3c/iframe\x3e').appendTo(c.getParent()));
11462 tabs: c.getChild(2),
11463 contents: c.getChild([3, 0, 0, 0]),
11464 footer: c.getChild([3, 0, 1, 0])
11469 function L(a, b, c) {
11471 this.focusIndex = c;
11498 var c = CKEDITOR.document.getWindow();
11499 c.on("resize", b);
11501 c.removeListener("resize", b)
11514 var c = a.getSize(),
11526c.width - g ? k.width - c.width + ("rtl" == f.lang.dir ? 0 : h[1]) : d.x, d.y + h[0] < g ? -h[0] …
11530 function c() {
11532 CKEDITOR.document.removeListener("mouseup", c);
11536 a.removeListener("mouseup", c)
11552 c);
11557 f.on("mouseup", c)
11565 var c = "rtl" == f.lang.dir,
11568 G = n + (b.data.$.screenX - m.x) * (c ? -1 : 1) * (a._.moved ? 1 : 2),
11571 B = c && B.getComputedStyle("right"),
11574 (c ? B : C.x) + G > p.width && (G = p.width - (c ? B : C.x));
11583 function c() {
11584 CKEDITOR.document.removeListener("mouseup", c);
11589 a.removeListener("mouseup", c);
11610 CKEDITOR.document.on("mouseup", c);
11611 ….env.ie6Compat && (e = u.getChild(0).getFrameDocument(), e.on("mousemove", b), e.on("mouseup", c));
11633 c = a.config,
11635 d = c.dialog_backgroundCoverColor || ("moono-lisa" == e ? "black" : "white"),
11636 e = c.dialog_backgroundCoverOpacity,
11637 f = c.baseFloatZIndex,
11638 c = CKEDITOR.tools.genKey(d, e, f),
11639 g = z[c];
11642 z[c] = g);
11654 c = CKEDITOR.dialog._.currentTop;
11659 if (c) {
11660 do a = c.getPosition(), c.move(a.x, a.y); while (c = c._.parentDialog)
11690 function c() {
11695 for (var b = a.length, c = 0; c < b; c++) a[c].focusIndex = c
11702 var c = l._.currentFocusIndex;
11703 l._.tabBarMode && 0 > a && (c = 0);
11705 b[c].getInputElement().$.blur()
11707 var e = c,
11718 if (e == c) break
11727 var c = b.data.getKeystroke(),
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, …
11734c) && l._.tabBarMode) c = -1 != CKEDITOR.tools.indexOf([d ? 39 : 37, 38], c) ? x.call(l) : A.call(…
11735 else if (13 != c && 32 != c || !l._.tabBarMode)
11736c) c = b.data.getTarget(), c.is("a", "button", "select", "textarea") || c.is("input") && "button" …
11737 …else if (27 == c)(c = this.getButton("cancel")) ? CKEDITOR.tools.setTimeout(c.click, 0, c) : !1 !=…
11831 c = !1,
11835 if (c = a.call(this, b[d][e])) return
11840 var c = b.validate(this),
11841 d = "string" == typeof c || !1 === c;
11843 T.call(b, !d, "string" == typeof c ?
11844 c : void 0);
11850 t(function(c) {
11851 …if (c.isChanged()) return a.config.dialog_noConfirmCancel || confirm(a.lang.common.confirmCancel) …
11879 c();
11940 move: function(a, b, c) {
11951 … b[d ? "right" : "left"] = (0 < a ? a : 0) + "px", e.setStyles(b), c && (this._.moved = 1))
11971 for (var c in b.contents)
11972 if (b.contents[c]) {
11973 var a = b.contents[c],
12001 c = CKEDITOR.document.getWindow().getViewPaneSize(),
12003 (c.width - b.width) / 2,
12004 d = (c.height - b.height) / 2;
12005 …CKEDITOR.env.ie6Compat || (b.height + (0 < d ? d : 0) > c.height || b.width + (0 < e ? e : 0) > c.…
12010 for (var c in this._.contents[b]) a.call(this, this._.contents[b][c]);
12054 var c = this._.editor;
12055 c.focus();
12057 c.focusManager.unlock();
12058 CKEDITOR.env.iOS && c.window.focus()
12070 …for (var b = [], c = a.label ? ' title\x3d"' + CKEDITOR.tools.htmlEncode(a.label) + '"' : "", e = …
12083 c = CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"',
12084 …0 < this._.pageCount ? " cke_last" : "cke_first", c, a.hidden ? ' style\x3d"display:none"' : "", '…
12087 this._.tabs[a.id] = [c, b];
12090 this._.lastTab = c;
12094 c.unselectable();
12095 this.parts.tabs.append(c);
12106 var c = this._.tabs[b][0],
12108 b != a && (c.removeClass("cke_dialog_tab_selected"), e.hide());
12139 var c = this._.contents[a];
12140 return c && c[b]
12145 setValueOf: function(a, b, c) {
12146 return this.getContentElement(a, b).setValue(c)
12173 … for (var c = b + 1; c < this._.focusList.length; c++) this._.focusList[c].focusIndex++
12182 c = {
12190 c.styles["margin-" + ("rtl" == b ? "left" : "right")] = "8px";
12191 this.parts.spinner = CKEDITOR.document.createElement("div", c);
12213 isTabEnabled: function(a, b, c) {
12215 return !(a && a.match(new RegExp("(?:^|;)" + b + ":" + c + "(?:$|;)",
12219 var a = function(a, c) {
12220 c = c || {};
12232 }, c, !0)
12236 return CKEDITOR.tools.extend(function(c) {
12237 return a(c, b)
12245 var a = function(a, c) {
12246 c = c || {};
12258 }, c, !0)
12262 return CKEDITOR.tools.extend(function(c) {
12263 return a(c, b)
12288 D = function(a, b, c) {
12290 if (d.id == b || c && d[c] && (d = D(d[c], b, c))) return d;
12293 E = function(a, b, c, e, d) {
12294 if (c) {
12296 if (g.id == c) return a.splice(f, 0, b), b;
12297 if (e && g[e] && (g = E(g[e], b, c, e, !0))) return g
12304 F = function(a, b, c) {
12307 if (c && d[c] && (d = F(d[c],
12308 b, c))) return d
12314 for (var c = b.contents, e = 0, d; d = c[e]; e++) c[e] = d && new M(a, d);
12353 c = a.data.$.altKey,
12356 …(b = w[(b ? "CTRL+" : "") + (c ? "ALT+" : "") + (e ? "SHIFT+" : "") + d]) && b.length && (b = b[b.…
12360 c = a.data.$.altKey,
12363 …(b = w[(b ? "CTRL+" : "") + (c ? "ALT+" : "") + (e ? "SHIFT+" : "") + d]) && b.length && (b = b[b.…
12365 S = function(a, b, c, e, d) {
12366 (w[c] || (w[c] = [])).push({
12369 key: c,
12376 …for (var c = w[b], e = c.length - 1; 0 <= e; e--) c[e].dialog != a && c[e].uiElement != a || c.spl…
12377 0 === c.length && delete w[b]
12387 uiElement: function(a, b, c, e, d, f, g) {
12416 c.push(p.join(""));
12423 return function(c) {
12424 a.call(this, b.setValue.call(this, c))
12440 var c = t.type in {
12448 c && this.addClass(c)
12452 c && this.removeClass(c)
12462 hbox: function(a, b, c, e, d) {
12478 for (p = 0; p < c.length; p++) {
12482 p == c.length - 1 && (b = "cke_dialog_ui_hbox_last");
12484 … g ? g[p] && e.push("width:" + v(g[p])) : e.push("width:" + Math.floor(100 / c.length) + "%");
12490 a.push("\x3e", c[p], "\x3c/td\x3e")
12497 vbox: function(a, b, c, e, d) {
12516 for (var e = 0; e < c.length; e++) {
12520 ….push("height:" + v(h[e])) : d && d.expand && k.push("height:" + Math.floor(100 / c.length) + "%");
12524 … b.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e', c[e], "\x3c/td\x3e\x3c/tr\x3e")
12570 c, e = function(a, b, c, d) {
12572 a.getInputElement().on(c, d, a)
12577 …if (c = d.match(b)) this.eventProcessors[d] ? this.eventProcessors[d].call(this, this._.dialog, a[…
12625 build: function(a, c, e) {
12626 … for (var d = c.children, f, g = [], h = [], p = 0; p < d.length && (f = d[p]); p++) {
12631 return new CKEDITOR.ui.dialog[c.type](a,
12632 h, g, e, c)
12655 c = /^\d*(?:\.\d+)?$/,
12666 c, d = CKEDITOR.VALIDATE_AND,
12672 f < a.length && "string" == typeof a[f] && (c = a[f], f++);
12677 return n ? !0 : c
12681 return function(c) {
12682 c = this && this.getValue ? this.getValue() : c;
12683 return a.test(c) ? !0 : b
12693 return this.regex(c, a)
12725 for (var c in z) z[c].remove();
12734 var c = null,
12737 …= typeof e) c = this._.storedDialogs || (this._.storedDialogs = {}), c = c[a] || (c[a] = new CKEDI…
12747 return c
12847 var c = this;
12852 …a = c.availableLangs[a] ? a : c.availableLangs[a.replace(/-.*/, "")] ? a.replace(/-.*/, "") : "en";
12853 … CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path + "dialogs/lang/" + a + ".js"), function() {
12854 b.lang.a11yhelp = c.langEntries[a];
12874 function f(c) {
12876 c = c && c.hasAttribute(a) && c.getAttribute(a) || "";
12877 void 0 !== c && this.setValue(c)
12881 for (var c, a = 0; a < arguments.length; a++)
12883 c = arguments[a];
12885 } if (c) {
12888 b ? c.setAttribute(a, b) : c.removeAttribute(a, b)
12899 allowedContent: function(c) {
12900 c || (c = k);
12902 c.id && a.push("id");
12903 c.dir && a.push("dir");
12907 c.classes && (b += "(*)");
12908 c.styles && (b += "{*}");
12911 createAdvancedTab: function(c, a, b) {
12913 var d = c.lang.common,
12962 getStyle: function(a, c) {
12965 return b ? b[1] : c
12969 e = c.document.createElement("span");
13000 init: function(c) {
13007 c.attachStyleStateChange(a, function(a) {
13008 !c.readOnly && c.getCommand(b).setState(a)
13010 c.addCommand(b, new CKEDITOR.styleCommand(a, {
13013 c.ui.addButton && c.ui.addButton(g, {
13038 b = c.config,
13039 a = c.lang.basicstyles;
13047 c.setKeystroke([
13080 for (var c = d.editable();
13081 (b = b.getParent()) && !b.equals(c);)
13097 …for (var c; b && b.type == CKEDITOR.NODE_ELEMENT && (c = b.getParent()) && 1 == c.getChildCount() …
13114 c, b = void 0 === b || b;
13116 c = d.lastElement;
13117 for (var h = a.editable(); c && !(c.getName() in u || c.equals(h));) {
13118 var e = c.getParent();
13120 c = e
13123 c = c || d.block || d.blockLimit;
13124c.equals(a.editable()) && (h = a.getSelection().getRanges()[0].getEnclosedNode()) && h.type == CKE…
13125 c && (b = b ? c.getComputedStyle("direction") :
13126c.getStyle("direction") || c.getAttribute("dir"), a.getCommand("bidirtl").setState("rtl" == b ? CK…
13133 c = d.getRanges();
13134 if (c && c.length) {
13135 for (var h = {}, e = d.createBookmarks(), c = c.createIterator(), g,
13136 l = 0; g = c.getNextRange(1);) {
13144 var c = b == CKEDITOR.ENTER_P ? "p" : "div",
13147 … if (c = a.is(c)) c = (c = a.getParent()) ? c.type == CKEDITOR.NODE_ELEMENT : !1;
13148 d = !(c && a.getParent().is("blockquote"))
13170 return function(c, h) {
13173 if (e = c == (f || d ?
13174 "dir" : "direction") || "style" == c && (d || b.test(h))) {
13214 c, d, e, f) {
13217 label: c,
13236 var c = a.ui.space(a.config.toolbarLocation);
13237 if (c) c[b]("cke_mixed_dir_content")
13249 c = k && k.getRanges()[0];
13250 if (c) {
13268 var f = c.createIterator();
13272 …shift(), c.insertNode(a), a.append(new CKEDITOR.dom.text("", g.document)), c.moveToBookmark(b), c
13274 c = [];
13285 a.equals(b) || c.push(a);
13288 for (; 0 < c.length;)
13289 if (a = c.shift(), "blockquote" == a.getName()) {
13293 c = g.document.createElement("blockquote");
13294 for (c.insertBefore(e[0]); 0 < e.length;) a = e.shift(), c.append(a)
13298 for (e = c = null; a.getParent();) {
13300 c = a.getParent();
13306c && e && !e.getCustomData("blockquote_moveout") && (b.push(e), CKEDITOR.dom.element.setMarker(d, …
13311c = f.getParent(), f.getPrevious() ? f.getNext() ? (f.breakParent(f.getParent()), e.push(f.getNext…
13312 … (e.push(c), CKEDITOR.dom.element.setMarker(d, c, "blockquote_processed", !0)), a.push(f);
13315 c = e[b];
13317 d = c;
13324 d && c.remove()
13327 for (c = !0; a.length;)
13330 !c || !f.getPrevious() || f.getPrevious().type ==
13332 …for (c = f.getNext() && !(f.getNext().type == CKEDITOR.NODE_ELEMENT && f.getNext().isBlockBoundary…
13333 c && b.append(g.document.createElement("br"));
13335 c = !1
13415 b.on("key", function(c) {
13416 if (27 == c.data.keyCode) {
13418 … d.length && (a(b.lang.notification.closed), d[d.length - 1].hide(), c.cancel())
13435 var c = this.element,
13436 d = c.findOne(".cke_notification_message"),
13437 e = c.findOne(".cke_notification_progress"),
13439 c.removeAttribute("role");
13441 …f && (c.removeClass(this._getClass()), c.removeAttribute("aria-label"), this.type = f, c.addClass(…
13445 … a && b.important && (c.setAttribute("role", "alert"), this.isVisible() || this.area.add(this));
13459 a, c, d = this.editor.lang.common.close;
13469 c = new CKEDITOR.dom.element("p");
13470 c.addClass("cke_notification_message");
13471 c.setHtml(this.message);
13472 a.append(c);
13473c = CKEDITOR.dom.element.createFromHtml('\x3ca class\x3d"cke_notification_close" href\x3d"javascri…
13474 a.append(c);
13475 c.on("click",
13520 c = new CKEDITOR.dom.element("div");
13521 c.addClass("cke_notifications_area");
13522 c.setAttribute("id", "cke_notifications_area_" + b.name);
13523 c.setStyle("z-index", a.baseFloatZIndex - 2);
13524 return c
13550 c = this.editor,
13551 d = c.ui.contentsElement.getClientRect(),
13552 e = c.ui.contentsElement.getDocumentPosition(),
13564 c.toolbar && (f = c.ui.space("top"), l = f.getClientRect());
13586 …var c = '\x3ca id\x3d"{id}" class\x3d"cke_button cke_button__{name} cke_button_{state} {cls}"' + (…
13587 CKEDITOR.env.gecko && CKEDITOR.env.mac && (c += ' onkeypress\x3d"return false;"');
13588 CKEDITOR.env.gecko && (c +=
13590 …var c = c + (' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus\x3d"r…
13591c = c + '\x3e\x26nbsp;\x3c/span\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_button_label cke_butt…
13593 w = CKEDITOR.addTemplate("button", c);
13616 function c() {
13658 …}, this), a.on("activeFilterChange", c, this), a.on("mode", c, this), !this.readOnly && a.on("read…
13663 var c = CKEDITOR.document.getById(this._.id),
13664 d = c.getFirst();
13666 … b != a.lang.dir ? c.addClass("cke_" + b) : c.removeClass("cke_ltr").removeClass("cke_rtl");
13731 for (var h = 0; h < d.length; h++) l = d[h], (l = b[l]) && c(g, l);
13732 (l = b[g.name]) && c(g, l)
13740 c, e, g;
13741 …for (c in a.ui.items) e = a.ui.items[c], g = e.toolbar || "others", g = g.split(","), e = g[0], g …
13742 name: c,
13752 function c(c, e) {
13754 c.items ? c.items.push(a.ui.create("-")) : c.items = [];
13755 …&& -1 != CKEDITOR.tools.indexOf(b, d) || (d = a.ui.create(d)) && a.addFeature(d) && c.items.push(d)
13762 …== d ? a.push(d) : CKEDITOR.tools.isArray(d) ? (c(h, CKEDITOR.tools.clone(d)), a.push(h)) : d.item…
13815 for (var f = 0, c; c = d.items[f++];)
13816 if (c.focus) {
13817 c.focus();
13837 var d, f = function(c, h) {
13847 …if (b = 9 == h ? (b ? b.next : c.toolbar.next) || a.toolbox.toolbars[0] : (b ? b.previous : c.tool…
13848 … for (c = b.items[d ? b.items.length - 1 : 0]; c && !c.focus;)(c = d ? c.previous : c.next) ||
13850 c && c.focus();
13853 b = c;
13854 … do b = b.next, !b && k && (b = c.toolbar.items[0]); while (b && !b.focus);
13855 b ? b.focus() : f(c, 9);
13858 … return c.button && c.button.hasArrow ? c.execute() : f(c, 40 == h ? q : e), !1;
13861 b = c;
13862 …do b = b.previous, !b && k && (b = c.toolbar.items[c.toolbar.items.length - 1]); while (b && !b.fo…
13863 b ? b.focus() : (d = 1, f(c, CKEDITOR.SHIFT + 9), d = 0);
13869 return c.execute(), !1
13873 a.on("uiSpace", function(c) {
13874 if (c.data.space == a.config.toolbarLocation) {
13875 c.removeListener();
13895 var B = function(c) {
13896 c = c.render(a, b);
13897 u = m.items.push(c) - 1;
13898 … 0 < u && (c.previous = m.items[u - 1], c.previous.next = c);
13899 c.toolbar = m;
13900 c.onkey = f;
13901 c.onfocus = function() {
13945 c = a.getPrevious(),
13947 e = c.getParent(),
13951 …f ? (c.show(), a.removeClass("cke_toolbox_collapser_min"), a.setAttribute("title", b.lang.toolbar.…
13972 c.data.html += b.join("")
13984 var c = a.ui.space("toolbox");
13985 c && a.focusManager.add(c,
14004 var c = v(this.editor),
14010 if (f = CKEDITOR.tools.search(c, function(a) {
14024 d && (d = CKEDITOR.tools.indexOf(c, function(a) {
14027 h ? c.splice(0, 0, a) : "number" == typeof d ? c.splice(d + 1, 0, b) : c.push(a)
14033 function r(a, b, c) {
14035 … if (c && !1 === a.fire("beforePaste", b) || !b.dataValue && b.dataTransfer.isEmpty()) return !1;
14047 var c = function(b) {
14051 b.on("copy", c);
14052 b.on("cut", c);
14082 function c(b) {
14091 var c = this.type;
14092 if (CKEDITOR.env.ie) b = e(c);
14094 b = a.document.$.execCommand(c, !1, null)
14110 function c(b, h) {
14129 "string" === typeof f ? c({
14131 }) : a.getClipboardData(c)
14151 var c =
14153 d = c.getBody(),
14159 … 7 < CKEDITOR.env.version ? c.$.execCommand(b) : c.$.selection.createRange().execCommand(b);
14167 c, d, e;
14168 …T && (c = b.getSelectedElement()) && (d = b.getRanges()[0], e = a.document.createText(""), e.inser…
14169 c.getParent() && (e.remove(), b.selectElement(c))
14175 function l(b, c) {
14226 c(k.getHtml())
14263 var c = {
14268 c.dataTransfer.cacheData();
14269 var d = !1 !== a.fire("beforePaste", c);
14270 …d && p.canClipboardApiBeTrusted(c.dataTransfer, a) ? (b.data.preventDefault(), setTimeout(function…
14271 r(a, c)
14273 c.dataValue = b.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,
14275 d && r(a, c)
14296 var c = b.getRanges();
14297 …return b.getType() == CKEDITOR.SELECTION_NONE || 1 == c.length && c[0].collapsed ? CKEDITOR.TRISTA…
14319 var c = null;
14321 c && (c.removeListener(), c = null);
14323 b && b.element && (c = b.element.on("touchend", function() {
14339 function b(c, d, e, h, f) {
14342 a.ui.addButton && a.ui.addButton(c, {
14354 b("Cut", "cut", c("cut"), 10, 1);
14355 b("Copy", "copy", c("copy"), 20, 4);
14361 a.getClipboardData = function(b, c) {
14365 c(a.data)
14371 c({
14380 c || (c = b, b = null);
14391 a.data._.committed || c(null)
14392 })) : c(null))
14408 function c(a) {
14418 return c(a.split("\x3c/div\x3e\x3cdiv\x3e").length + 1)
14421 return c(a.length / 4)
14435 get: function(c) {
14436 … == c ? b.plainText || (b.plainText = new CKEDITOR.filter("br")) : "semantic-content" == c ? ((c =…
14443 }), c = b.semanticContent = c), c) : c ? new CKEDITOR.filter(c) : null
14448 function w(a, b, c) {
14451 c.applyTo(b, !0, !1,
14472 function c(b, c, e) {
14473 c.select();
14484 function d(c, e) {
14485 c.select();
14493 function g(b, c, e) {
14498 c && (d.dragRange = c);
14515 e.attachListener(a, "dragstart", function(c) {
14516 b.initDragDataTransfer(c, a)
14519 var c = b.dragRange = a.getSelection().getRanges()[0];
14521c ? h(c.startContainer) : null, b.dragEndContainerChildCount = c ? h(c.endContainer) : null)
14534 e.attachListener(f, "drop", function(c) {
14535 if (!c.data.$.defaultPrevented) {
14536 c.data.preventDefault();
14537 var e = c.data.getTarget();
14539 var e = b.getRangeAtDropPosition(c, a),
14541 e && g(c, d, e)
14554 … }, 0) : g.getTransferType(a) == CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ? c(f, h, g) : d(h, g)
14563 var b, c = C();
14565 a.pasteFilter = c.get(b);
14574 var c = b.data,
14575 f = c.dataTransfer;
14576 …if (!c.dataValue && "paste" == c.method && f && 1 == f.getFilesCount() && g != f.id && (f = f.getF…
14590 g = c.dataTransfer.id;
14598 var c = b.data.dataTransfer,
14599 d = c.getData("text/html");
14601 …else if (d = c.getData("text/plain")) b.data.dataValue = a.editable().transformPlainTextToHtml(d),…
14606c = CKEDITOR.dtd.$block; - 1 < b.indexOf("Apple-") && (b = b.replace(/<span class="Apple-converted…
14615 return d.toLowerCase() in c ? (a.data.preSniffing = "html", "\x3c" + d) : b
14618 c ? (a.data.endsWithEOL = 1, "\x3c/" + d + "\x3e") : b
14633 w(a, f, c.get("plain-text"));
14663 addPasteButton: function(a, b, c) {
14664 a.ui.addButton && (a.ui.addButton(b, c), a._.pasteButtons ||
14675 b, c, d) {
14676 function g(a, c, d) {
14679c) && d != c.getChildCount()) return a = b.startContainer.getChild(b.startOffset - 1), c = b.start…
14682 …"number" == typeof d && "number" == typeof c && h.type == CKEDITOR.NODE_ELEMENT && (g(a.startConta…
14686 var c = b.startContainer,
14688 …equals(c) && a.endOffset <= d || a.startContainer.getParent().equals(c) && a.startContainer.getInd…
14690 internalDrop: function(a, b, c, d) {
14713 dataTransfer: c,
14721 var c = a.data.$,
14722 d = c.clientX,
14723 g = c.clientY,
14727 ….$.caretRangeFromPoint(d, g)) c = b.document.$.caretRangeFromPoint(d, g), e.setStart(CKEDITOR.dom.…
14728 …else if (c.rangeParent) e.setStart(CKEDITOR.dom.node(c.rangeParent), c.rangeOffset), e.collapse(!0…
14733 c = b.document.getBody().$.createTextRange();
14737 c.moveToPoint(d, g - l), f = !0
14740 c.moveToPoint(d, g + l), f = !0
14745 c.pasteHTML('\x3cspan id\x3d"' + k + '"\x3e​\x3c/span\x3e');
14767 var c = a.data.$ ? a.data.$.dataTransfer : null,
14768 d = new this.dataTransfer(c, b);
14770c ? this.dragData && d.id == this.dragData.id ? d = this.dragData : this.dragData = d : this.dragD…
14780 var c = a.data.$.clipboardData,
14781 d = new this.dataTransfer(c, b);
14783 …s.copyCutData && d.id == this.copyCutData.id ? (d = this.copyCutData, d.$ = c) : this.copyCutData …
14822 var c = "text/html" == a && b ? this._.nativeHtmlCache : this._.data[a];
14823 if (void 0 === c || null === c || "" === c) {
14824 … if (this._.fallbackDataTransfer.isRequired()) c = this._.fallbackDataTransfer.getData(a, b);
14826 c = this.$.getData(a) || ""
14828 c = ""
14830 "text/html" != a || b || (c = this._stripHtml(c))
14832 …" == a && CKEDITOR.env.gecko && this.getFilesCount() && "file://" == c.substring(0, 7) && (c = "");
14833 if ("string" === typeof c) var g = c.indexOf("\x3c/html\x3e"),
14834 c = -1 !== g ? c.substring(0, g + 7) : c;
14835 return c
14844 } catch (c) {}
14856 var c = b.getData(a);
14857 … "text/html" == a && (b._.nativeHtmlCache = b.getData(a, !0), c = b._stripHtml(c));
14858 c && (b._.data[a] = c)
14862 c, d;
14865 for (c = 0; c < this.$.types.length; c++) a(this.$.types[c])
14872 … for (c = 0; c < this.$.files.length; c++) this._.files.push(this.$.files[c]);
14894 for (var c = 0; c < this.$.types.length; c++) a[this.$.types[c]] = 1
14933 } catch (c) {}
14938 var c = this._getData(this._customDataFallbackType,
14940 if (b) return c;
14941 var c = this._extractDataComment(c),
14943 …d = a === this._customDataFallbackType ? c.content : c.data && c.data[a] ? c.data[a] : this._getDa…
14947 var c = a === this._customDataFallbackType;
14948 c && (b = this._applyDataComment(b, this._getFallbackTypeData()));
14952 g.setData(a, d), c && (this._dataTransfer._.nativeHtmlCache = d)
14955c = CKEDITOR.plugins.clipboard.fallbackDataTransfer; - 1 === CKEDITOR.tools.indexOf(c._customTypes,
14956 a) && c._customTypes.push(a);
14957 var c = this._getFallbackTypeContent(),
14961 …d = this._applyDataComment(c, e), g.setData(this._customDataFallbackType, d), this._dataTransfer._…
14970 var c = this._dataTransfer._.data;
14971 if (!b && c[a]) return c[a];
14987 c = this._dataTransfer._.data;
14989 void 0 !== c[a] ? b[a] = c[a] : void 0 !== b[a] && (b[a] = b[a])
15003 var c;
15004 …(c = /\x3c!--cke-data:(.*?)--\x3e/g.exec(a)) && c[1] && (b.data = JSON.parse(decodeURIComponent(c[…
15009 var c = "";
15010 …b && CKEDITOR.tools.objectKeys(b).length && (c = "\x3c!--cke-data:" + encodeURIComponent(JSON.stri…
15011 return c + (a && a.length ? a : "")
15019 function e(c) {
15021 …a.state != CKEDITOR.TRISTATE_DISABLED && (this.createPanel(c), a.on ? a.panel.hide() : a.panel.sho…
15025 $: function(c) {
15026 var a = c.panel || {};
15027 delete c.panel;
15028 this.base(c);
15041 create: function(c) {
15042 return new CKEDITOR.ui.panelButton(c)
15047 createPanel: function(c) {
15053 d = this._.panel = new CKEDITOR.ui.floatPanel(c, g, f),
15060 b.editorFocus && c.focus();
15065 … b.setState(b.modes && b.modes[c.mode] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED);
15142 c = this.document.getById(this.id).getAttribute("dir");
15143 … this._.onKeyDown(b) ? a.data.preventDefault() : (27 == b || b == ("rtl" == c ? 39 : 37)) && this.…
15229 }, e = this._.getItems(), d, c, f = e.count() - 1; 0 <= f; f--)
15230 …if (d = e.getItem(f), d.getAscendant(b) || (c = d, this._.focusIndex = f), "true" == d.getAttribut…
15231 c = d;
15234 …} c && (a && a(), CKEDITOR.env.webkit && c.getDocument().getWindow().focus(), c.focus(), this.onMa…
15251 … for (var d = this._.focusIndex, e = this.element.getElementsByTag("a"), c; c = e.getItem(++d);)
15252 if (c.getAttribute("_cke_focus") && c.$.offsetWidth) {
15254 c.focus();
15256 … } return c || b ? !1 : (this._.focusIndex = -1, this.onKeyDown(a,
15260 … for (e = this.element.getElementsByTag("a"); 0 < d && (c = e.getItem(--d));) {
15261 if (c.getAttribute("_cke_focus") && c.$.offsetWidth) {
15263 c.focus();
15266 c = null
15268 … return c || b ? !1 : (this._.focusIndex = e.count(), this.onKeyDown(a, 1));
15271 …return d = this._.focusIndex, (c = 0 <= d && this.element.getElementsByTag("a").getItem(d)) && (c.…
15282 function v(a, b, c, m, h) {
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…
15293 $: function(a, b, c, m) {
15297 c.forceIFrame = 1;
15298 c.toolbarRelated && a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE &&
15301 m = v(a, g, b, c, m || 0);
15311 definition: c,
15335 showBlock: function(a, b, c, m, h, g) {
15356 …!q || 1 != c && 4 != c ? q || 2 != c && 3 != c || (d += b.$.offsetWidth - 1) : d += b.$.offsetWidt…
15357 if (3 == c || 4 == c) p += b.$.offsetHeight - 1;
15407 c = a.width || a.right - a.left,
15411 … q ? m < c && (d = h > c ? d + c : b.width > c ? d - a.left : d - a.right + b.width) :
15412 … m < c && (d = h > c ? d - c : b.width > c ? d - a.right + b.width : d - a.left);
15413 c = a.top;
15414 … b.height - a.top < e && (p = c > e ? p - e : b.height > e ? p - a.bottom + b.height : p - a.top);
15479 showAsChild: function(a, b, c, f, h, g) {
15480 …if (this._.activeChild != a || a._.panel._.offsetParentId != c.getId()) this.hideChild(), a.onHide…
15484 …}, this), this._.activeChild = a, this._.focused = !1, a.showBlock(b, c, f, h, g), this.blur(), (C…
15499 var c = f[b];
15500 a ? c.destroy() : c.element.hide()
15539 var c = b.keys,
15541 c[f ? 37 : 39] = "next";
15542 c[40] = "next";
15543 c[9] = "next";
15544 c[f ? 39 : 37] = "prev";
15545 c[38] = "prev";
15546 c[CKEDITOR.SHIFT + 9] = "prev";
15547 c[32] = "click"
15555 c = e.elementPath(b);
15556 if (c) {
15557 b = c.block || c.blockLimit || e.document.getBody();
15558 …do c = b && b.getComputedStyle("back" == d ? "background-color" : "color") || "transparent"; while…
15559 c && "transparent" != c || (c = "#ffffff");
15560 …leAutomatic && this._.panel._.iframe.getFrameDocument().getById(m).setStyle("background-color", c);
15580 return c
15593 function c(a) {
15613 if (a) return c(a)
15615 else return c(a)
15624 c = n[1] || b;
15625 … = b : (b = "#" + b.replace(/^(.)(.)(.)$/, "$1$1$2$2$3$3"), n = e.lang.colorbutton.colors[c] || c);
15626 …; return false;\" href\x3d\"javascript:void('", n, '\')" data-value\x3d"' + c + '" role\x3d"option…
15627 c, '"\x3e\x3c/span\x3e\x3c/a\x3e\x3c/td\x3e')
15715 var c, f, e;
15716 c = function(a) {
15723 a.removeListener("ok", c);
15724 a.removeListener("cancel", c)
15728 c);
15729 a.on("cancel", c)
15763 var c = {},
15766 c[a] = d
15769 return c[a]
15772 … for (var e = [], b = 0, c = a.length; b < c; b++) f[a[b]] || (e.push(a[b]), f[a[b]] = 1);
15908 var c = f.keys;
15909 c[40] = "next";
15910 c[9] = "next";
15911 c[38] = "prev";
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");
15918 c = f.getDocument();
15919 c.getBody().setStyle("overflow", "hidden");
15920 c.getElementsByTag("html").getItem(0).setStyle("overflow", "hidden");
15936 …for (var c = k.elementPath(), c = ['\x3cdiv class\x3d"cke_menu' + (c && c.direction() != k.lang.di…
15938 …n != p.group && (c.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'…
15940 p.render(this, q, c)
15942 c.push("\x3c/div\x3e");
15943 f.setHtml(c.join(""));
15982 … f, c, l = g == CKEDITOR.TRISTATE_ON ? "on" : g == CKEDITOR.TRISTATE_DISABLED ? "disabled" : "off";
15991 …mand && (f = e.getCommand(this.command), (f = e.getCommandKeystroke(f)) && (c = CKEDITOR.tools.key…
16001 title: this.label + (c ? " (" + c.display + ")" : ""),
16002 ariaShortcut: c ? e.lang.common.keyboardShortcut + " " + c.aria : "",
16009 shortcutHtml: c ? n.output({
16010 shortcut: c.display
16043 … var c = CKEDITOR.env.webkit ? f : CKEDITOR.env.mac ? a.$.metaKey : a.$.ctrlKey;
16044 if (!e || !c) {
16047 var c = this.editor,
16048 … b = (new CKEDITOR.dom.elementPath(a.getTarget(), c.editable())).contains(function(a) {
16051 … b && "false" == b.getAttribute("contenteditable") && c.getSelection().fake(b)
16055 c = !b.equals(CKEDITOR.document),
16057 g = c ? a.$.clientX : a.$.pageX || b.x + a.$.clientX,
16058 h = c ? a.$.clientY : a.$.pageY || b.y + a.$.clientY;
16099 var c = new CKEDITOR.dom.walker(a);
16102 for (; a = c.next();)
16149 c = a.ui.get("CopyFormatting");
16157c && (b = CKEDITOR.document.getById(c._.id), d.attachListener(b, "dblclick", function() {
16183 c = b._extractStylesFromRange(a, e),
16187c.length; h++) f = c[h], g = e.createBookmark(), -1 === l(b.preservedElements, f.element) ? CKEDIT…
16193 c = e._determineContext(b.data.range);
16194 …list" === c && a.copyFormatting._isContextAllowed("list") ? e._applyStylesToListContext(b.editor, …
16219 c = b ? "keystrokeHandler" == b.from : !1,
16220 f = b ? b.sticky || c : !1,
16227c || (g.addClass("cke_copyformatting_active"), h.addClass("cke_copyformatting_tableresize_cursor")…
16239 c = CKEDITOR.plugins.copyformatting,
16241 g = c._getCursorContainer(a),
16244 …if (e && !f.styles) return c._putScreenReaderMessage(a, "failed"), c._detachPasteKeystrokeHandler(…
16245 e = c._applyFormat(a, f.styles);
16247 …cke_copyformatting_tableresize_cursor"), d.setState(CKEDITOR.TRISTATE_OFF), c._detachPasteKeystrok…
16248 c._putScreenReaderMessage(a, e ? "applied" : "canceled")
16276c; 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();)
16281 if (c = c.getAscendant(b, !0))
16282 if (c.removeAttributes(c.getAttributes()), d) break
16296 function e(a, c) {
16304 for (p = b(f, c); !p && f.getParent();) {
16310 p = b(f, c)
16318 …for (f || (f = a); f.type !== CKEDITOR.NODE_TEXT;) f = !m || c || k ? f.getChild(0) : f.getChild(f…
16320 c););
16321 if ("number" !== typeof n && !m) return e(f, c);
16322 if (m) c ? n = 0 : (g = /([\.\b]*$)/, n = (k = g.exec(h)) ? k.index : h.length);
16323 else if (c && (n += 1, n > h.length)) return e(f);
16329 var c = /\b\w+\b/ig,
16332 for (f = d(h); null != (g = c.exec(f));)
16333 …a = g.index, c = g.index + g[0].length, 0 === g.index && (g = e(h, !0), m = g.node, a = g.offset),…
16337 endOffset: c
16345 e, c;
16346c = 0; c < a.length; c++) e = a[c]._.definition, -1 !== CKEDITOR.tools.indexOf(CKEDITOR.plugins.co…
16352 c;
16354 for (; c = e.next();)
16355 if (c.getAscendant(b, !0)) return !0
16365 c = e.excludedAttributesFromInlineTransform,
16371 …tion.element = "span", g = 0; g < c.length; g++) b._.definition.attributes[c[g]] && delete b._.def…
16376 var e, c, f;
16377 …for (f = 0; f < d.length; f++) e = d[f], c = b.createBookmark(), "ol" === e.element || "ul" === e.…
16386 … }) : CKEDITOR.plugins.copyformatting._applyStylesToTextContext(a, b, [e]), b.moveToBookmark(c)
16394 var c, f, g;
16395 …for (g = 0; g < d.length; g++) c = d[g], f = b.createBookmark(), -1 !== l(["table", "tr"], c.eleme…
16396 c.applyToObject(a)
16397 }) : -1 !== l(["td", "th"], c.element) ? k(b, {
16401 e(a, c)
16402 }) : -1 !== l(["thead", "tbody"], c.element) ? k(b, {
16406 e(a, c)
16407 … }) : CKEDITOR.plugins.copyformatting._applyStylesToTextContext(a, b, [c]), b.moveToBookmark(f)
16412 c, f;
16416 if (!(c = e._getSelectedWordOffset(d))) return;
16418 d.setStart(c.startNode, c.startOffset);
16419 d.setEnd(c.endNode, c.endOffset);
16464 var c = a.lang.div,
16474 refresh: function(a, c) {
16475 …this.setState("div" in (a.config.div_wrapTable ? c.root : c.blockLimit).getDtd() ? CKEDITOR.TRISTA…
16485 function c(b) {
16488 … g.length; d++) e = g[d], e.collapsed ? c(b.getStartElement()) : (e = new CKEDITOR.dom.walker(e), …
16494 label: c.toolbar,
16500 label: c.edit,
16506 label: c.remove,
16524 getSurroundDiv: function(a, c) {
16525 var b = a.elementPath(c);
16535 var e = c.width,
16536 m = c.height,
16560 …n, c, h = ("both" == a.resize_dir || "horizontal" == a.resize_dir) && a.resize_minWidth != a.resiz…
16565 c = {
16573 a.resize_minWidth > c.width && (a.resize_minWidth = c.width);
16574 a.resize_minHeight > c.height && (a.resize_minHeight = c.height);
16589 …var c = '\x3cspan id\x3d"' + r + '" class\x3d"cke_resizer' + e + " cke_resizer_" + g + '" title\x3…
16590 "ltr" == g && "ltr" == e ? a.data.html += c : a.data.html = c + a.data.html
16601 function q(a, c) {
16620 c.html += '\x3cspan id\x3d"' +
16648 …for (var e = [], g = h.list = [], d = [], c = h.filters, p = !0, k = b.data.path.elements, u = k.l…
16654 for (var t = 0; t < c.length; t++) {
16655 var l = c[t](f, b);
16665 …for (c = 0; c < g; c++) b = d[c], p = a.lang.elementspath.eleTitle.replace(/%1/, b), b = x.output({
16666 id: q + c,
16670 index: c,
16696 c = "";
16698 CKEDITOR.env.mac && (c += ' onkeypress\x3d"return false;"');
16699 CKEDITOR.env.gecko && (c += ' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');
16700 …"{jsTitle}" tabindex\x3d"-1" class\x3d"cke_path_item" title\x3d"{label}"' + c + ' hidefocus\x3d"tr…
16707 a.on("uiSpace", function(c) {
16708 "bottom" == c.data.space && q(a, c.data)
16786 c = p.block,
16790 if (c && (c.is("li") || c.getParent().is("li"))) {
16791 c.is("li") ||
16792 (c = c.getParent());
16793 b = c.getParent();
16795 g = !c.hasPrevious();
16796 var f = !c.hasNext(),
16799 k = c.getDirection(1),
16800 t = c.getAttribute("class"),
16801 q = c.getAttribute("style"),
16804 …if (d.is("li")) g || f ? (g && f && b.remove(), c[f ? "insertAfter" : "insertBefore"](d)) : c.brea…
16808 … t), c.moveChildren(d)) : d = p.block, g || f) d[g ? "insertBefore" : "insertAfter"](b);
16809 else c.breakParent(b), d.insertAfter(b);
16810 else if (c.appendBogus(!0), g || f)
16811 … for (; h = c[g ? "getFirst" : "getLast"]();) h[g ? "insertBefore" : "insertAfter"](b);
16813 for (c.breakParent(b); h = c.getLast();) h.insertAfter(b);
16814 c.remove()
16819 if (c && c.getParent().is("blockquote")) {
16820 c.breakParent(c.getParent());
16821c.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1)) || c.getPrevious().remove();
16822 c.getNext().getFirst(CKEDITOR.dom.walker.invisible(1)) ||
16823 c.getNext().remove();
16824 b.moveToElementEditStart(c);
16828 } else if (c && c.is("pre") && !f) {
16834 c = q.nextBlock;
16837c ? (k = c.getParent(), k.is("li") && (c.breakParent(k), c.move(c.getNext(), 1))) : a && (k = a.ge…
16844 } else c && (d = c.clone());
16857 b.moveToElementEditStart(n && !f ? c : d)
16859 …else c.is("li") && (d = b.clone(), d.selectNodeContents(c), d = new CKEDITOR.dom.walker(d), d.eval…
16861 …er ? h.createElement("br") : h.createText(" ")).insertBefore(k)), c && b.moveToElementEditStart(c);
16887 c = [],
16900 c.push(d);
16913 c.push(h)
16916 g.regex = c.join(f ? "|" : "");
16926 … return "force" != c.entities_processNumerical && a[b] ? a[b] : "\x26#" + b.charCodeAt(0) + ";"
16928 var c = b.config;
16931 !1 !== c.basicEntities && e.push("nbsp,gt,lt,amp");
16932c.entities && (e.length && e.push("quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laqu…
16933c.entities_latin && e.push("Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc…
16934 c.entities_additional && e.push(c.entities_additional));
16938 c.entities && c.entities_processNumerical && (d = "[^ -~]|" + d);
16972 var c = window.open("", null, d, !0);
16973 if (!c) return !1;
16975 …ator.userAgent.toLowerCase().indexOf(" chrome/") && (c.moveTo(g, f), c.resizeTo(a, b)), c.focus(),…
16988 function l(a, c, b) {
16992 …ng" === typeof c ? (this.data = c, this.file = n(this.data), this.loaded = this.total = this.file.…
17004 var c = a.match(m)[1];
17017 type: c
17031 a.on("fileUploadRequest", function(c) {
17032 var b = c.data.fileLoader,
17034 c = c.data.requestData;
17037 for (e in c) {
17038 var h = c[e];
17065 create: function(a, c, b) {
17068 a = new b(this.editor, a, c);
17081 loadAndUpload: function(a, c) {
17088 b.upload(a, c)
17094 c = this.reader = new FileReader;
17099 c.onabort = function() {
17102 c.onerror = function() {
17106 c.onprogress = function(b) {
17110 c.onload = function() {
17112 a.data = c.result;
17115 c.readAsDataURL(this.file)
17117 upload: function(a, c) {
17118 var b = c || {};
17130 function c() {
17137 c()
17140 d.onabort = c;
17143 … }, d.upload.onerror = a, d.upload.onabort = c) : (b.uploadTotal = b.total, b.update());
17152 …}, c = ["message", "fileName", "url"], e = b.editor.fire("fileUploadResponse", a), h = 0; h < c.le…
17153 var k = c[h];
17182 getUploadUrl: function(a, c) {
17184 return c && a[c + "UploadUrl"] ? a[c + "UploadUrl"] : a.uploadUrl ? a.uploadUrl :
17185c && a["filebrowser" + b(c, 1) + "UploadUrl"] ? a["filebrowser" + b(c, 1) + "UploadUrl"] + "\x26re…
17187 isTypeSupported: function(a, c) {
17188 return !!a.type.match(c)
17197 for (var c in b) d.push(c + "\x3d" + encodeURIComponent(b[c]));
17220 c = this.filebrowser.params || {};
17221 c.CKEditor = b.name;
17222 c.CKEditorFuncNum = b._.filebrowserFn;
17223 c.langCode || (c.langCode = b.langCode);
17224 c = g(this.filebrowser.url, c);
17225 … b.popup(c, d, a, b.config.filebrowserWindowFeatures || b.config.fileBrowserWindowFeatures)
17243 var c = d.params || {};
17244 c.CKEditor = a.name;
17245 c.CKEditorFuncNum = a._.filebrowserFn;
17246 c.langCode || (c.langCode = a.langCode);
17247 b.action = g(d.url, c);
17251 function l(a, b, d, c) {
17252 if (c &&
17253 c.length)
17254 for (var e, g = c.length; g--;)
17255 …if (e = c[g], "hbox" != e.type && "vbox" != e.type && "fieldset" != e.type || l(a, b, d, e.childre…
17267 var c = b.sender,
17268 … d = c.getDialog().getContentElement(this["for"][0], this["for"][1]).getInputElement(),
17270 if (h && !1 === h.call(c, b)) return !1;
17271 if (t.call(c, b)) {
17300 for (var c = 0; c < d.length; c++)
17301 if (h(a, b, d[c])) return !0;
17309 c = this._.filebrowserSe["for"],
17311 c && d.getContentElement(c[0], c[1]).reset();
17314 …if ("string" == typeof b && b && alert(b), a && (c = this._.filebrowserSe, d = c.getDialog(), c =
17315 if (c = c.split(":"), e = d.getContentElement(c[0], c[1])) e.setValue(a),
17316 d.selectPage(c[0])
17329 for (var b = a.data.definition, d, c = 0; c < b.contents.length; ++c)
17330 …if (d = b.contents[c]) l(a.editor, a.data.name, b, d.elements), d.hidden && d.filebrowser && (d.hi…
17337 c = a.addCommand("replace", new CKEDITOR.dialogCommand("find", {
17342 c.canUndo = !1;
17364 var c = l.exec(a),
17366 if (c) {
17367 if (!c[2] && "px" == d[2]) return d[1];
17368 if ("px" == c[2] && !d[2]) return d[1] + "px"
17380 var c = (new k(a)).rules;
17382 var d = c.width,
17383 c = c.height;
17385 c && (a.height = g(a.height, c))
17401 CKEDITOR.editor.prototype.createFakeElement = function(a, b, c, d) {
17403 e = e[c] || e.unknown;
17413 c && (b["data-cke-real-element-type"] = c);
17414 …ble"] = d, c = new k, d = a.getAttribute("width"), a = a.getAttribute("height"), d && (c.rules.wid…
17419 CKEDITOR.editor.prototype.createFakeParserElement = function(a, b, c, d) {
17421 e = e[c] || e.unknown,
17435 c && (b["data-cke-real-element-type"] = c);
17436 …esizable"] = d, d = a.attributes, a = new k, c = d.width, d = d.height, void 0 !== c && (a.rules.w…
17444 var c = a.getStyle("width");
17446 c && b.setAttribute("width", g(b.getAttribute("width"), c));
17503 var c = b.attributes;
17504 if (!(c.classid && String(c.classid).toLowerCase() || d(b))) {
17505 for (c = 0; c < b.children.length; c++)
17506 if ("cke:embed" == b.children[c].name) {
17507 if (!d(b.children[c])) break;
17534 function f(a, c, e) {
17535 b.setStyle(c, w(e));
17549 f("absolute", "top", b.y + (c.height || c.bottom - c.top) + r)
17553 var m, k, n, c, h, q, v, p = l.floatSpaceDockedOffsetX || 0,
17568 c = k.getClientRect();
17572c.top ? e("top") : q + r > h.height - c.bottom ? e("pin") : e("bottom"), d = h.width / 2, d = l.fl…
17573c.left > c.right - d ? "left" : "right", n.width > h.width ? (d = "left", f = 0) : (f = "left" == …
17644 var c = b.attributes || (b.attributes = {});
17645 (this.multiSelect = !!b.multiSelect) && (c["aria-multiselectable"] = !0);
17646 !c.role &&
17647 (c.role = "listbox");
17649 this.element.setAttribute("role", c.role);
17650 c = this.keys;
17651 c[40] = "next";
17652 c[9] = "next";
17653 c[38] = "prev";
17654 c[CKEDITOR.SHIFT + 9] = "prev";
17655 c[32] = CKEDITOR.env.ie ? "mouseup" : "click";
17656 CKEDITOR.env.ie && (c[13] = "mouseup");
17683 add: function(a, b, c) {
17694 title: CKEDITOR.tools.htmlEncodeAttr(c || a),
17730 c = this.element.getDocument(),
17732 for (d in a) c.getById(a[d]).setStyle("display", "");
17733 …for (var e in b) a = c.getById(b[e]), d = a.getNext(), a.setStyle("display", ""), d && "ul" == d.g…
17752 var c = b.getById(a);
17753 c.removeClass("cke_selected");
17755 this.onUnmark && this.onUnmark(c)
17760 c;
17761 for (c in a) {
17762 var d = a[c];
17774 c, d = -1;
17776 … for (c = this.element.getDocument().getById(this._.items[a]).getFirst(); a = b.getItem(++d);) {
17777 if (a.equals(c)) {
17782 c && setTimeout(function() {
17783 c.focus()
17792 beforeInit: function(c) {
17793 c.ui.addHandler(CKEDITOR.UI_RICHCOMBO, CKEDITOR.ui.richCombo.handler)
17797 …var c = '\x3cspan id\x3d"{id}" class\x3d"cke_combo cke_combo__{name} {cls}" role\x3d"presentation"…
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;"');
17800 …var c = c + (' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event,this);" onfocus\…
17802 k = CKEDITOR.addTemplate("combo", c);
17845 var c =
17860 var c = d._;
17861 if (c.state != CKEDITOR.TRISTATE_DISABLED)
17862 if (d.createPanel(a), c.on) c.panel.hide();
17866 f ? c.list.mark(f) : c.list.unmarkAll();
17867 c.panel.showBlock(d.id, new CKEDITOR.dom.element(b), 4)
17896 c = {
17902 titleJs: c.gecko && !c.hc ? "" : (this.title ||
17908 k.output(c, b);
17915 c = this._.panelDefinition.block,
17919 b = e.addListBlock(this.id, c),
17952 var c = this.document.getById("cke_" + this.id + "_text");
17953 c &&
17954 …(a || b ? c.removeClass("cke_combo_inlinelabel") : (b = this.label, c.addClass("cke_combo_inlinela…
17974 add: function(a, b, c) {
17975 this._.items[a] = c || a;
17976 this._.list.add(a, b, c)
18069 for (var c = 0; c < g.length; c++) a = g[c], this.add(a, k[a].buildPreview(), a)
18074 var c = this.getValue(),
18077 if (c && a != c)
18078 if (e = k[c], c = b.getSelection().getRanges()[0], c.collapsed) {
18082 d = c.checkBoundaryOfElement(h,
18084 g = c.checkBoundaryOfElement(h, CKEDITOR.END);
18086 … for (d = c.createBookmark(); n = h.getFirst();) n.insertBefore(h);
18088 c.moveToBookmark(d)
18089c.moveToPosition(h, d ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_END) : (c.splitEl…
18090 b.getSelection().selectRanges([c])
18099 var c = this.getValue();
18105 e != c && this.setValue(e);
18204 e = function(d, c, e) {
18206 allowedContent: l[c],
18207 requiredContent: m[c]
18209 "form" == c && (h.context = "form");
18210 a.addCommand(c, new CKEDITOR.dialogCommand(c, h));
18213 command: c,
18216 CKEDITOR.dialog.add(c, e)
18276 a.contextMenu && (!a.blockless && a.contextMenu.addListener(function(d, c, a) {
18282 var c = d.getName();
18283 if ("select" == c) return {
18286 if ("textarea" == c) return {
18289 if ("input" == c) {
18315 if ("img" == c && "hiddenfield" == d.data("cke-real-element-type")) return {
18321 var c = d.data.element;
18322 if (!a.blockless && c.is("form")) d.data.dialog = "form";
18323 else if (c.is("select")) d.data.dialog = "select";
18324 else if (c.is("textarea")) d.data.dialog =
18326 …else if (c.is("img") && "hiddenfield" == c.data("cke-real-element-type")) d.data.dialog = "hiddenf…
18327 else if (c.is("input")) {
18328 c = c.getAttribute("type") || "text";
18329 switch (c) {
18344 h[c] && (d.data.dialog = "textfield")
18380 …for (var f = a.config, c = a.lang.format, l = f.format_tags.split(";"), d = {}, m = 0, n = [], g =…
18386 label: c.label,
18387 title: c.panelTitle,
18394 "aria-label": c.panelTitle
18398 this.startGroup(c.panelTitle);
18400 var e = c["tag_" + a];
18419 for (var c in d)
18420 if (d[c].checkActive(b, a)) {
18421 c != e && this.setValue(c,
18422 a.lang.format["tag_" + c]);
18435 for (var c in d)
18436 if (a.activeFilter.check(d[c])) return;
18554 var c = this._.rules[b];
18555 …push(this.selfClosingEnd), c && c.breakAfterClose && (this._.needsSpace = c.needsSpace)) : (this._…
18556 c && c.breakAfterOpen && this.lineBreak();
18599 var c = this._.rules[b];
18600 c ? CKEDITOR.tools.extend(c, a, !0) : this._.rules[b] =
18613 c = "iframe[align,longdesc,frameborder,height,name,scrolling,src,title,width]";
18614 a.plugins.dialogadvtab && (c += ";iframe" + a.plugins.dialogadvtab.allowedContent({
18621 allowedContent: c,
18663 var d = c.getBody().getElementsByTag(a);
18670 var d = c.getElementsByTag(a);
18675 c = a.document,
18676 d = c.body,
18677 e = c.getElementById("cke_actscrpt");
18679 (e = c.getElementById("cke_shimscrpt")) && e.parentNode.removeChild(e);
18680 (e = c.getElementById("cke_basetagscrpt")) && e.parentNode.removeChild(e);
18685 c = new CKEDITOR.dom.document(c);
18689 … CKEDITOR.env.ie && !CKEDITOR.env.edge && c.getDocumentElement().addClass(c.$.compatMode);
18692 …if (CKEDITOR.env.webkit || CKEDITOR.env.ie && 10 < CKEDITOR.env.version) c.getDocumentElement().on…
18701 var c =
18703 if (33 == c || 34 == c)
18709 d[33 == c ? "moveToElementEditStart" : "moveToElementEditEnd"](this);
18714 CKEDITOR.env.ie && this.attachListener(c, "blur", function() {
18716 c.$.selection.empty()
18719 CKEDITOR.env.iOS && this.attachListener(c, "touchend", function() {
18737 var c;
18740 … d && (c && (c.detachEvent("onresizestart", b), c = null), d.$.attachEvent("onresizestart",
18741 b), c = d.$)
18749 var c = a.document.$;
18750 c.execCommand("enableObjectResizing", !1, !a.config.disableObjectResizing);
18751 c.execCommand("enableInlineTableEditing", !1, !a.config.disableNativeTableHandles)
18782 …var c = "document.open();" + (CKEDITOR.env.ie ? "(" + CKEDITOR.tools.fixDomain + ")();" : "") + "d…
18783c = 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/…
18790 c = a.ui.space("contents");
18791 c.append(d);
18800 c.append(k, 1);
18842 var c = b.config,
18843 d = c.fullPage,
18844 e = c.docType,
18847 var h = c.baseHref ? '\x3cbase href\x3d"' +
18848 c.baseHref + '" data-cke-temp\x3d"1" /\x3e' : "";
18858c.docType + '\x3chtml dir\x3d"' + c.contentsLangDirection + '" lang\x3d"' + (c.contentsLanguage ||…
18861c = '\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"' + (CKEDITOR.env.ie ? ' defer\x3d"d…
18862 …CKEDITOR.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…
18864 a = a.replace(/(?=\s*<\/(:?head)>)/, c);
18883 c = b && a.docType,
18890 c && (b = c + "\n" + b);
18902 } catch (c) {}
18971 var c = e(b),
18973c && (g = f(c), g == a ? (c.removeStyle("float"), a == f(c) && c.removeAttribute("align")) :
18974 c.setStyle("float", a), d.cancel())
18977 var c = e(b);
18978c && (c = f(c), this.setState(c == a ? CKEDITOR.TRISTATE_ON : "right" == a || "left" == a ? CKEDIT…
18992 c;
18993 for (c in a.data.states) b.push(a.data.states[c]);
19030 for (var n = new CKEDITOR.dom.walker(f), c; c = n.next();)
19031 if (c.type == CKEDITOR.NODE_ELEMENT)
19032 if (!c.equals(l) &&
19033c.getDirection()) f.setStartAfter(c), n = new CKEDITOR.dom.walker(f);
19037 …, ""] : ["", "_rtl"], h = 0; h < d.length; h++) c.hasClass(d[h] + g[0]) && (c.removeClass(d[h] + g…
19038 d = c.getStyle("margin-right");
19039 g = c.getStyle("margin-left");
19040 d ? c.setStyle("margin-left", d) : c.removeStyle("margin-left");
19041 g ? c.setStyle("margin-right", g) : c.removeStyle("margin-right")
19065 c;
19066 for (c in b.jobs) e.on("exec", function(d) {
19067 …d.data.done || (a.fire("lockSnapshot"), b.execJob(a, c) && (d.data.done = !0), a.fire("unlockSnaps…
19068 }, this, null, c), e.on("refresh", function(d) {
19070 d.data.states[b.name + "@" + c] = b.refreshJob(a, c, d.data.path)
19071 }, this, null, c);
19098 function f(b, c, a) {
19102 if (c) {
19105 d && (d = d[1], a = CKEDITOR.tools.indexOf(c, d) + 1);
19107 a = Math.min(a, c.length);
19110 0 < a && b.addClass(c[a - 1])
19112 c = m(b, a);
19113 a = parseInt(b.getStyle(c), 10);
19121 b.setStyle(c, a ? a + (d.config.indentUnit || "px") : "");
19128 function m(b, c) {
19129 return "ltr" == (c || b.getComputedStyle("direction")) ? "margin-left" : "margin-right"
19138 function c() {
19168 if (!e.is(h)) var c = e.getAscendant(h),
19169 e = c && b.contains(c) || e;
19173 var c = d,
19176 c = e ? f ? e[1] != c.slice(-1) : !0 : f;
19177 return c ? n : k
19187 c;
19188 if (c = a.elementPath().contains(p)) f.call(this, c, d);
19190 …Br = a != CKEDITOR.ENTER_BR; c = b.getNextParagraph(a == CKEDITOR.ENTER_P ? "p" : "div");) c.isRea…
19199 indentblock: new c(b, "indentblock", !0),
19200 outdentblock: new c(b, "outdentblock")
19202 CKEDITOR.tools.extend(c.prototype, a.specificDefinition.prototype, {
19226 …for (var e = c.startContainer, a = c.endContainer; e && !e.getParent().equals(b);) e = e.getParent…
19256 …getName() in p;) CKEDITOR.env.needsNbspFiller && !b.getFirst(x) && b.append(c.document.createText(…
19262 …his, q = this.database, p = this.context, c, m = f.getSelection(), m = (m && m.getRanges()).create…
19263 for (var b = c.getCommonAncestor(); b &&
19271 b || (b = c.startPath().contains(p)) && c.setEndAt(b, CKEDITOR.POSITION_BEFORE_END);
19273 var d = c.getEnclosedNode();
19274 …pe == CKEDITOR.NODE_ELEMENT && d.getName() in p && (c.setStartAt(d, CKEDITOR.POSITION_AFTER_START)…
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…
19303 var c = f.elementPath();
19304 if ("wysiwyg" == f.mode && g.data.keyCode == this.indentKey && c) {
19305 var m = this.getContext(c);
19306 … this.isIndent && CKEDITOR.plugins.indentList.firstItemInPath(this.context, c, m) || (f.execComman…
19310 refresh: this.isIndent ? function(f, c) {
19311 var g = this.getContext(c),
19312 b = CKEDITOR.plugins.indentList.firstItemInPath(this.context, c, g);
19315 c) {
19316 return !this.getContext(c) || this.isIndent ? u : v
19360 function q(a, c) {
19361 c = void 0 === c || c;
19363 if (c) b = a.getComputedStyle("text-align");
19373 !b && c && (b = "rtl" == a.getComputedStyle("direction") ? "right" : "left");
19377 function h(a, c, b) {
19379 this.name = c;
19382 c = a.config.justifyClasses;
19385 if (c) {
19388 this.cssClassName = c[0];
19391 this.cssClassName = c[1];
19394 this.cssClassName = c[2];
19397 this.cssClassName = c[3]
19399 this.cssClassRegex = new RegExp("(?:^|\\s+)(?:" + c.join("|") + ")(?\x3d$|\\s)");
19413 var c = a.editor,
19414 b = c.createRange();
19421 var e = c.config.justifyClasses;
19430 var c = a.getSelection(),
19432 if (c) {
19433 …for (var f = c.createBookmarks(), d = c.getRanges(), e = this.cssClassName, h, g, k = a.config.use…
19448 c.selectBookmarks(f)
19451 refresh: function(a, c) {
19452 var b = c.block || c.blockLimit,
19456 …d && 1 === c.elements.length ? this.setState(CKEDITOR.TRISTATE_OFF) : !d && f ? this.setState(q(b,…
19462 var c = new h(a, "justifyleft", "left"),
19466 a.addCommand("justifyleft", c);
19495 var d = function(c) {
19498 …ED && (a.on && b ? b.hide() : (a.previousState = a.state, b || (b = a.menu = new CKEDITOR.menu(c, {
19502 "aria-label": c.lang.common.options
19506 var b = this.command ? c.getCommand(this.command).modes : this.modes;
19507 … this.setState(!b || b[c.mode] ? a.previousState : CKEDITOR.TRISTATE_DISABLED);
19516 $: function(c) {
19517 delete c.panel;
19518 this.base(c);
19524 create: function(c) {
19525 return new CKEDITOR.ui.menuButton(c)
19541 c = this,
19550 var c = e["language_" + b];
19551 … if (c) a[c.style.checkActive(a.elementPath(), a) ? "removeStyle" : "applyStyle"](c.style)
19554 this.setState(c.getCurrentLangElement(a) ? CKEDITOR.TRISTATE_ON :
19581 var b = c.getCurrentLangElement(a);
19596 d = c.getCurrentLangElement(a),
19612 var c;
19614 …= 0; d < a.length; d++) b = a[d], !c && "span" == b.getName() && b.hasAttribute("dir") && b.hasAtt…
19615 return c
19620 function p(c) {
19621 return c.replace(/'/g, "\\$\x26")
19624 function q(c) {
19625 for (var b, a = c.length, d = [], f = 0; f < a; f++) b = c.charCodeAt(f), d.push(b);
19629 function r(c, b) {
19630 var a = c.plugins.link,
19639 function n(c) {
19640 c = c.config.emailProtection || "";
19642 c && "encode" != c && (b = {}, c.replace(/^([^(]+)\(([^)]+)\)$/, function(a, c, f) {
19643 b.name = c;
19654 function c(b) {
19659 CKEDITOR.addCss(c("ltr") + c("rtl"))
19661 init: function(c) {
19663 …CKEDITOR.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");
19677 c.ui.addButton && (c.ui.addButton("Link", {
19678 label: c.lang.link.toolbar,
19682 c.ui.addButton("Unlink", {
19683 label: c.lang.link.unlink,
19686 }), c.ui.addButton("Anchor", {
19687 label: c.lang.link.anchor.toolbar,
19693 c.on("doubleclick", function(a) {
19699 …"anchor", a.data.link = b) : CKEDITOR.plugins.link.tryRestoreFakeAnchor(c, b) && (a.data.dialog = …
19701 c.on("doubleclick", function(a) {
19705 } && a.data.link && c.getSelection().selectElement(a.data.link)
19707 c.addMenuItems && c.addMenuItems({
19709 label: c.lang.link.anchor.menu,
19715 label: c.lang.link.anchor.remove,
19721 label: c.lang.link.menu,
19727 label: c.lang.link.unlink,
19733 c.contextMenu && c.contextMenu.addListener(function(a) {
19735 a = CKEDITOR.plugins.link.tryRestoreFakeAnchor(c, a);
19736 if (!a && !(a = CKEDITOR.plugins.link.getSelectedLink(c))) return null;
19746 n(c)
19748 afterInit: function(c) {
19749 c.dataProcessor.dataFilter.addRules({
19752 …return a.attributes.name ? a.children.length ? null : c.createFakeParserElement(a, "cke_anchor", "…
19756 var b = c._.elementsPath && c._.elementsPath.filters;
19758 …if ("a" == b && (CKEDITOR.plugins.link.tryRestoreFakeAnchor(c, a) || a.getAttribute("name") && (!a…
19788 getSelectedLink: function(c, b) {
19789 var a = c.getSelection(),
19798 … }), (g = c.elementPath(g.getCommonAncestor()).contains("a", 1)) && b) e.push(g);
19802 getEditorAnchors: function(c) {
19804c.editable(), a = b.isInline() && !c.plugins.divarea ? c.document : b, b = a.getElementsByTag("a")…
19808 for (f = 0; e = a.getItem(f++);)(e = this.tryRestoreFakeAnchor(c, e)) && d.push({
19815 tryRestoreFakeAnchor: function(c, b) {
19818 var a = c.restoreRealElement(b);
19822 parseLinkAttributes: function(c, b) {
19824 d = c.plugins.link.compiledProtectionFunction,
19825 f = c.config.emailProtection,
19827 a.match(t) && ("encode" == f ? a = a.replace(A, function(a, b, c) {
19828 c = c || "";
19829 … return "mailto:" + String.fromCharCode.apply(String, b.split(",")) + c.replace(/\\'/g, "'")
19830 }) : f && a.replace(B, function(a, b, c) {
19835 c = c.match(/[^,\s]+/g);
19836 …for (var e = c.length, f, h, k = 0; k < e; k++) f = decodeURIComponent, h = c[k].replace(b, "").re…
19877 getLinkAttributes: function(c, b) {
19878 var a = c.config.emailProtection || "",
19905 … a = f.split("@", 2), e.name = a[0], e.domain = a[1], a = ["javascript:", r(c, e)]
19944 showDisplayTextForElement: function(c, b) {
19957 !1 : !c || !c.getName || !c.is(a)
19962 exec: function(c) {
19964 var b = c.getSelection().getRanges()[0],
19974 c.removeStyle(a);
19977 refresh: function(c, b) {
19988 exec: function(c) {
19989 var b = c.getSelection(),
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…
20009 function c(c) {
20010 …if (!(!(a = d[c ? "getFirst" : "getLast"]()) || a.is && a.isBlockBoundary() || !(p = m.root[c ? "g…
20012 }))) b.document.createElement("br")[c ? "insertBefore" : "insertAfter"](a)
20028 c(!0);
20029 c();
20042 function E(b, m, e, c) {
20043c ? "getLast" : "getFirst"](J);)(g = f.getDirection(1)) !== m.getDirection(1) && f.setAttribute("d…
20048 var c = b[e ? "getPrevious" : "getNext"](u);
20049c && c.type == CKEDITOR.NODE_ELEMENT && c.is(b.getName()) && (E(b, c, null, !e), b.remove(), b = c)
20063 var c = e.extractContents();
20073 (k = c.getLast()) && k.type == CKEDITOR.NODE_ELEMENT &&
20075 … (k = m.startContainer.getChild(m.startOffset)) ? c.insertBefore(k): m.startContainer.append(c);
20076 d && (c = A(d)) && (g.contains(d) ? (E(c, d.getParent(), d), c.remove()) : g.append(c));
20079 c = h.block;
20080 if (!c) break;
20081c.is("li") && (g = c.getParent(), c.equals(g.getLast(u)) && c.equals(g.getFirst(u)) && (c = g));
20082 e.moveToPosition(c, CKEDITOR.POSITION_BEFORE_START);
20083 c.remove()
20086 c = b.editable();
20087 e.setEndAt(c, CKEDITOR.POSITION_BEFORE_END);
20112 listToArray: function(b, m, e, c, f) {
20114 c || (c = 0);
20118 …_ELEMENT && h.getName() in CKEDITOR.dtd.$list && CKEDITOR.plugins.list.listToArray(h, m, e, c + 1);
20122 indent: c,
20129 …NODE_ELEMENT && v[l.getName()] ? CKEDITOR.plugins.list.listToArray(l, m, e, c + 1, d.grandparent) …
20134 arrayToList: function(b, m, e, c, f) {
20137 …ment(k), d = null, a = e, p = Math.max(b[e].indent, 0), l = null, q, n, t = c == CKEDITOR.ENTER_P …
20148 ….element.getDirection(1), a = CKEDITOR.plugins.list.arrayToList(b, null, a, c, r != q ? q : null),…
20156 … A = l.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT && (c != CKEDITOR.ENTER_BR || d || z || D),
20186 …rkers(m, b), b.getName() in CKEDITOR.dtd.$listItem && (e = b, k = f = c = void 0, c = e.getDirecti…
20189 c == k && e.removeAttribute("dir")
20206 c = e && e.getRanges();
20210 var g = 1 == c.length && c[0];
20213 …EDITOR.ENTER_BR ? f.appendBogus() : c[0].fixBlock(1, m.enterMode == CKEDITOR.ENTER_P ? "p" : "div"…
20215 for (var m = e.createBookmarks(!0), f = [], k = {}, c = c.createIterator(), h = 0;
20216 (g = c.getNextRange()) && ++h;) {
20246 c = b;
20262 a = CKEDITOR.plugins.list.arrayToList(p, a, null, c.config.enterMode);
20267 c.fire("contentDomInvalidated")
20274 c = g.root.getDocument();
20276 …1 == l.length && l[0].equals(g.root) && (a = c.createElement("div"), l[0].moveChildren && l[0].mov…
20296 n = c.createElement(this.type);
20298 …for (t = d = void 0; h.length;) d = h.shift(), t = c.createElement("li"), r = d, r.is("pre") || L.…
20311 c = m.blockLimit || m.root;
20312 …e && c.contains(e) ? this.setState(e.is(this.type) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF)…
20331 c;
20352 ….getParent()) && a.is("li") && (a = A(a)) ? (c = a, a = a.getPrevious(u), e.moveToPosition(a && z(…
20353 …d.reset(), d.evaluator = G, a = d.previous()), c = a, e.moveToElementEditEnd(c), e.moveToPosition(…
20354 if (c) C(b, e, f), m.cancel();
20357 …lement(p, CKEDITOR.START) && (c = p.getFirst(u), f.checkBoundaryOfElement(c, CKEDITOR.START) && (a…
20359 } else if (c = g.contains("li")) {
20360 … if (d.range.setEndAt(h, CKEDITOR.POSITION_BEFORE_END), k = (h = c.getLast(u)) &&
20361 …G(h) ? h : c, g = 0, (a = d.next()) && a.type == CKEDITOR.NODE_ELEMENT && a.getName() in v && a.eq…
20364 if (1 == g && (e.optimize(), !e.startContainer.equals(c))) {
20365 … for (c = e.startContainer; c.is(CKEDITOR.dtd.$inline);) p = c, c = c.getParent();
20441 function V(a, c, d) {
20442 return n(c) && n(d) && d.equals(c.getNext(function(a) {
20454 var c = a.element;
20455 if (c && n(c) && (c = c.getAscendant(a.triggers, !0)) && a.editable.contains(c)) {
20456 var d = P(c);
20457 if ("true" == d.getAttribute("contenteditable")) return c;
20463 function ka(a, c, d) {
20464 r(a, c);
20466 a = c.size.bottom;
20471 function w(a, c, d) {
20472 return c =
20473 c[d ? "getPrevious" : "getNext"](function(b) {
20478 function q(a, c, d) {
20479 return a > c && a < d
20482 function P(a, c) {
20484 for (c || (a = a.getParent()); a && !a.data("cke-editable");) {
20492 var c = a.doc,
20494 c),
20501 … + a.editor.lang.magicline.title + '" contenteditable\x3d"false"\x3e\x26#8629;\x3c/span\x3e', c), {
20505 }), v(G(W, c), {
20508 }), v(G(W, c), {
20521 c = this.size;
20522 …return c && q(a.mouse.y, c.top - b, c.bottom + b) && q(a.mouse.x, c.left - b, c.right + b) ? !0 : …
20526 c = a.editable,
20538 … p.equals(c) ? (m.left = b.scroll.x, m.right = -b.scroll.x, m.width = "") : (m.left =
20550 …for (var b = this.lineChildren.length, c; b--;)(c = this.lineChildren[b]).setAttribute("style", c.…
20556 for (c = d.lineChildren.length; c--;) d.lineChildren[c].appendTo(d);
20563 var c = a.line.trigger;
20564 b[c.is(I) ? "insertBefore" : "insertAfter"](c.is(I) ? c.lower : c.upper)
20576 function S(a, c, d) {
20582 c(f);
20589 function Y(a, c) {
20598 …a.hotNode && a.hotNode.getText() == d && a.element.equals(a.hotNode) && a.lastCmdDirection === !!c;
20601 d[c ? "insertAfter" : "insertBefore"](b);
20604 "data-cke-magicline-dir": !!c
20606 a.lastCmdDirection = !!c
20618 e = w(a, b, !c);
20620 …(ma) && (!w(a, e, !c) || (f = w(a, e, !c)) && n(f) && f.is(a.triggers)) ? d(e) : (f = O(a, b), n(f…
20627 function A(a, c) {
20628 if (!c || c.type != CKEDITOR.NODE_ELEMENT || !c.$) return !1;
20630 return d.wrap.equals(c) || d.wrap.contains(c)
20640 var c;
20641 (c = ba(a)) || (n(a) ? (c = {
20645 }, c = !(!c[a.getComputedStyle("float")] && !c[a.getAttribute("align")])) : c = !1);
20646 return c
20656 function L(a, c) {
20657 return n(c) ? c.is(a.triggers) : null
20660 function aa(a, c) {
20661 if (!c) return !1;
20662 for (var d = c.getParents(1), b = d.length; b--;)
20669 c, d) {
20670 c = c[d ? "getLast" : "getFirst"](function(b) {
20673 if (!c) return !1;
20674 r(a, c);
20675 return d ? c.size.top > a.mouse.y : c.size.bottom < a.mouse.y
20679 var c = a.editable,
20685 c = c[f ? "getLast" : "getFirst"](function(a) {
20688 if (!c) return null;
20689 A(a, c) && (c = a.line.wrap[f ? "getPrevious" : "getNext"](function(a) {
20692 if (!n(c) || u(c) || !L(a, c)) return null;
20693 r(a, c);
20694c.size.top && q(d.y, 0, c.size.top + e) ? (a = a.inInlineMode || 0 === b.scroll.y ? C : x, new z([…
20698 var c = a.mouse,
20707 if (q(c.y, e.size.top - 1, e.size.top + b)) h = !1;
20708 else if (q(c.y,
20719 …vant)) ? (H(a), h && q(c.y, e.size.bottom - b, d.pane.height) && q(e.size.bottom, d.pane.height - …
20725 function U(a, c, d, b) {
20726c.getDocumentPosition(), f = {}, k = {}, h = {}, g = {}, l = y.length; l--;) f[y[l]] = parseInt(c.…
20730 g.outerWidth = c.$.offsetWidth;
20731 g.outerHeight = c.$.offsetHeight;
20737 top: c.$.scrollTop,
20738 left: c.$.scrollLeft
20748 function r(a, c, d) {
20749 if (!n(c)) return c.size = null;
20750 if (!c.size) c.size = {};
20751 else if (c.size.ignoreScroll == d && c.size.date > new Date - ga) return null;
20752 return v(c.size,
20753 U(a, c, d), {
20758 function H(a, c) {
20759 a.view.editable = U(a, a.editable, c, !0)
20762 function N(a, c) {
20765 if (!(!c && d && d.date > new Date - ga)) {
20786 function pa(a, c, d, b) {
20789 h || (h = c(e, b));
20790 g || (g = c(f, b));
20806 var c = a.config,
20807 d = c.magicline_triggerOffset || 30,
20810 enterMode: c.enterMode,
20812 holdDistance: 0 | d * (c.magicline_holdDistance || .5),
20813 boxColor: c.magicline_color || "#ff0000",
20814 rtl: "rtl" == c.contentsLangDirection,
20815 tabuList: ["data-cke-hidden-sel"].concat(c.magicline_tabuList || []),
20816 triggers: c.magicline_everywhere ? Z : {
20854 …null, 0), d.attachListener(b.inInlineMode ? g : g.getWindow().getFrame(), "mouseout", function(c) {
20857 var d = c.data.$.clientX;
20858 c = c.data.$.clientY;
20863 …d > e.left - f.x && d < e.right - f.x && c > e.top - f.y && c < e.bottom - f.y || (clearTimeout(k)…
20868 }), d.attachListener(d, "keydown", function(c) {
20869 if ("wysiwyg" == a.mode) switch (c.data.getKeystroke()) {
20874 }), d.attachListener(b.inInlineMode ? d : g, "mousemove", function(c) {
20878 x: c.data.$.clientX,
20879 y: c.data.$.clientY
20900 [c.magicline_keystrokePrevious, "accessPreviousSpace"],
20901 [c.magicline_keystrokeNext, "accessNextSpace"]
20903 var c, d, e, f;
20909 for (c = a.document.getElementsByTag(f), e = c.count(); e--;)
20910 if ((d = c.getItem(e)).data("cke-magicline-hot")) {
20957 set: function(a, c, d) {
20958 this.properties = a + c + (d || x);
20970 return function(c, d, b) {
20971 if (!c.mouse) return null;
20972 var e = c.doc,
20973 f = c.line.wrap;
20974 b = b || c.mouse;
20976 d && A(c, k) && (f.hide(), k = a(e, b), f.show());
20977 … != CKEDITOR.NODE_ELEMENT || !k.$ || t.ie && 9 > t.version && !c.boundary.equals(k) && !c.boundary…
20999 return c(a, b)
21004 return c(a, b)
21017 function c(a, b) {
21020 return function(c) {
21021 var b = a(c),
21026 …als(e) || e.equals(f) || f.contains(e) || e.contains(f) ? !1 : L(c, e) && L(c, f) && V(c, e, f) ? …
21039 var c = a.$.elements.namedItem(f[b]);
21040 c && (c = new CKEDITOR.dom.element(c), e.push([c, c.nextSibling]), c.remove())
21049 c = e[f][1];
21050 c ? b.insertBefore(c) : b.appendTo(a)
21057 c = a.$;
21058 e || (b["class"] = c.className ||
21059 "", c.className = "");
21060 b.inline = c.style.cssText || "";
21061 e || (c.style.cssText = "position: static; overflow: visible");
21089 var b = c.getViewPaneSize();
21095 c = b.getWindow(),
21112 m = c.getScrollPosition()
21119 c.on("resize", e);
21120 p = c.getScrollPosition();
21133 c.$.scrollTo(0, 0)
21134 }, 0) : c.$.scrollTo(0, 0);
21151 c.removeListener("resize", e);
21155 c.$.scrollTo(p.x, p.y)
21156 }, 0) : c.$.scrollTo(p.x,
21171 …ges(l), (k = a.getSelection().getStartElement()) && k.scrollIntoView(!0)) : c.$.scrollTo(m.x, m.y)…
21258 var c = a.dataProcessor,
21259 g = c && c.dataFilter,
21260 c = c && c.htmlFilter,
21263 c && c.addRules({
21266 var c = a.replace("cke_pagebreak", "");
21267 if (c != a) {
21276 return c
21288 var c = a.children[0];
21289 c && "span" == c.name && k.test(c.attributes.style) && b(a)
21323 var c = a.lang,
21324 …e = CKEDITOR.tools.keystrokeToString(c.common.keyboard, a.getCommandKeystroke(CKEDITOR.env.ie ? a.…
21326c = d && "string" === typeof d ? d : c.pastetext.pasteNotification.replace(/%1/, '\x3ckbd aria-lab…
21329 notification: d ? c : !1
21364 c, d = [];
21365 …if (b && a.editor.filter.check("img[src]") && (c = b.extractTagsFromHtml(a.data.dataValue), 0 !==
21368 }, this), c.length === d.length))))
21369 …for (b = 0; b < c.length; b++) 0 === c[b].indexOf("file://") && d[b] && (a.data.dataValue = a.data…
21393c = CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ? b.dataTransfer.getData("text/html", !0…
21395 c = c ||
21398 dataValue: c,
21404 … /<meta\s*name=(?:\"|\')?generator(?:\"|\')?\s*content=(?:\"|\')?microsoft/gi.test(c) || d.test(c);
21405 if (c && (e || d) && (!1 !== a.fire("pasteFromWord", g) || e)) {
21444 var c = window.screen,
21445 f = Math.round(.8 * c.width),
21446 b = Math.round(.7 * c.height),
21447 d = Math.round(.1 * c.width)
21452 var c = "",
21455 …opener._cke_htmlToLoad );document.close();window.opener._cke_htmlToLoad \x3d null;})() )", c = "");
21456 …CKEDITOR.env.gecko && (window._cke_htmlToLoad = a.dataValue, c = CKEDITOR.getUrl(h + "preview.html…
21457c = window.open(c, null, "toolbar\x3dyes,location\x3dno,status\x3dyes,menubar\x3dyes,scrollbars\x3…
21458 CKEDITOR.env.ie && c && (c.location =
21460 …CKEDITOR.env.ie || CKEDITOR.env.gecko || (e = c.document, e.open(), e.write(a.dataValue), e.close(…
21509 }, c; c = n.getNextRange();) {
21510 c.collapsed || c.enlarge(CKEDITOR.ENLARGE_ELEMENT);
21511 var l = c.createBookmark(),
21515 for (var c = a.elementPath(b), e = c.elements, d = 1, g;
21516 …(g = e[d]) && !g.equals(c.block) && !g.equals(c.blockLimit); d++) h.test(g.getName()) && f(a, g) &…
21526 c.moveToBookmark(l)
21584 var c = a.createRange();
21585 c.selectNodeContents(b);
21586 c.select()
21613 …var c = this.state != CKEDITOR.TRISTATE_ON || a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE && !a.…
21614 a.editable()[c]("cke_show_blocks")
21621 c, b, e, f, k = CKEDITOR.getUrl(this.path),
21626 …for (c = b = e = f = ""; d = a.pop();) h = a.length ? "," : "", c += ".cke_show_blocks " + d + g +…
21627 …CKEDITOR.addCss((c + "{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px}").conca…
21632 function c() {
21647 … a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE && (a.on("focus", c), a.on("blur", c));
21706 c = parseInt(a.border, 10);
21707c && !(0 >= c) || b && -1 != b.indexOf("cke_show_border") || (a["class"] = (b || "") + " cke_show_…
21727 return function(b, c) {
21730 c[!e || 0 >= e ? "addClass" : "removeClass"]("cke_show_border")
21739 return function(b, c) {
21741 parseInt(c.getAttribute("border"), 10) || c.addClass("cke_show_border")
21772 b = a.editable(new c(a, b));
21792 var c = CKEDITOR.tools.createClass({
21810 c.baseProto.detach.call(this);
21826 exec: function(c) {
21827 "wysiwyg" == c.mode && c.fire("saveSnapshot");
21828 c.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED);
21829 c.setMode("source" == c.mode ? "wysiwyg" : "source")
21898 var c = this;
21903 …b = c.availableLangs[b] ? b : c.availableLangs[b.replace(/-.*/, "")] ? b.replace(/-.*/, "") : "en";
21904 … CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path + "dialogs/lang/" + b + ".js"), function() {
21905 CKEDITOR.tools.extend(a.lang.specialchar, c.langEntries[b]);
21921 …26gt; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m …
21932 var c = this,
21964 var c = {
21972 a.config.scayt_uiTabs[0] || delete c.scaytOptions;
21973 a.config.scayt_uiTabs[1] || delete c.scaytLangs;
21974 a.config.scayt_uiTabs[2] || delete c.scaytDict;
21975 …b && !CKEDITOR.plugins.scayt.isNewUdSupported(b) && (delete c.scaytDict, a.config.scayt_uiTabs[2] …
21976 return c
21982 …e && (m = e.getSelectionNode()) && (l = c.menuGenerator(a, m), e.showBanner("." + a.contextMenu._.…
21993 var c = this,
22011 d.openDialog(c.dialogName, a)
22017 d.openDialog(c.dialogName, a)
22023 d.openDialog(c.dialogName, a)
22030 d.openDialog(c.dialogName, a)
22066c = a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? a.container.getText() : a.document.getBody().g…
22067 …(c = c.replace(/\s/g, "")) ? (d && b.state.scayt[a.name] && d.setMarkupPaused && d.setMarkupPaused…
22073 var c = CKEDITOR.plugins.scayt,
22076 c.destroy(a)
22079 !c.state.scayt[a.name] || a.readOnly || a.scayt || c.createScayt(a)
22086 var c, k;
22090 …length; h++) k = b[h], "string" === typeof k.startContainer.$.nodeValue && (c = k.startContainer.g…
22091 (c < k.startOffset || c < k.endOffset) && a.unlockSelection(!1))
22100 var c = a.editable();
22101 c.attachListener(c, "mousedown", function(b) {
22116 …b.data.name in c.options.disablingCommandExec && "wysiwyg" == a.mode ? d && (c.destroy(a), a.fire(…
22127 … if (b = a.scayt) c.destroy(a), a.fire("scaytButtonState", CKEDITOR.TRISTATE_DISABLED);
22133 c.reloadMarkup(a.scayt)
22138 …veMarkupInDocument", {}) : d ? c.reloadMarkup(d) : "wysiwyg" == b.editor.mode && !0 === c.state.sc…
22154 c.reloadMarkup(h)
22177 var c = CKEDITOR.plugins.scayt;
22178 c.replaceOldOptionsNames(a.config);
22180 c.state.scayt[a.name] = a.config.scayt_autoStartup;
22183 c.state.grayt[a.name] = a.config.grayt_autoStartup;
22211 ….config.scayt_srcUrl && (c = document.location.protocol, c = -1 != c.search(/https?:/) ? c : "http…
22222 var c = CKEDITOR.tools.isArray(a.config.scayt_disableOptionsStorage) ?
22231 var c = a[d],
22233 if (!g(e, c) || p && g(f, function(a) {
22236 g(f, c) && f.splice(k(f, c), 1);
22237 if ("all" === c || p && g(a, "lang")) return [];
22238 "options" === c && (f = ["lang"])
22241 }(c)
22245 var c = CKEDITOR.plugins.scayt,
22252 …if (a.scayt && (b.hasAttribute(c.options.data_attribute_name) || b.hasAttribute(c.options.problem_…
22256 …a.scayt && (b.hasAttribute(c.options.data_attribute_name) || b.hasAttribute(c.options.problem_gram…
22263 …var b = a.hasClass(c.options.misspelled_word_class) && a.attributes[c.options.data_attribute_name],
22264 …d = a.hasClass(c.options.problem_grammar_class) && a.attributes[c.options.problem_grammar_data_att…
22265 c && (b || d) && delete a.name;
22273 var b = a.hasClass(c.options.misspelled_word_class) &&
22274 a.attributes[c.options.data_attribute_name],
22275 …d = a.hasClass(c.options.problem_grammar_class) && a.attributes[c.options.problem_grammar_data_att…
22276 c && (b || d) && delete a.name;
22284 var c = this,
22322 d.openDialog(c.dialogName, a)
22334 d.openDialog(c.dialogName,
22347 d.openDialog(c.dialogName, a)
22359 d.openDialog(c.dialogName, a)
22390 buildSuggestionMenuItems: function(a, c, d) {
22396 if (0 < c.length && "no_any_suggestions" !== c[0])
22399 0; d < c.length; d++) {
22403 label: c[d],
22408 label: c[d],
22421 …for (d = 0; d < c.length; d++) l = "grayt_suggest_" + CKEDITOR.plugins.scayt.suggestions[d].replac…
22422 label: c[d],
22437 menuGenerator: function(a, c) {
22442 g = c.getAttribute(d.getLangAttribute()) || d.getLang(),
22444 l = d.isScaytNode(c);
22445 m = d.isGraytNode(c);
22446 …l ? (b = b.scayt, k = c.getAttribute(d.getScaytNodeAttributeName()), d.fire("getSuggestionsList", {
22450 …l)) : m && (b = b.grayt, e = c.getAttribute(d.getGraytNodeAttributeName()), d.getGraytNodeRuleAttr…
22468 createCommand: function(a, c, d) {
22473 e[c] = a;
22489 c;
22491 c = "4.5.7";
22493 c = c.replace(/\./g, "");
22494 d = a.length - c.length;
22496 c = parseInt(a) >= parseInt(c) * Math.pow(10, d)
22498 return c ? Array(7).join(String.fromCharCode(8203)) : String.fromCharCode(8203)
22526 openDialog: function(a, c) {
22527 var d = c.scayt;
22528 d.isAllModulesReady && !1 === d.isAllModulesReady() || (c.lockSelection(),
22529 c.openDialog(a))
22538 var c;
22539 a && (c = a.getScaytLangList(),
22540 …reloadMarkup ? a.reloadMarkup() : (this.alarmCompatibilityMessage(), c && c.ltr && c.rtl && a.fire…
22543 …for (var c in a) c in this.backCompatibilityMap && (a[this.backCompatibilityMap[c]] = a[c], delete…
22546 var c = this,
22564 data_attribute_name: c.options.data_attribute_name,
22565 misspelled_word_class: c.options.misspelled_word_class,
22566 problem_grammar_data_attribute: c.options.problem_grammar_data_attribute,
22567 problem_grammar_class: c.options.problem_grammar_class,
22591 c.alarmCompatibilityMessage(), delete f.charsToObserve, g = e(f)
22594c = 0; c < a.suggestionList.length; c++) b["word_" + a.suggestionList[c]] || (b["word_" + a.sugges…
22601 g.subscribe("graytStateChanged", function(c) {
22602 d.state.grayt[a.name] = c.state
22605 var c = a.editable(),
22606 e = c.getCustomData(d.charName);
22607 e && (e.$ = d.node, c.setCustomData(d.charName, e))
22620 loadScaytLibrary: function(a, c) {
22623 a.scayt || "function" === typeof c && c(a)
22632 var c = a.data.name;
22634 "scaytDialog" !== c && "checkspell" !== c && (a.on("show", function(a) {
22637 c = a.scayt;
22638 c && b.state.scayt[a.name] && c.setMarkupPaused && c.setMarkupPaused(!0)
22642 c = a.scayt;
22643 c && b.state.scayt[a.name] && c.setMarkupPaused && c.setMarkupPaused(!1)
22645 if ("scaytDialog" === c) a.on("cancel", function(a) {
22649 if ("checkspell" === c) a.on("cancel", function(a) {
22652 c = a.scayt;
22653 c && b.state.scayt[a.name] && c.setMarkupPaused && c.setMarkupPaused(!1);
22656 if ("link" === c) a.on("ok", function(a) {
22668 if ("replace" === c) a.on("hide", function(a) {
22671 c = a.scayt;
22673 c && (c.fire("removeMarkupInDocument", {}), b.reloadMarkup(c))
22683 c = this.scayt;
22685 … if (b = "ready" == this.status) var f = c.removeMarkupFromString(this.getSnapshot()),
22686 c = c.removeMarkupFromString(this._.previousValue),
22687 b = b && c !== f
22702 c = "function" == typeof a.equalsContent ? "equalsContent" : "equals";
22703 a[c] = CKEDITOR.tools.override(a[c], function(a) {
22705 var c = b.editor.scayt,
22710 ….editor.name] && b.editor.scayt && (this.contents = c.removeMarkupFromString(f) || "", b.contents …
22722 init: function(c) {
22723 var l = c.config,
22724 g = c.lang.stylescombo,
22728 c.on("stylesSet", function(a) {
22730c.blockless && b.element in CKEDITOR.dtd.$block || "string" == typeof b.type && !CKEDITOR.style.cu…
22737 c.ui.addRichCombo("Styles", {
22750 var a, b, c, d, e, f;
22752 …for (f = k.length; e < f; e++) a = k[e], b = a._name, d = a._.type, d != c && (this.startGroup(g["…
22753c = d), this.add(b, a.type == CKEDITOR.STYLE_OBJECT ? b : a.buildPreview(), b);
22757 c.focus();
22758 c.fire("saveSnapshot");
22760 var b = c.elementPath();
22761 if (a.group && a.removeStylesFromSameGroup(c)) c.applyStyle(a);
22762 else c[a.checkActive(b, c) ? "removeStyle" : "applyStyle"](a);
22763 c.fire("saveSnapshot")
22766 c.on("selectionChange", function(a) {
22772 if (f[g].checkElementRemovable(e, !0, c)) {
22782 var a = c.getSelection(),
22783 a = a.getSelectedElement() || a.getStartElement() || c.editable(),
22784 a = c.elementPath(a),
22791 d.checkApplicable(a, c, c.activeFilter) ? b[e]++ : this.hideItem(h);
22792 d.checkActive(a, c) && this.mark(h)
22799 var a = c.elementPath();
22802 if (f[b].checkApplicable(a, c, c.activeFilter)) return;
22815 function k(c) {
22832 var a = b.getParent().$.cells[b.$.cellIndex + (c ? -1 : 1)];
22837 … a = a.getAscendant("table").$.rows[a.$.rowIndex + (c ? -1 : 1)];
22838 return a.cells[c ? a.cells.length - 1 :
22841 if (a || c)
22864 exec: function(c) {
22865 c.container.focusNext(!0,
22866 c.tabIndex)
22870 exec: function(c) {
22871 c.container.focusPrevious(!0, c.tabIndex)
22875 init: function(c) {
22876 …for (var d = !1 !== c.config.enableTabKeyTools, e = c.config.tabSpaces || 0, b = ""; e--;) b += " …
22877 if (b) c.on("key", function(a) {
22878 9 == a.data.keyCode && (c.insertText(b), a.cancel())
22880 if (d) c.on("key", function(a) {
22881 …(9 == a.data.keyCode && c.execCommand("selectNextCell") || a.data.keyCode == CKEDITOR.SHIFT + 9 &&…
22883 c.addCommand("blur", CKEDITOR.tools.extend(g, h));
22884 c.addCommand("blurBack",
22886 c.addCommand("selectNextCell", k());
22887 c.addCommand("selectPreviousCell", k(!0))
22893 f, c, d, e, b, a;
22904 if (!c && b.equals(this)) {
22905 if (c = !0, k) {
22909 } else c && !this.contains(b) &&
22922 …for (var g = void 0 === h ? this.getTabIndex() : h, f, c, d, e = 0, b, a = this.getDocument().getB…
22924 if (!c && a.equals(this)) {
22925 if (c = !0, k) {
22929 } else c && !this.contains(a) && (f = 1);
22950 function f(c) {
22951 return CKEDITOR.tools.extend(c || {}, {
22953 refresh: function(c, b) {
22970 right: function(c) {
22971 if (c.styles) {
22973 … if (c.styles.border) a = CKEDITOR.tools.style.parse.border(c.styles.border);
22975 var b = c.styles;
22979 … a.style && "solid" === a.style && a.width && 0 !== parseFloat(a.width) && (c.attributes.border = …
22980 … "collapse" == c.styles["border-collapse"] && (c.attributes.cellspacing = 0)
23041 function c(b) {
23057c; l = h.next();) l.type == CKEDITOR.NODE_ELEMENT && l.is(CKEDITOR.dtd.table) || (l = l.getAscenda…
23068 …for (var b = D(d) ? d : q(d), c = b[0], e = c.getAscendant("table"), c = c.getDocument(), a = b[0]…
23069 …buildTableMap(e), e = b[g], g = f ? b[g - 1] : b[g + 1], b = b[0].length, c = c.createElement("tr"…
23071 …R.dom.element(e[k])).clone(), h.removeAttribute("rowSpan"), h.appendBogus(), c.append(h), h = h.$);
23074 f ? c.insertBefore(a) : c.insertAfter(a);
23075 return c
23082 c = b[0].getAscendant("table"),
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++) {
23093 …insertAfter(new CKEDITOR.dom.element(n[l - 1])) : (new CKEDITOR.dom.element(c.$.rows[d + 1])).appe…
23098 e = c.$.rows;
23099 f[0].moveToPosition(c, CKEDITOR.POSITION_BEFORE_START);
23101 1] || (0 < a ? e[a - 1] : null) || c.$.parentNode);
23103 return c.$.parentNode ? a : (f[0].select(), null)
23105 …d instanceof CKEDITOR.dom.element && (c = d.getAscendant("table"), 1 == c.$.rows.length ? c.remove…
23110 for (var f = d.getParent().$.cells, b = 0, c = 0; c < f.length; c++) {
23111 var e = f[c],
23119 for (var b = f ? Infinity : 0, c = 0; c < d.length; c++) {
23120 var e = v(d[c]);
23127 for (var b = D(d) ? d : q(d), c = b[0].getAscendant("table"),
23128 … f ? e : b, g = CKEDITOR.tools.buildTableMap(c), c = [], e = [], b = [], k = g.length, h = 0; h < …
23129 …for (h = 0; h < k; h++) c[h] && (1 < c[h].colSpan && e[h] == c[h] ? (g = c[h], g.colSpan += 1) : (…
23135 var b, c, d;
23140 c = b.endContainer;
23141 d = c.getName().toLowerCase();
23143 …for ((d = c.getPrevious()) || (d = c.getParent().getPrevious().getLast()); d.type !== CKEDITOR.NOD…
23150 c = q(d),
23151 e = c[0],
23152 a = c[c.length - 1],
23153 c = e.getAscendant("table"),
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].cellIndex ? new CKEDITOR.dom.element(g[0][k - 1]) : new CKEDITOR.dom.element(c.$.parentNode);
23164 l.length == d && (b[0].moveToPosition(c, CKEDITOR.POSITION_AFTER_END),
23165 b[0].select(), c.remove());
23175 var c = b.clone();
23176 c.appendBogus();
23177 f ? c.insertBefore(b) : c.insertAfter(b)
23185 c = b[0] && b[0].getAscendant("table"),
23200 …e ? p(e, !0) : c && (f[0].moveToPosition(c, CKEDITOR.POSITION_BEFORE_START), f[0].select(), c.remo…
23206 c = CKEDITOR.document;
23208 (c.focus(), b.focus());
23225 var c = q(d),
23227 …if ((f ? 1 != c.length : 2 > c.length) || (e = d.getCommonAncestor()) && e.type == CKEDITOR.NODE_E…
23229 d = c[0];
23246 c["up" == f || "left" == f ? "unshift" : "push"](new CKEDITOR.dom.element(n))
23253 for (f = 0; f < c.length; f++) {
23254 a = c[f];
23276 c = b.count();
23277 for (f = c - 1; 0 <= f; f--) e = b.getItem(f), e.$.cells.length || (e.remove(), c++);
23286 c = b.getParent(),
23287 e = c.getAscendant("table"),
23289 g = c.$.rowIndex,
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));
23301 m || e.append(c)
23303 …for (h = l = 1, e = c.clone(), e.insertAfter(c), e.append(c = b.clone()), m = A(a, g), k = 0; k < …
23304 c.appendBogus();
23306 c.$.rowSpan = h;
23308 1 == h && c.removeAttribute("rowSpan");
23309 return c
23317 c = b.getParent(),
23318 e = c.getAscendant("table"),
23320 a = A(e, c.$.rowIndex, b),
23322 if (1 < g) c = Math.ceil(g / 2), g = Math.floor(g / 2);
23324 for (var g = c = 1, k = [], h = 0; h < e.length; h++) {
23334 b.$.colSpan = c;
23336 1 == c && b.removeAttribute("colSpan");
23358 var c = d.addCommand(a, b);
23359 d.addFeature(c)
23361 var c = d.lang.table,
23528 label: c.cell.menu,
23548 label: c.cell.insertBefore,
23554 label: c.cell.insertAfter,
23560 label: c.cell.deleteCell,
23566 label: c.cell.merge,
23572 label: c.cell.mergeRight,
23578 label: c.cell.mergeDown,
23584 label: c.cell.splitHorizontal,
23590 label: c.cell.splitVertical,
23596 label: c.cell.title,
23602 label: c.row.menu,
23614 label: c.row.insertBefore,
23620 label: c.row.insertAfter,
23626 label: c.row.deleteRow,
23632 label: c.column.menu,
23644 label: c.column.insertBefore,
23650 label: c.column.insertAfter,
23656 label: c.column.deleteColumn,
23662 d.contextMenu && d.contextMenu.addListener(function(a, b, c) {
23663 return (a = c.contains({
23710 var c = a.getAscendant("table"),
23712 e = CKEDITOR.tools.buildTableMap(c),
23718 c.contains(d) && (b = b.getAscendant({
23722 g > h && (c = g, g = h, h = c, c = a, a = b, b = c);
23723 for (c = 0; c < e[g].length; c++)
23724 if (a.$ === e[g][c]) {
23725 l = c;
23727 } for (c = 0; c < e[h].length; c++)
23728 if (b.$ === e[h][c]) {
23729 p = c;
23731 } l > p && (c = l, l = p, p = c);
23732 for (c = g; c <= h; c++)
23733 for (g = l; g <= p; g++) d = new CKEDITOR.dom.element(e[c][g]),
23748 var c = a.editable().find(".cke_table-faked-selection"),
23752 for (d = 0; d < c.count(); d++) c.getItem(d).removeClass("cke_table-faked-selection");
23753 … 0 < c.count() && c.getItem(0).getAscendant("table").data("cke-table-faked-selection-table", !1);
23761 var c = [],
23763 … 0; e < b.length; e++) d = a.createRange(), d.setStartBefore(b[e]), d.setEndAfter(b[e]), c.push(d);
23764 a.getSelection().selectRanges(c)
23773 function L(a, b, c) {
23781 … if (!m.dirty && 1 === d.length && !D(c.data.getTarget())) return A(a, "mouseup" === c.name);
23791 c = b && b.getRanges() || [],
23794 …1 === c.length && c[0]._getTableElement() && c[0]._getTableElement().is("table") && (d = c[0]._get…
23813 function c(a) {
23818 …eButton(a) !== CKEDITOR.MOUSE_BUTTON_LEFT && f) && ("mouseup" !== a.name || c(a.data.getTarget()) …
23846 …ame && (CKEDITOR.tools.getMouseButton(a) === CKEDITOR.MOUSE_BUTTON_LEFT && (c(a.data.getTarget()) …
23862 function c(a) {
23882 …napshot"), x.append(p), a.editable().append(x), m = a.on("selectionChange", c, null, null, 0), f &…
23901 function B(a, b, c) {
23906 -1 !== CKEDITOR.tools.array.indexOf(b, d.data.name) && c(a, d.data)
23940 var c = b.getAscendant("table"),
23942 c = CKEDITOR.tools.buildTableMap(c),
23944 for (e = 0; e < c[d].length; e++)
23945 if ((new CKEDITOR.dom.element(c[d][e])).equals(b)) {
23955 q.prototype.insertRow = function(a, b, c) {
23958 ….cellIndex, e = this.cells.last.$.cellIndex, g = c ? [] : this.cells.all, h, k = 0; k < a; k++) h …
23960 return c ? !0 : a.$.cellIndex >= d && a.$.cellIndex <= e
23971 …for (var c = this.cells, d = c.all, e = r(c.first), g = r(c.last), c = 0; c < a; c++) d = d.concat…
23980 a.sort(function(a, c) {
23981 return a.getPosition(c) & CKEDITOR.POSITION_PRECEDING ? -1 : 1
23992 function c(a) {
24015 0)) : (c(f.cells.first), d.once("afterPaste", function() {
24032 var c = a.dataProcessor,
24034 c || (c = new CKEDITOR.htmlDataProcessor(a));
24035 d.setHtml(c.toHtml(b), {
24040 pasteTable: function(a, b, c) {
24045 for (l = 0; l < c.length; l++)
24046 … (k = new CKEDITOR.dom.element(g.$.rows[a.rows.first.$.rowIndex + l]), p = 0; p < c[l].length; p++)
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 -
24071 var c = a.editable();
24072 c.attachListener(c, "keydown", function(a) {
24073 function c(b, e) {
24123 (k = c(q, n)) ? n = k: n[0].moveToElementEditablePosition(q);
24131 c.attachListener(c, "keypress", function(d) {
24132 var c = a.getSelection(),
24135 … if (c && c.isInTable() && c.isFake && g && !(d.data.getKeystroke() & CKEDITOR.CTRL)) {
24136 d = c.getRanges();
24143 c.selectRanges([d[0]]))
24163 c = b.isInline() ? b : a.document,
24167 b.attachListener(c, "mousedown", w, null, d);
24168 b.attachListener(c, "mousemove", w, null, d);
24169 b.attachListener(c, "mouseup", w, null, d);
24175 …columnInsertBefore columnInsertAfter cellInsertBefore cellInsertAfter".split(" "), function(a, c) {
24176 t(a, c.selectedCells)
24177 }), B(a, ["cellMerge", "cellMergeRight", "cellMergeDown"], function(a, c) {
24178 t(a, [c.commandData.cell])
24197 function c() {
24239 a.on("mode", c);
24240 a.on("readOnly", c);
24277 var c = e.getKeyGroup(a),
24278 d = this.strokesRecorded[c] + 1;
24282 this.strokesRecorded[c] =
24284 this.previousKeyGroup = c
24308 save: function(a, b, c) {
24320 } else !1 !== c && d.fire("change");
24325 !1 !== c && this.refreshState();
24330 c;
24331 a.bookmarks && (b.focus(), c = b.getSelection());
24336 ….bookmarks ? c.selectBookmarks(a.bookmarks) : CKEDITOR.env.ie && (c = this.editor.document.getBody…
24346 c = this.currentImage,
24348 if (c)
24351 if (a = b[d], !c.equalsContent(a)) return a.index =
24355 if (a = b[d], !c.equalsContent(a)) return a.index = d, a;
24383 …for (var b = this.index, c = this.snapshots; 0 < b && this.currentImage.equalsContent(c[b - 1]);) …
24384 c.splice(b, this.index - b + 1, a);
24392 c = b[b.length - 1];
24393 …return c.equalsContent(a) && !c.equalsSelection(a) ? (this.currentImage = b[b.length - 1] = a, !0)…
24401 var c = null;
24402 if (b) c = !0;
24406 this.currentImage && this.currentImage.equalsContent(d) && (c = d)
24409 update: c,
24457 var c = a.getSnapshot();
24458 CKEDITOR.env.ie && c && (c = c.replace(/\s+data-cke-expando=".*?"/g, ""));
24459 this.contents = c;
24460 b || (this.bookmarks = (c = c && a.getSelection()) && c.createBookmarks2(!0));
24476 for (var c = 0; c < b.length; c++) {
24477 var d = b[c],
24478 e = a[c];
24513 var c = this.keyEventsStack.getTotalInputs();
24516 if (0 < c) b.type(a);
24533 c = this;
24535 c.onKeydown(a);
24536 if (e.ieFunctionalKeysBug(a.data.getKey())) c.onInput()
24538 … b.attachListener(b, CKEDITOR.env.ie ? "keypress" : "input", c.onInput, c, null, 999);
24539 b.attachListener(b, "keyup", c.onKeyup, c, null, 999);
24540 b.attachListener(b, "paste", c.ignoreInputEventListener, c, null, 999);
24541 b.attachListener(b, "drop", c.ignoreInputEventListener, c, null, 999);
24542 a.on("afterPaste", c.activateInputEventListener,
24543 c, null, 999);
24545 c.onNavigationKey()
24548 c.keyEventsStack.remove(9)
24632 var c = CKEDITOR.tools.bind(this.queryViewport, this),
24635 b.attachListener(this.winTop, "resize", c);
24636 b.attachListener(this.winTop, "scroll", c);
24646 b.attachListener(a, "resize", c);
24679 c = this.doc,
24681 …b.readOnly || "wysiwyg" != b.mode || (d.relations = {}, (g = c.$.elementFromPoint(f, h)) && g.node…
24710 function a(a, b, c) {
24712 e in c ? c[e].type |= b : c[e] = {
24718 var c;
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_…
24725 var d, b, c;
24727 if (c = a.$["data-cke-expando"],
24728 !(c && c in this.relations)) {
24735 function a(a, c, e, g, f) {
24739 if (k = this.doc.$.elementFromPoint(c, e))
24744 var d = CKEDITOR.env.ie || CKEDITOR.env.webkit ? function(a, c) {
24745 return a.contains(c)
24747 function(a, c) {
24748 return !!(a.compareDocumentPosition(c) & 16)
24750 return function(b, c, d) {
24752 f = a.call(this, b.$, c, d, -1, function(a) {
24755 c = a.call(this, b.$, c, d, 1, function(a) {
24760 if (c)
24761 for (this.traverseSearch(c); !c.getParent().equals(b);) c = c.getParent();
24762 for (; f || c;) {
24764 if (!f || f.equals(c)) break;
24766 c && (c = c.getPrevious(l));
24767 if (!c || c.equals(f)) break;
24768 this.traverseSearch(c)
24774 … for (var a = this.editable.getElementsByTag("*"), d = 0, b, c, e; b = a.getItem(d++);)
24776 for (e in this.lookups)(c = this.lookups[e](b)) && this.store(b, c);
24783 … var c = a.element[b === CKEDITOR.LINEUTILS_BEFORE ? "getPrevious" : "getNext"]();
24784 return c && l(c) ? (a.siblingRect = c.getClientRect(),
24790c in d) b = d[c], b.elementRect = b.element.getClientRect(), b.type & CKEDITOR.LINEUTILS_BEFORE &&…
24791 …CKEDITOR.LINEUTILS_INSIDE && this.store(c, CKEDITOR.LINEUTILS_INSIDE, (b.elementRect.top + b.eleme…
24796 var a, d, b, c;
24803 for (c = 0; c < d.length; c++)
24804 if (b < d[c].dist) {
24805 d.splice(c, 0, {
24811 } c == d.length && d.push({
24866 var b, c, e;
24870 c = this.visible[e];
24872 } if (!c)
24875 this.showLine(c = this.hidden[e]);
24877 } c || this.showLine(c = this.addLine());
24878 c.setCustomData("hash", this.hash);
24879 this.visible[c.getUniqueId()] = c;
24880 c.setStyles(b);
24881 d && d(c)
24886 c = this.locations[a][d],
24889 …e.top = this.inline ? c + this.winTopScroll.y - this.rect.relativeY : this.rect.top + this.winTopS…
24952 var c = a.editable();
24953 c.attachListener(c, "keydown", function(a) {
24955 b.addFillers(c) || b.removeFillers(c)
24979 c = a.getLast(e);
24982c && c.type == CKEDITOR.NODE_ELEMENT && !c.isEditable() && (this.endFiller = this.createFiller(!0)…
25031 c = b.editor.getSelection().getRanges()[0].startPath(),
25034 c.contains(a) && (g = a.getHtml(), e = !0);
25035 c = "start" == a.getAttribute(this.fillerAttribute);
25037 … CKEDITOR.POSITION_BEFORE_END), d.getSelection().selectRanges([f])) : e && (c ? f.setStartAt(b.get…
25048 var c = a.editable();
25049 "selectAll" == d.data.name && c && b.addFillers(c)
25078 function g(a, b, c, d, e) {
25083 inline: "span" == c.getParent().getName(),
25084 element: c,
25113 function q(a, b, c) {
25117 b = this.filter = c.filter;
25163 function c(a, c) {
25168 d[f], e === a.name) return b.upcasts[e].call(this, a, c);
25172 function d(b, c, d) {
25177 a._.upcasts.splice(e, 0, [CKEDITOR.tools.bind(b, c), c.name, d])
25181 e && ("string" == typeof e ? d(c, b, f) : d(e, b, f))
25187 var c = b.editor.checkDirty();
25192 !c && b.editor.resetDirty()
25201 c = this.instances,
25204 … for (d in c) c[d].isReady() && !b.contains(c[d].wrapper) && this.destroy(c[d], !0);
25205 if (a && a.initOnlyNew) c = this.initOnAll();
25208 c = [];
25223 …h && b.contains(f) && (f.addClass("cke_widget_new"), c.push(this.initOn(f.getFirst(g.isDomWidgetEl…
25227 1 == c.length && c[0].focus()
25235 c = w(a),
25238c && c.value && c.value.match(/\s$/g) && (c.parent.attributes["data-cke-white-space-last"] = 1, c.…
25256 function x(a, b, c) {
25257 if (!c.allowedContent && !c.disallowedContent) return null;
25261 …a || (a = c.allowedContent ? new CKEDITOR.filter(c.allowedContent) : this.editor.filter.clone(), d…
25267 c = a._.upcasts,
25276 if (m = c.length) {
25282 …if (f = c[k], l = {}, h = f[0](a, l)) return h instanceof CKEDITOR.htmlParser.element && (a = h), …
25298 function z(a, b, c) {
25301 if (d && !d[c.name]) {
25307 return z(e, b, c)
25310 a.add(c, b)
25321 function n(a, b, c, d) {
25324c ? (d = c.data("cke-widget-editable"), d = b.editables[d], a.widgetHoldingFocusedEditable = b, b.…
25340 c = CKEDITOR.plugins.lineutils;
25341 b.on("dragstart", function(c) {
25342 var e = c.data.target;
25343 …g.isDomDragHandler(e) && (e = a.getByElement(e), c.data.dataTransfer.setData("cke/widget-id", e.id…
25345 b.on("drop", function(c) {
25346 var e = c.data.dataTransfer,
25350c.cancel() : "" !== f && h == CKEDITOR.DATA_TRANSFER_INTERNAL && (f = a.instances[f]) && (e.setSta…
25355 finder: new c.finder(b, {
25359 var c = g.getNestedEditable(d, b);
25360 if (c) {
25362 if (a.getByElement(c) == b) return;
25363 c = CKEDITOR.filter.instances[c.data("cke-filter")];
25365 if (c && b && !c.check(b)) return
25372 locator: new c.locator(b),
25373 liner: new c.liner(b, {
25392 var c = b.editable(),
25393 d = c.isInline() ? c : b.document,
25395 c.attachListener(d, "mousedown", function(c) {
25396 var d = c.data.getTarget();
25400 …g.getNestedEditable(e.wrapper, d) ? e = null : (c.data.preventDefault(), CKEDITOR.env.ie || e.focu…
25402 c.attachListener(d, "mouseup", function() {
25405 CKEDITOR.env.ie && c.attachListener(d, "mouseup", function() {
25407 e && e.wrapper && c.contains(e.wrapper) && (e.focus(), e = null)
25421 var c = a.focused,
25424 c ? e = c.fire("key", {
25426c = b.data.keyCode, b = d.focusedEditable, c == CKEDITOR.CTRL + 65 ? (c = b.getBogus(), d = d.edit…
25436 var c = a.editor;
25437 c.on("contentDom", function() {
25438 var a = c.editable();
25450 b.on("selectionChange", function(c) {
25451 …var d = (c = g.getNestedEditable(b.editable(), c.data.selection.getStartElement())) && a.getByElem…
25454 … e.focusedEditable.equals(c) || (n(a, e, null), d && c && n(a, d, c)) : d && c && n(a, d, c)
25468 c = {};
25473 c[e] = f;
25475 var c = b.attributes,
25477 if ("data-cke-widget-white-space" in c) {
25484 if ("data-cke-widget-id" in c) {
25485 … if (c = a.instances[c["data-cke-widget-id"]]) d = b.getFirst(g.isParserWidgetElement), f.push({
25488 widget: c,
25491 …} else if ("data-cke-widget-editable" in c) return f[f.length - 1].editables[c["data-cke-widget-ed…
25497 a = c[a.data.downcastingSessionId];
25515 c, d;
25525c = b.data.protectedWhitespaces ? 3 == b.data.dataValue.children.length && g.isParserWidgetWrapper…
25529 for (var c = b.editable().find(".cke_widget_wrapper"),
25530 …f, h, l = 0, k = c.count(); l < k; ++l) f = c.getItem(l), h = f.getFirst(g.isDomWidgetElement), h.…
25550 focusInited: c
25557 c = [],
25562 0 > CKEDITOR.tools.indexOf(b, a) && c.push(a);
25580 for (; h = c.pop();) b.push(h), h.setSelected(!0);
25586 function D(a, b, c) {
25592 … for (e = CKEDITOR.tools.clone(e); f = b.pop();) c ? e[f] || (d = e[f] = 1) : e[f] && (delete e[f],
25603 var c = a.editor,
25604 d = c.document,
25607 var f = !c.blockless && !CKEDITOR.env.ie || e ? "div" : "span",
25621 e.setStyle("ltr" == c.config.contentsLangDirection ? "left" :
25623 var g = c.createRange();
25626 …e.setHtml('\x3cspan data-cke-copybin-start\x3d"1"\x3e​\x3c/span\x3e' + c.editable().getHtmlFromRan…
25627 c.fire("saveSnapshot");
25628 c.fire("lockSnapshot");
25630 c.editable().append(h);
25631 var k = c.on("selectionChange", F, null, null, 0),
25635 g = c.createRange();
25644 c.fire("unlockSnapshot");
25645 b && !c.readOnly && (a.repository.del(a), c.fire("saveSnapshot"))
25657 c = b.editable();
25658 … (c.isInline() ? c : b.document.getWindow().getFrame()).equals(a) && b.focusManager.focus(c)
25694 c = a.wrapper.getLast(g.isDomDragHandlerContainer),
25696c ? d = c.findOne("img") : (c = new CKEDITOR.dom.element("span", b.document), c.setAttributes({
25707 … }), a.inline && d.setAttribute("draggable", "true"), c.append(d), a.wrapper.append(c));
25718 a.dragHandlerContainer = c
25726 var c = k;
25732 … CKEDITOR.tools.isEmpty(e.visible) || (c = d.getRange(c[0]), this.focus(), f.fire("drop", {
25733 dropRange: c,
25734 target: c.startContainer
25743 var c = this.repository.finder,
25752 var p = c.greedySearch(),
25773 var b, c, d = a.editables;
25776 for (b in d) c = d[b], a.initEditable(b, "string" == typeof c ? {
25777 selector: c
25778 } : c)
25795 c, d;
25796 for (d in a.parts) c = a.wrapper.findOne(a.parts[d]), b[d] = c;
25847 function b(a, b, c) {
25848 …return c && this.checkElement(a) ? (a = c.widgets.getByElement(a, !0)) && a.checkStyleActive(this)…
25850 var c = {};
25858 c[a] || (c[a] = {});
25859 … f = 0, h = this.group.length; f < h; f++) b = this.group[f], c[a][b] || (c[a][b] = []), c[a][b].p…
25876 b = c[this.widget][this.group[g]];
25899 var b, c = {};
25904 c[a.styleableElements] = {
25908 return c
25933 c, d, e;
25934 …for (d in b) c = b[d], (e = c.button) && a.ui.addButton && a.ui.addButton(CKEDITOR.tools.capitaliz…
25936 command: c.name,
25962 c = C(this),
25964 if (b && (d = this.getByElement(b, !0))) return c.focus(d).select(d).commit();
25966 if (!a || a.collapsed) return c.commit();
25968 … for (a.evaluator = g.isDomWidgetWrapper; b = a.next();) c.select(this.getByElement(b));
25969 c.commit()
25977 c = b.createRange(),
25979 …(d = c.moveToClosestEditablePosition(a.wrapper, !0)) || (d = c.moveToClosestEditablePosition(a.wra…
25980 d && b.getSelection().selectRanges([c])
25993 var c, d, e = this.instances;
25996 …for (var e = d.count(), f = 0; f < e; ++f)(c = this.getByElement(d.getItem(f), !0)) && this.destro…
25998 for (d in e) c = e[d], this.destroy(c, a)
26021 initOn: function(a, b, c) {
26025 …return d ? d.hasClass("cke_widget_new") ? (a = new g(this, this._.nextId++, a, b, c), a.isInited()…
26029 …for (var b = [], c, d = a.count(); d--;)(c = this.initOn(a.getItem(d).getFirst(g.isDomWidgetElemen…
26035 for (var c in this.instances) {
26036 var d = this.instances[c];
26039 this.on("instanceCreated", function(c) {
26040 c = c.data;
26041 c.name == a && c.on.apply(c, b)
26047 for (var b, c = {}, d = 0; b = a.pop();) - 1 == b.indexOf("cke_") && (c[b] = d = 1);
26049 c : null
26052 var c = null,
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");
26063 c.setAttributes(y(e, b));
26064 c.data("cke-display-name", d.pathName ? d.pathName : a.getName());
26065 a.getParent(!0) && c.replace(a);
26066 a.appendTo(c)
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));
26076 c.attributes["data-cke-display-name"] =
26081 c.add(a);
26082 d && z(d, f, c)
26084 return c
26114 var c = this.editables[a];
26115 c.removeListener("focus", H);
26116 c.removeListener("blur", G);
26117 this.editor.focusManager.remove(c);
26118 b || (this.repository.destroyAll(!1, c), c.removeClass("cke_widget_editable"),
26119c.removeClass("cke_widget_editable_focused"), c.removeAttributes(["contenteditable", "data-cke-wid…
26155 var c = this._findOneNotNested(b.selector);
26156 return c && c.is(CKEDITOR.dtd.$editable) ? (c = new q(this.editor, c, {
26159 c, c.setAttributes({
26162 "data-cke-enter-mode": c.enterMode
26163c.filter && c.data("cke-filter", c.filter.id), c.addClass("cke_widget_editable"), c.removeClass("c…
26167 for (var b, c, d = 0; d < a.count(); d++)
26169 … a.getItem(d), c = b.getAscendant(g.isDomWidgetWrapper), this.wrapper.equals(c)) return b;
26196 var c = this.data,
26198 if ("string" == typeof a) c[a] !== b && (c[a] = b, d = 1);
26201 for (a in e) c[a] !== e[a] && (d = 1, c[a] = e[a])
26203 d && this.dataReady && (r(this), this.fire("data", c));
26220 c = this._.dragHandlerOffset,
26225c && b.x == c.x && b.y == c.y || (c = a.checkDirty(), a.fire("lockSnapshot"), this.dragHandlerCont…
26229 }), a.fire("unlockSnapshot"), !c && a.resetDirty(), this._.dragHandlerOffset = b)
26297 function e(a, b, c) {
26301 this._singularMessage = c ? new CKEDITOR.template(c) : null;
26318 c;
26320 c = this._addTask(a);
26321 c.on("updated", this._onTaskUpdate, this);
26322 c.on("done", this._onTaskDone, this);
26323 c.on("canceled", function() {
26324 this._removeTask(c)
26328 return c
26422 addUploadWidget: function(a, c, f) {
26428 var l = a.widgets.registered[c],
26439 …ploadUrl, l.additionalRequestParameters), CKEDITOR.fileTools.markElement(m, c, e.id), "loadAndUplo…
26448 c = this.wrapper.findOne("[data-cke-upload-id]").data("cke-upload-id"),
26449 k = b.loaders[c],
26459 … a.editable().find('[data-cke-upload-id\x3d"' + c + '"]').count() || k.abort(), b.removeListener()
26463 replaceWith: function(d, c) {
26474 f.insertHtmlIntoRange(d, g, c);
26487 a.widgets.add(c, f)
26489 markElement: function(a, c, f) {
26492 "data-widget": c
26495 bindNotifications: function(a, c) {
26509 c.on("update", function() {
26510 !b && c.uploadTotal && (f(), b = h.createTask({
26511 weight: c.uploadTotal
26513 b && "uploading" == c.status && b.update(c.uploaded)
26515 c.on("uploaded", function() {
26518 c.on("error", function() {
26520 a.showNotification(c.message, "warning")
26522 c.on("abort",
26531 function l(c) {
26532 9 >= c && (c = "0" + c);
26533 return String(c)
26536 function n(c) {
26540 return "image-" + CKEDITOR.tools.array.map(a, l).join("") + "-" + e + "." + c
26548 init: function(c) {
26551 e = a.getUploadUrl(c.config,
26553 e && (a.addUploadWidget(c, "uploadimage", {
26572 }), c.on("paste", function(b) {
26587 …&& h[1] || "jpg", d = c.uploadRepository.create(d, n(h)), d.upload(e), a.markElement(g, "uploadima…