| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039 |
- /**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.10.0 (2021-10-11)
- */
- /*!
- * Tiny FormatPainter plugin
- *
- * Copyright 2010-2021 Tiny Technologies, Inc. All rights reserved.
- *
- * Version: 1.2.0-36
- */
- !function(m) {
- "use strict";
- var l = function(e) {
- var r = e
- , n = function() {
- return r
- };
- return {
- get: n,
- set: function(e) {
- r = e
- },
- clone: function() {
- return l(n())
- }
- }
- }
- , n = function(e) {
- return parseInt(e, 10)
- }
- , i = function(e, r) {
- var n = e - r;
- return 0 === n ? 0 : 0 < n ? 1 : -1
- }
- , t = function(e, r, n) {
- return {
- major: e,
- minor: r,
- patch: n
- }
- }
- , o = function(e) {
- var r = /([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(e);
- return r ? t(n(r[1]), n(r[2]), n(r[3])) : t(0, 0, 0)
- }
- , d = function(e, r) {
- return !!e && -1 === function(e, r) {
- var n = i(e.major, r.major);
- if (0 !== n)
- return n;
- var t = i(e.minor, r.minor);
- if (0 !== t)
- return t;
- var o = i(e.patch, r.patch);
- return 0 !== o ? o : 0
- }(o([(n = e).majorVersion, n.minorVersion].join(".").split(".").slice(0, 3).join(".")), o(r));
- var n
- }
- , a = function() {
- return (a = Object.assign || function(e) {
- for (var r, n = 1, t = arguments.length; n < t; n++)
- for (var o in r = arguments[n])
- Object.prototype.hasOwnProperty.call(r, o) && (e[o] = r[o]);
- return e
- }
- ).apply(this, arguments)
- };
- function c() {
- for (var e = 0, r = 0, n = arguments.length; r < n; r++)
- e += arguments[r].length;
- var t = Array(e)
- , o = 0;
- for (r = 0; r < n; r++)
- for (var i = arguments[r], a = 0, u = i.length; a < u; a++,
- o++)
- t[o] = i[a];
- return t
- }
- var e, r, u, s, f, v, g, p, h, b, y, S, O, N = function() {}, w = function(e) {
- return function() {
- return e
- }
- }, T = w(!1), x = w(!0), E = function() {
- return k(0, 0)
- }, k = function(e, r) {
- return {
- major: e,
- minor: r
- }
- }, _ = {
- nu: k,
- detect: function(e, r) {
- var n = String(r).toLowerCase();
- return 0 === e.length ? E() : function(e, r) {
- var n = function(e, r) {
- for (var n = 0; n < e.length; n++) {
- var t = e[n];
- if (t.test(r))
- return t
- }
- }(e, r);
- if (!n)
- return {
- major: 0,
- minor: 0
- };
- var t = function(e) {
- return Number(r.replace(n, "$" + e))
- };
- return k(t(1), t(2))
- }(e, n)
- },
- unknown: E
- }, A = "Edge", D = "Chrome", C = "Opera", R = "Firefox", L = "Safari", P = function(e, r) {
- return function() {
- return r === e
- }
- }, I = function(e) {
- var r = e.current;
- return {
- current: r,
- version: e.version,
- isEdge: P(A, r),
- isChrome: P(D, r),
- isIE: P("IE", r),
- isOpera: P(C, r),
- isFirefox: P(R, r),
- isSafari: P(L, r)
- }
- }, F = {
- unknown: function() {
- return I({
- current: void 0,
- version: _.unknown()
- })
- },
- nu: I,
- edge: w(A),
- chrome: w(D),
- ie: w("IE"),
- opera: w(C),
- firefox: w(R),
- safari: w(L)
- }, M = "Windows", B = "Android", j = "Linux", U = "Solaris", V = "FreeBSD", q = "ChromeOS", z = function(e, r) {
- return function() {
- return r === e
- }
- }, X = function(e) {
- var r = e.current;
- return {
- current: r,
- version: e.version,
- isWindows: z(M, r),
- isiOS: z("iOS", r),
- isAndroid: z(B, r),
- isOSX: z("OSX", r),
- isLinux: z(j, r),
- isSolaris: z(U, r),
- isFreeBSD: z(V, r),
- isChromeOS: z(q, r)
- }
- }, H = {
- unknown: function() {
- return X({
- current: void 0,
- version: _.unknown()
- })
- },
- nu: X,
- windows: w(M),
- ios: w("iOS"),
- android: w(B),
- linux: w(j),
- osx: w("OSX"),
- solaris: w(U),
- freebsd: w(V),
- chromeos: w(q)
- }, W = function() {
- return Y
- }, Y = (e = function(e) {
- return e.isNone()
- }
- ,
- s = {
- fold: function(e, r) {
- return e()
- },
- is: T,
- isSome: T,
- isNone: x,
- getOr: u = function(e) {
- return e
- }
- ,
- getOrThunk: r = function(e) {
- return e()
- }
- ,
- getOrDie: function(e) {
- throw new Error(e || "error: getOrDie called on none.")
- },
- getOrNull: w(null),
- getOrUndefined: w(void 0),
- or: u,
- orThunk: r,
- map: W,
- each: N,
- bind: W,
- exists: T,
- forall: x,
- filter: W,
- equals: e,
- equals_: e,
- toArray: function() {
- return []
- },
- toString: w("none()")
- },
- Object.freeze && Object.freeze(s),
- s), G = function(n) {
- var e = w(n)
- , r = function() {
- return o
- }
- , t = function(e) {
- return e(n)
- }
- , o = {
- fold: function(e, r) {
- return r(n)
- },
- is: function(e) {
- return n === e
- },
- isSome: x,
- isNone: T,
- getOr: e,
- getOrThunk: e,
- getOrDie: e,
- getOrNull: e,
- getOrUndefined: e,
- or: r,
- orThunk: r,
- map: function(e) {
- return G(e(n))
- },
- each: function(e) {
- e(n)
- },
- bind: t,
- exists: t,
- forall: t,
- filter: function(e) {
- return e(n) ? o : Y
- },
- toArray: function() {
- return [n]
- },
- toString: function() {
- return "some(" + n + ")"
- },
- equals: function(e) {
- return e.is(n)
- },
- equals_: function(e, r) {
- return e.fold(T, function(e) {
- return r(n, e)
- })
- }
- };
- return o
- }, $ = {
- some: G,
- none: W,
- from: function(e) {
- return null == e ? Y : G(e)
- }
- }, K = function(r) {
- return function(e) {
- return function(e) {
- if (null === e)
- return "null";
- var r = typeof e;
- return "object" === r && (Array.prototype.isPrototypeOf(e) || e.constructor && "Array" === e.constructor.name) ? "array" : "object" === r && (String.prototype.isPrototypeOf(e) || e.constructor && "String" === e.constructor.name) ? "string" : r
- }(e) === r
- }
- }, Z = K("string"), J = K("array"), Q = K("boolean"), ee = K("function"), re = K("number"), ne = Array.prototype.slice, te = Array.prototype.indexOf, oe = Array.prototype.push, ie = function(e, r) {
- return n = e,
- t = r,
- -1 < te.call(n, t);
- var n, t
- }, ae = function(e, r) {
- for (var n = 0, t = e.length; n < t; n++) {
- if (r(e[n], n))
- return !0
- }
- return !1
- }, ue = function(e, r) {
- for (var n = e.length, t = new Array(n), o = 0; o < n; o++) {
- var i = e[o];
- t[o] = r(i, o)
- }
- return t
- }, ce = function(e, r) {
- for (var n = [], t = 0, o = e.length; t < o; t++) {
- var i = e[t];
- r(i, t) && n.push(i)
- }
- return n
- }, se = function(e, r) {
- for (var n = 0, t = e.length; n < t; n++) {
- var o = e[n];
- if (r(o, n))
- return $.some(o)
- }
- return $.none()
- }, fe = function(e, r) {
- return function(e) {
- for (var r = [], n = 0, t = e.length; n < t; ++n) {
- if (!J(e[n]))
- throw new Error("Arr.flatten item " + n + " was not an array, input: " + e);
- oe.apply(r, e[n])
- }
- return r
- }(ue(e, r))
- }, me = (ee(Array.from) && Array.from,
- function(e, r) {
- var n = String(r).toLowerCase();
- return se(e, function(e) {
- return e.search(n)
- })
- }
- ), le = function(e, n) {
- return me(e, n).map(function(e) {
- var r = _.detect(e.versionRegexes, n);
- return {
- current: e.name,
- version: r
- }
- })
- }, de = function(e, n) {
- return me(e, n).map(function(e) {
- var r = _.detect(e.versionRegexes, n);
- return {
- current: e.name,
- version: r
- }
- })
- }, ve = function(e, r) {
- return -1 !== e.indexOf(r)
- }, ge = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, pe = function(r) {
- return function(e) {
- return ve(e, r)
- }
- }, he = [{
- name: "Edge",
- versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
- search: function(e) {
- return ve(e, "edge/") && ve(e, "chrome") && ve(e, "safari") && ve(e, "applewebkit")
- }
- }, {
- name: "Chrome",
- versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/, ge],
- search: function(e) {
- return ve(e, "chrome") && !ve(e, "chromeframe")
- }
- }, {
- name: "IE",
- versionRegexes: [/.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/],
- search: function(e) {
- return ve(e, "msie") || ve(e, "trident")
- }
- }, {
- name: "Opera",
- versionRegexes: [ge, /.*?opera\/([0-9]+)\.([0-9]+).*/],
- search: pe("opera")
- }, {
- name: "Firefox",
- versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],
- search: pe("firefox")
- }, {
- name: "Safari",
- versionRegexes: [ge, /.*?cpu os ([0-9]+)_([0-9]+).*/],
- search: function(e) {
- return (ve(e, "safari") || ve(e, "mobile/")) && ve(e, "applewebkit")
- }
- }], be = [{
- name: "Windows",
- search: pe("win"),
- versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]
- }, {
- name: "iOS",
- search: function(e) {
- return ve(e, "iphone") || ve(e, "ipad")
- },
- versionRegexes: [/.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/]
- }, {
- name: "Android",
- search: pe("android"),
- versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/]
- }, {
- name: "OSX",
- search: pe("mac os x"),
- versionRegexes: [/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]
- }, {
- name: "Linux",
- search: pe("linux"),
- versionRegexes: []
- }, {
- name: "Solaris",
- search: pe("sunos"),
- versionRegexes: []
- }, {
- name: "FreeBSD",
- search: pe("freebsd"),
- versionRegexes: []
- }, {
- name: "ChromeOS",
- search: pe("cros"),
- versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/]
- }], ye = {
- browsers: w(he),
- oses: w(be)
- }, Se = l(function(e, r) {
- var n, t, o, i, a, u, c, s, f, m, l, d, v = ye.browsers(), g = ye.oses(), p = le(v, e).fold(F.unknown, F.nu), h = de(g, e).fold(H.unknown, H.nu);
- return {
- browser: p,
- os: h,
- deviceType: (t = p,
- o = e,
- i = r,
- a = (n = h).isiOS() && !0 === /ipad/i.test(o),
- u = n.isiOS() && !a,
- c = n.isiOS() || n.isAndroid(),
- s = c || i("(pointer:coarse)"),
- f = a || !u && c && i("(min-device-width:768px)"),
- m = u || c && !f,
- l = t.isSafari() && n.isiOS() && !1 === /safari/i.test(o),
- d = !m && !f && !l,
- {
- isiPad: w(a),
- isiPhone: w(u),
- isTablet: w(f),
- isPhone: w(m),
- isTouch: w(s),
- isAndroid: n.isAndroid,
- isiOS: n.isiOS,
- isWebView: w(l),
- isDesktop: w(d)
- })
- }
- }(m.navigator.userAgent, function(e) {
- return m.window.matchMedia(e).matches
- })), Oe = function() {
- return Se.get()
- }, Ne = Object.keys, we = Object.hasOwnProperty, Te = function(e, r) {
- for (var n = Ne(e), t = 0, o = n.length; t < o; t++) {
- var i = n[t];
- r(e[i], i)
- }
- }, xe = function(e, t) {
- var o = {};
- return Te(e, function(e, r) {
- var n = t(e, r);
- o[n.k] = n.v
- }),
- o
- }, Ee = function(n) {
- return function(e, r) {
- n[r] = e
- }
- }, ke = function(e, r) {
- var n, t, o, i, a = {}, u = {};
- return n = e,
- t = r,
- o = Ee(a),
- i = Ee(u),
- Te(n, function(e, r) {
- (t(e, r) ? o : i)(e, r)
- }),
- {
- t: a,
- f: u
- }
- }, _e = function(e) {
- return n = function(e) {
- return e
- }
- ,
- t = [],
- Te(e, function(e, r) {
- t.push(n(e, r))
- }),
- t;
- var n, t
- }, Ae = function(e, r) {
- return De(e, r) ? $.from(e[r]) : $.none()
- }, De = function(e, r) {
- return we.call(e, r)
- }, Ce = (m.Node.ATTRIBUTE_NODE,
- m.Node.CDATA_SECTION_NODE,
- m.Node.COMMENT_NODE,
- m.Node.DOCUMENT_NODE,
- m.Node.DOCUMENT_TYPE_NODE,
- m.Node.DOCUMENT_FRAGMENT_NODE,
- m.Node.ELEMENT_NODE), Re = m.Node.TEXT_NODE, Le = (m.Node.PROCESSING_INSTRUCTION_NODE,
- m.Node.ENTITY_REFERENCE_NODE,
- m.Node.ENTITY_NODE,
- m.Node.NOTATION_NODE,
- void 0 !== m.window ? m.window : Function("return this;")(),
- f = Re,
- function(e) {
- return e.dom().nodeType === f
- }
- ), Pe = function(e, r, n) {
- !function(e, r, n) {
- if (!(Z(n) || Q(n) || re(n)))
- throw m.console.error("Invalid call to Attr.set. Key ", r, ":: Value ", n, ":: Element ", e),
- new Error("Attribute value was not simple");
- e.setAttribute(r, n + "")
- }(e.dom(), r, n)
- }, Ie = function(e, r) {
- var n = e.dom().getAttribute(r);
- return null === n ? void 0 : n
- }, Fe = function(e, r) {
- e.dom().removeAttribute(r)
- }, Me = function(e, r) {
- var n = Ie(e, r);
- return void 0 === n || "" === n ? [] : n.split(" ")
- }, Be = function(e) {
- return void 0 !== e.dom().classList
- }, je = function(e) {
- return Me(e, "class")
- }, Ue = function(e, r) {
- return o = r,
- i = Me(n = e, t = "class").concat([o]),
- Pe(n, t, i.join(" ")),
- !0;
- var n, t, o, i
- }, Ve = function(e, r) {
- return o = r,
- 0 < (i = ce(Me(n = e, t = "class"), function(e) {
- return e !== o
- })).length ? Pe(n, t, i.join(" ")) : Fe(n, t),
- !1;
- var n, t, o, i
- }, qe = function(e, r) {
- var n;
- Be(e) ? e.dom().classList.remove(r) : Ve(e, r);
- 0 === (Be(n = e) ? n.dom().classList : je(n)).length && Fe(n, "class")
- }, ze = function(e) {
- if (null == e)
- throw new Error("Node cannot be null or undefined");
- return {
- dom: w(e)
- }
- }, Xe = {
- fromHtml: function(e, r) {
- var n = (r || m.document).createElement("div");
- if (n.innerHTML = e,
- !n.hasChildNodes() || 1 < n.childNodes.length)
- throw m.console.error("HTML does not have a single root node", e),
- new Error("HTML must have a single root node");
- return ze(n.childNodes[0])
- },
- fromTag: function(e, r) {
- var n = (r || m.document).createElement(e);
- return ze(n)
- },
- fromText: function(e, r) {
- var n = (r || m.document).createTextNode(e);
- return ze(n)
- },
- fromDom: ze,
- fromPoint: function(e, r, n) {
- var t = e.dom();
- return $.from(t.elementFromPoint(r, n)).map(ze)
- }
- }, He = function(e, r) {
- e.fire("FormatPainterToggle", {
- state: r
- })
- };
- (g = v || (v = {})).Retrival = "Retrieval",
- g.Application = "Application",
- (h = p || (p = {})).ListSchema = "ListSchema",
- h.SubstitutionSchema = "SubstitionSchema",
- (y = b || (b = {})).InsertUnorderedList = "InsertUnorderedList",
- y.InsertOrderedList = "InsertOrderedList",
- y.InsertDefinitionList = "InsertDefinitionList",
- (O = S || (S = {})).Table = "Table",
- O.Unspecified = "Unspecified";
- var We = function(e) {
- var r, n;
- r = Xe.fromDom(e.getBody()),
- n = "tox-cursor-format-painter",
- Be(r) ? r.dom().classList.add(n) : Ue(r, n)
- }
- , Ye = function(e, r) {
- var n;
- n = e,
- qe(Xe.fromDom(n.getBody()), "tox-cursor-format-painter"),
- r.set(v.Retrival),
- He(e, !1)
- }
- , Ge = function(e, r) {
- r.get() === v.Application ? Ye(e, r) : function(r, n) {
- var t = Oe()
- , o = l(!1);
- We(r),
- n.set(v.Application),
- He(r, !0),
- r.execCommand("mceRetrieveFormats");
- var i = function() {
- r.execCommand("mcePaintFormats"),
- Ye(r, n)
- }
- , e = function() {
- n.get() === v.Application && i(),
- s()
- }
- , a = function(e) {
- n.get() === v.Application && ("touchcancel" === e.type && t.os.isAndroid() ? r.once("contextmenu", i) : o.get() ? i() : r.once("selectionchange", i)),
- s()
- }
- , u = function(e) {
- 27 === e.keyCode && (Ye(r, n),
- s())
- }
- , c = function(e) {
- o.set("touchmove" === e.type)
- };
- r.on("click", e),
- r.on("touchstart touchmove", c),
- r.on("touchend touchcancel", a),
- r.on("keydown", u);
- var s = function() {
- r.off("click", e),
- r.off("touchstart touchmove", c),
- r.off("touchend touchcancel", a),
- r.off("keydown", u)
- }
- }(e, r)
- }
- , $e = function(e, r, n) {
- return 0 != (e.compareDocumentPosition(r) & n)
- }
- , Ke = function(e, r) {
- return $e(e, r, m.Node.DOCUMENT_POSITION_CONTAINED_BY)
- }
- , Ze = Ce
- , Je = function(e, r) {
- return e.dom() === r.dom()
- }
- , Qe = (Oe().browser.isIE(),
- function(e, r) {
- var n = e.dom();
- if (n.nodeType !== Ze)
- return !1;
- var t = n;
- if (void 0 !== t.matches)
- return t.matches(r);
- if (void 0 !== t.msMatchesSelector)
- return t.msMatchesSelector(r);
- if (void 0 !== t.webkitMatchesSelector)
- return t.webkitMatchesSelector(r);
- if (void 0 !== t.mozMatchesSelector)
- return t.mozMatchesSelector(r);
- throw new Error("Browser lacks native selectors")
- }
- );
- var er = function(e, r, n) {
- for (var t = e.dom(), o = ee(n) ? n : w(!1); t.parentNode; ) {
- t = t.parentNode;
- var i = Xe.fromDom(t);
- if (r(i))
- return $.some(i);
- if (o(i))
- break
- }
- return $.none()
- }
- , rr = function(e, r, n) {
- var t, o, i, a;
- return t = er,
- a = n,
- function(e, r) {
- return r(e)
- }(o = e, i = r) ? $.some(o) : ee(a) && a(o) ? $.none() : t(o, i, a)
- }
- , nr = {
- formatpainter_checklist: {
- selector: "ul",
- classes: "tox-checklist"
- },
- formatpainter_liststyletype: {
- selector: "ul,ol",
- styles: {
- listStyleType: "%value"
- }
- },
- formatpainter_borderstyle: {
- selector: "td,th",
- styles: {
- borderTopStyle: "%valueTop",
- borderRightStyle: "%valueRight",
- borderBottomStyle: "%valueBottom",
- borderLeftStyle: "%valueLeft"
- },
- remove_similar: !0
- },
- formatpainter_bordercolor: {
- selector: "td,th",
- styles: {
- borderTopColor: "%valueTop",
- borderRightColor: "%valueRight",
- borderBottomColor: "%valueBottom",
- borderLeftColor: "%valueLeft"
- },
- remove_similar: !0
- },
- formatpainter_backgroundcolor: {
- selector: "td,th",
- styles: {
- backgroundColor: "%value"
- },
- remove_similar: !0
- },
- formatpainter_removeformat: [{
- selector: "b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",
- remove: "all",
- split: !0,
- expand: !1,
- block_expand: !0,
- deep: !0
- }, {
- selector: "span",
- attributes: ["style", "class"],
- remove: "empty",
- split: !0,
- expand: !1,
- deep: !0
- }, {
- selector: "*:not(tr,td,th,table)",
- attributes: ["style", "class"],
- split: !1,
- expand: !1,
- deep: !0
- }],
- formatpainter_legacy_font: {
- inline: "font",
- attributes: {
- size: "%value"
- }
- }
- }
- , tr = function(i, e) {
- return Ae(e, "selector").exists(function(e) {
- var r = i.getBody()
- , n = i.selection.getStart()
- , t = i.dom.getParents(n, w(!0), r)
- , o = i.selection.getSelectedBlocks();
- return i.dom.is(c(t, o), e)
- })
- }
- , or = function(t, e) {
- return ae(t.formatter.get(e), function(e) {
- return r = t,
- De(n = e, "inline") && !tr(r, n);
- var r, n
- })
- }
- , ir = function(t, e, r) {
- return ae(e.get(r), function(e) {
- return r = t,
- De(n = e, "block") || tr(r, n);
- var r, n
- })
- }
- , ar = function(e) {
- return 1 < e.length && "%" === e.charAt(0)
- }
- , ur = function(e, r) {
- return ae(e.formatter.get(r), function(e) {
- return n = Ae(r = e, "styles").exists(function(e) {
- return ae(_e(e), ar)
- }),
- t = Ae(r, "attributes").exists(function(e) {
- return ae(_e(e), ar)
- }),
- n || t;
- var r, n, t
- })
- }
- , cr = function(e) {
- return Qe(e, "OL,UL,DL")
- }
- , sr = function(e) {
- return Qe(e, "LI,DT,DD")
- }
- , fr = function(e, r, n) {
- var t, o = e.formatter, i = or(e, n.formatName), a = ir(e, o, n.formatName), u = (t = n.formatName,
- ie(["formatpainter_borderstyle", "formatpainter_bordercolor", "formatpainter_backgroundcolor"], t));
- (r.table && u || r.inline && i || r.block && a && !u) && o.apply(n.formatName, n.substitutedVariables)
- }
- , mr = function(e, r) {
- var n, t, o, i = function(e) {
- return Je(e, r)
- };
- return (n = rr(Xe.fromDom(e.getStart()), cr, i),
- t = rr(Xe.fromDom(e.getEnd()), cr, i),
- o = function(e, r) {
- return Je(e, r)
- }
- ,
- n.isSome() && t.isSome() ? $.some(o(n.getOrDie(), t.getOrDie())) : $.none()).getOr(!1)
- }
- , lr = function(e) {
- var r = e.selection
- , n = r.getRng()
- , t = Xe.fromDom(e.getBody())
- , o = ce(e.selection.getSelectedBlocks().map(Xe.fromDom), sr)
- , i = n.collapsed && o.length
- , a = o.length && !mr(r, t);
- return 1 < o.length || i || a
- }
- , dr = function(t, e) {
- var r, n;
- r = t,
- n = e.context,
- r.formatter.remove("formatpainter_removeformat"),
- n === S.Table && function(e, r) {
- for (var n = 0, t = e.length; n < t; n++)
- r(e[n], n)
- }(["formatpainter_borderstyle", "formatpainter_bordercolor", "formatpainter_backgroundcolor"], function(e) {
- r.formatter.remove(e)
- }),
- lr(r) && r.execCommand("RemoveList");
- var o, i, a, u, c, s, f = (a = (o = t).selection.getStart(),
- u = o.selection.getRng().collapsed,
- c = 0 < o.dom.select("td[data-mce-selected]").length,
- s = !!o.dom.getParent(a, "TABLE"),
- {
- inline: !0,
- table: u && s || c,
- block: u || (i = o.selection,
- 1 < i.getSelectedBlocks().length) || c
- });
- e.schemas.forEach(function(e) {
- switch (e.kind) {
- case p.ListSchema:
- r = t,
- n = e,
- f.block && r.execCommand(n.command);
- break;
- case p.SubstitutionSchema:
- fr(t, f, e)
- }
- var r, n
- })
- }
- , vr = function(e) {
- return Be(e) ? function(e) {
- for (var r = e.dom().classList, n = new Array(r.length), t = 0; t < r.length; t++)
- n[t] = r.item(t);
- return n
- }(e) : je(e)
- }
- , gr = function(e, r) {
- var n, t, o = e.dom(), i = m.window.getComputedStyle(o).getPropertyValue(r), a = "" !== i || null != (t = Le(n = e) ? n.dom().parentNode : n.dom()) && t.ownerDocument.body.contains(t) ? i : pr(o, r);
- return null === a ? void 0 : a
- }
- , pr = function(e, r) {
- return void 0 !== (n = e).style && ee(n.style.getPropertyValue) ? e.style.getPropertyValue(r) : "";
- var n
- }
- , hr = function(o, e) {
- return xe(e, function(e, r) {
- return {
- k: e.slice(1, e.length),
- v: (n = o,
- t = r,
- "class" === t ? vr(n).filter(function(e) {
- return !/^(mce-.*)/.test(e)
- }).join(" ") : Ie(n, t))
- };
- var n, t
- })
- }
- , br = function(e) {
- return ke(e, function(e) {
- return 1 < (r = e).length && "%" === r.charAt(0);
- var r
- }).t
- }
- , yr = function(e, n) {
- var r = Ae(e, "styles").map(function(e) {
- return t = n,
- r = br(e),
- xe(r, function(e, r) {
- return {
- k: e.slice(1, e.length),
- v: gr(t, (n = r,
- n.replace(/([A-Z])/g, function(e) {
- return "-" + e[0].toLowerCase()
- })))
- };
- var n
- });
- var t, r
- })
- , t = Ae(e, "attributes").map(function(e) {
- return hr(n, br(e))
- })
- , o = a(a({}, r.getOr({})), t.getOr({}));
- return _e(o).every(function(e) {
- return "" !== e
- }) ? $.some(o) : $.none()
- }
- , Sr = function(e, r, n) {
- return (t = e.get(r),
- 0 === t.length ? $.none() : $.some(t[0])).bind(function(e) {
- return yr(e, n)
- }).map(function(e) {
- return {
- kind: p.SubstitutionSchema,
- formatName: r,
- substitutedVariables: e
- }
- });
- var t
- }
- , Or = function(n, t) {
- return (e = n,
- r = e.getParam("formatpainter_blacklisted_formats", "link,address,removeformat,formatpainter_removeformat", "string").split(/[ ,]/),
- Ne(e.formatter.get()).filter(function(e) {
- return !ie(r, e)
- })).filter(function(e) {
- var r = ur(n, e);
- return n.formatter.matchNode(t.dom(), e, {}, r)
- });
- var e, r
- }
- , Nr = function(e) {
- return (r = e,
- se(_e(b), function(e) {
- return r.queryCommandState(e)
- })).map(function(e) {
- return {
- kind: p.ListSchema,
- command: e
- }
- });
- var r
- }
- , wr = function(e) {
- var r, n, t, o, i, a = e.dom, u = e.selection.getStart();
- return {
- schemas: c(Nr(e).toArray(), (t = e,
- o = u,
- i = t.dom.getParents(o, w(!0)),
- fe(ue(i, Xe.fromDom), function(r) {
- return fe(Or(t, r), function(e) {
- return Sr(t.formatter, e, r).toArray()
- })
- }))),
- context: (r = a,
- n = u,
- r.getParent(n, "TABLE") ? S.Table : S.Unspecified)
- }
- }
- , Tr = function(e) {
- if (d(tinymce, "4.9.0"))
- return m.window.console.error("The format painter plugin requires at least version 4.9.0 of TinyMCE."),
- {};
- var n, r, t, o, i, a, u, c, s = l(v.Retrival), f = l({
- schemas: [],
- context: S.Unspecified
- });
- return (n = e).on("PreInit", function() {
- Te(nr, function(e, r) {
- n.formatter.get(r) || n.formatter.register(r, e)
- })
- }),
- t = s,
- o = f,
- (r = e).addCommand("mceToggleFormatPainter", function() {
- Ge(r, t)
- }),
- r.addCommand("mcePaintFormats", function() {
- r.undoManager.transact(function() {
- dr(r, o.get())
- })
- }),
- r.addCommand("mceRetrieveFormats", function() {
- o.set(wr(r))
- }),
- (i = e).ui ? (u = i).ui.registry.addToggleButton("formatpainter", {
- active: !1,
- icon: "format-painter",
- tooltip: "Format Painter",
- onAction: function() {
- return u.execCommand("mceToggleFormatPainter")
- },
- onSetup: function(r) {
- var e = function(e) {
- r.setActive(e.state)
- };
- return u.on("FormatPainterToggle", e),
- function() {
- return u.off("FormatPainterToggle", e)
- }
- }
- }) : (a = i).addButton("formatpainter", {
- active: !1,
- icon: "format-painter",
- tooltip: "Format Painter",
- cmd: "mceToggleFormatPainter",
- onPostRender: function(r) {
- a.on("FormatPainterToggle", function(e) {
- r.control.active(e.state)
- })
- }
- }),
- (c = e).addShortcut("Meta+alt+C", "", function() {
- c.execCommand("mceRetrieveFormats")
- }),
- c.addShortcut("Meta+alt+V", "", function() {
- c.execCommand("mcePaintFormats")
- }),
- {}
- };
- tinymce.PluginManager.add("formatpainter", Tr)
- }(window);
|