/** * 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.6.2 (2020-12-08) */ !function () { "use strict"; var $ = function () { }, i = function (e, o) { return function () { for (var t = [], n = 0; n < arguments.length; n++)t[n] = arguments[n]; return e(o.apply(null, t)) } }, at = function (t) { return function () { return t } }, ct = function (t) { return t }; function y(o) { for (var r = [], t = 1; t < arguments.length; t++)r[t - 1] = arguments[t]; return function () { for (var t = [], n = 0; n < arguments.length; n++)t[n] = arguments[n]; var e = r.concat(t); return o.apply(null, e) } } var x = function (n) { return function (t) { return !n(t) } }, u = function (t) { return function () { throw new Error(t) } }, c = at(!1), b = at(!0), t = tinymce.util.Tools.resolve("tinymce.ThemeManager"), ut = function () { return (ut = Object.assign || function (t) { for (var n, e = 1, o = arguments.length; e < o; e++)for (var r in n = arguments[e]) Object.prototype.hasOwnProperty.call(n, r) && (t[r] = n[r]); return t }).apply(this, arguments) }; function w(t, n) { var e = {}; for (var o in t) Object.prototype.hasOwnProperty.call(t, o) && n.indexOf(o) < 0 && (e[o] = t[o]); if (null != t && "function" == typeof Object.getOwnPropertySymbols) for (var r = 0, o = Object.getOwnPropertySymbols(t); r < o.length; r++)n.indexOf(o[r]) < 0 && Object.prototype.propertyIsEnumerable.call(t, o[r]) && (e[o[r]] = t[o[r]]); return e } function S() { for (var t = 0, n = 0, e = arguments.length; n < e; n++)t += arguments[n].length; for (var o = Array(t), r = 0, n = 0; n < e; n++)for (var i = arguments[n], u = 0, a = i.length; u < a; u++, r++)o[r] = i[u]; return o } var n, e, o, r, s, a, l = function () { return f }, f = (n = function (t) { return t.isNone() }, { fold: function (t, n) { return t() }, is: c, isSome: c, isNone: b, getOr: o = function (t) { return t }, getOrThunk: e = function (t) { return t() }, getOrDie: function (t) { throw new Error(t || "error: getOrDie called on none.") }, getOrNull: at(null), getOrUndefined: at(undefined), or: o, orThunk: e, map: l, each: $, bind: l, exists: c, forall: b, filter: l, equals: n, equals_: n, toArray: function () { return [] }, toString: at("none()") }), d = function (e) { var t = at(e), n = function () { return r }, o = function (t) { return t(e) }, r = { fold: function (t, n) { return n(e) }, is: function (t) { return e === t }, isSome: b, isNone: c, getOr: t, getOrThunk: t, getOrDie: t, getOrNull: t, getOrUndefined: t, or: n, orThunk: n, map: function (t) { return d(t(e)) }, each: function (t) { t(e) }, bind: o, exists: o, forall: o, filter: function (t) { return t(e) ? r : f }, toArray: function () { return [e] }, toString: function () { return "some(" + e + ")" }, equals: function (t) { return t.is(e) }, equals_: function (t, n) { return t.fold(c, function (t) { return n(e, t) }) } }; return r }, st = { some: d, none: l, from: function (t) { return null === t || t === undefined ? f : d(t) } }, m = function (o) { return function (t) { return e = typeof (n = t), (null === n ? "null" : "object" == e && (Array.prototype.isPrototypeOf(n) || n.constructor && "Array" === n.constructor.name) ? "array" : "object" == e && (String.prototype.isPrototypeOf(n) || n.constructor && "String" === n.constructor.name) ? "string" : e) === o; var n, e } }, g = function (n) { return function (t) { return typeof t === n } }, k = m("string"), C = m("object"), p = m("array"), O = g("boolean"), h = (r = undefined, function (t) { return r === t }), v = function (t) { return !(null === (n = t) || n === undefined); var n }, _ = g("function"), lt = g("number"), T = function (t, n) { if (p(t)) { for (var e = 0, o = t.length; e < o; ++e)if (!n(t[e])) return !1; return !0 } return !1 }, E = Array.prototype.slice, D = Array.prototype.indexOf, B = Array.prototype.push, A = function (t, n) { return D.call(t, n) }, M = function (t, n) { return -1 < A(t, n) }, F = function (t, n) { for (var e = 0, o = t.length; e < o; e++) { if (n(t[e], e)) return !0 } return !1 }, I = function (t, n) { for (var e = [], o = 0; o < t; o++)e.push(n(o)); return e }, R = function (t, n) { for (var e = [], o = 0; o < t.length; o += n) { var r = E.call(t, o, o + n); e.push(r) } return e }, V = function (t, n) { for (var e = t.length, o = new Array(e), r = 0; r < e; r++) { var i = t[r]; o[r] = n(i, r) } return o }, ft = function (t, n) { for (var e = 0, o = t.length; e < o; e++) { n(t[e], e) } }, P = function (t, n) { for (var e = [], o = [], r = 0, i = t.length; r < i; r++) { var u = t[r]; (n(u, r) ? e : o).push(u) } return { pass: e, fail: o } }, H = function (t, n) { for (var e = [], o = 0, r = t.length; o < r; o++) { var i = t[o]; n(i, o) && e.push(i) } return e }, z = function (t, n, e) { return function (t, n) { for (var e = t.length - 1; 0 <= e; e--) { n(t[e], e) } }(t, function (t) { e = n(e, t) }), e }, N = function (t, n, e) { return ft(t, function (t) { e = n(e, t) }), e }, L = function (t, n) { return function (t, n, e) { for (var o = 0, r = t.length; o < r; o++) { var i = t[o]; if (n(i, o)) return st.some(i); if (e(i, o)) break } return st.none() }(t, n, c) }, j = function (t, n) { for (var e = 0, o = t.length; e < o; e++) { if (n(t[e], e)) return st.some(e) } return st.none() }, dt = function (t) { for (var n = [], e = 0, o = t.length; e < o; ++e) { if (!p(t[e])) throw new Error("Arr.flatten item " + e + " was not an array, input: " + t); B.apply(n, t[e]) } return n }, U = function (t, n) { return dt(V(t, n)) }, W = function (t, n) { for (var e = 0, o = t.length; e < o; ++e) { if (!0 !== n(t[e], e)) return !1 } return !0 }, G = function (t) { var n = E.call(t, 0); return n.reverse(), n }, X = function (t, n) { return H(t, function (t) { return !M(n, t) }) }, Y = function (t, n) { var e = E.call(t, 0); return e.sort(n), e }, q = function (t, n) { return 0 <= n && n < t.length ? st.some(t[n]) : st.none() }, K = function (t) { return q(t, 0) }, J = function (t) { return q(t, t.length - 1) }, Q = _(Array.from) ? Array.from : function (t) { return E.call(t) }, Z = function (t, n) { for (var e = 0; e < t.length; e++) { var o = n(t[e], e); if (o.isSome()) return o } return st.none() }, tt = function (e) { return { is: function (t) { return e === t }, isValue: b, isError: c, getOr: at(e), getOrThunk: at(e), getOrDie: at(e), or: function (t) { return tt(e) }, orThunk: function (t) { return tt(e) }, fold: function (t, n) { return n(e) }, map: function (t) { return tt(t(e)) }, mapError: function (t) { return tt(e) }, each: function (t) { t(e) }, bind: function (t) { return t(e) }, exists: function (t) { return t(e) }, forall: function (t) { return t(e) }, toOptional: function () { return st.some(e) } } }, nt = function (e) { return { is: c, isValue: c, isError: b, getOr: ct, getOrThunk: function (t) { return t() }, getOrDie: function () { return u(String(e))() }, or: function (t) { return t }, orThunk: function (t) { return t() }, fold: function (t, n) { return t(e) }, map: function (t) { return nt(e) }, mapError: function (t) { return nt(t(e)) }, each: $, bind: function (t) { return nt(e) }, exists: c, forall: b, toOptional: st.none } }, mt = { value: tt, error: nt, fromOption: function (t, n) { return t.fold(function () { return nt(n) }, tt) } }; (a = s = s || {})[a.Error = 0] = "Error", a[a.Value = 1] = "Value"; var et, ot, rt = function (t, n, e) { return t.stype === s.Error ? n(t.serror) : e(t.svalue) }, it = function (t) { return { stype: s.Value, svalue: t } }, gt = function (t) { return { stype: s.Error, serror: t } }, pt = function (t) { return t.fold(gt, it) }, ht = function (t) { return rt(t, mt.error, mt.value) }, vt = it, bt = function (t) { var n = [], e = []; return ft(t, function (t) { rt(t, function (t) { return e.push(t) }, function (t) { return n.push(t) }) }), { values: n, errors: e } }, yt = gt, xt = function (t, n) { return t.stype === s.Value ? n(t.svalue) : t }, wt = function (t, n) { return t.stype === s.Error ? n(t.serror) : t }, St = function (t, n) { return t.stype === s.Value ? { stype: s.Value, svalue: n(t.svalue) } : t }, kt = function (t, n) { return t.stype === s.Error ? { stype: s.Error, serror: n(t.serror) } : t }, Ct = Object.keys, Ot = Object.hasOwnProperty, _t = function (t, n) { for (var e = Ct(t), o = 0, r = e.length; o < r; o++) { var i = e[o]; n(t[i], i) } }, Tt = function (t, e) { return Et(t, function (t, n) { return { k: n, v: e(t, n) } }) }, Et = function (t, o) { var r = {}; return _t(t, function (t, n) { var e = o(t, n); r[e.k] = e.v }), r }, Dt = function (t, n) { var e, o, r, i, u = {}; return e = n, i = u, o = function (t, n) { i[n] = t }, r = $, _t(t, function (t, n) { (e(t, n) ? o : r)(t, n) }), u }, Bt = function (t, e) { var o = []; return _t(t, function (t, n) { o.push(e(t, n)) }), o }, At = function (t, n) { for (var e = Ct(t), o = 0, r = e.length; o < r; o++) { var i = e[o], u = t[i]; if (n(u, i, t)) return st.some(u) } return st.none() }, Mt = function (t) { return Bt(t, function (t) { return t }) }, Ft = function (t, n) { return It(t, n) ? st.from(t[n]) : st.none() }, It = function (t, n) { return Ot.call(t, n) }, Rt = function (t, n) { return It(t, n) && t[n] !== undefined && null !== t[n] }, Vt = function (u) { if (!p(u)) throw new Error("cases must be an array"); if (0 === u.length) throw new Error("there must be at least one case"); var a = [], e = {}; return ft(u, function (t, o) { var n = Ct(t); if (1 !== n.length) throw new Error("one and only one name per case"); var r = n[0], i = t[r]; if (e[r] !== undefined) throw new Error("duplicate key detected:" + r); if ("cata" === r) throw new Error("cannot have a case named cata (sorry)"); if (!p(i)) throw new Error("case arguments must be an array"); a.push(r), e[r] = function () { var t = arguments.length; if (t !== i.length) throw new Error("Wrong number of arguments to case " + r + ". Expected " + i.length + " (" + i + "), got " + t); for (var e = new Array(t), n = 0; n < e.length; n++)e[n] = arguments[n]; return { fold: function () { if (arguments.length !== u.length) throw new Error("Wrong number of arguments to fold. Expected " + u.length + ", got " + arguments.length); return arguments[o].apply(null, e) }, match: function (t) { var n = Ct(t); if (a.length !== n.length) throw new Error("Wrong number of arguments to match. Expected: " + a.join(",") + "\nActual: " + n.join(",")); if (!W(a, function (t) { return M(n, t) })) throw new Error("Not all branches were specified when using match. Specified: " + n.join(", ") + "\nRequired: " + a.join(", ")); return t[r].apply(null, e) }, log: function (t) { console.log(t, { constructors: a, constructor: r, params: e }) } } } }), e }, Pt = Object.prototype.hasOwnProperty, Ht = function (u) { return function () { for (var t = new Array(arguments.length), n = 0; n < t.length; n++)t[n] = arguments[n]; if (0 === t.length) throw new Error("Can't merge zero objects"); for (var e = {}, o = 0; o < t.length; o++) { var r = t[o]; for (var i in r) Pt.call(r, i) && (e[i] = u(e[i], r[i])) } return e } }, zt = Ht(function (t, n) { return C(t) && C(n) ? zt(t, n) : n }), Nt = Ht(function (t, n) { return n }), Lt = function (e) { var o, r = !1; return function () { for (var t = [], n = 0; n < arguments.length; n++)t[n] = arguments[n]; return r || (r = !0, o = e.apply(null, t)), o } }, jt = Vt([{ strict: [] }, { defaultedThunk: ["fallbackThunk"] }, { asOption: [] }, { asDefaultedOptionThunk: ["fallbackThunk"] }, { mergeWithThunk: ["baseThunk"] }]), Ut = function (t) { return jt.defaultedThunk(at(t)) }, Wt = jt.strict, Gt = jt.asOption, Xt = jt.defaultedThunk, Yt = (jt.asDefaultedOptionThunk, jt.mergeWithThunk), qt = (Vt([{ bothErrors: ["error1", "error2"] }, { firstError: ["error1", "value2"] }, { secondError: ["value1", "error2"] }, { bothValues: ["value1", "value2"] }]), function (t, n) { var e = {}; return e[t] = n, e }), Kt = function (t, n) { return e = n, o = {}, _t(t, function (t, n) { M(e, n) || (o[n] = t) }), o; var e, o }, Jt = qt, $t = function (t) { return n = {}, ft(t, function (t) { n[t.key] = t.value }), n; var n }, Qt = function (t, n) { var e, o, r, i, u, a = (e = [], o = [], ft(t, function (t) { t.fold(function (t) { e.push(t) }, function (t) { o.push(t) }) }), { errors: e, values: o }); return 0 < a.errors.length ? (u = a.errors, mt.error(dt(u))) : (i = n, 0 === (r = a.values).length ? mt.value(i) : mt.value(zt(i, Nt.apply(undefined, r)))) }, Zt = function (t) { return i(yt, dt)(t) }, tn = function (t, n) { var e, o, r = bt(t); return 0 < r.errors.length ? Zt(r.errors) : (e = r.values, o = n, 0 < e.length ? vt(zt(o, Nt.apply(undefined, e))) : vt(o)) }, nn = function (t) { var n = bt(t); return 0 < n.errors.length ? Zt(n.errors) : vt(n.values) }, en = function (t) { return C(t) && 100 < Ct(t).length ? " removed due to size" : JSON.stringify(t, null, 2) }, on = function (t, n) { return yt([{ path: t, getErrorInfo: n }]) }, rn = Vt([{ field: ["key", "okey", "presence", "prop"] }, { state: ["okey", "instantiator"] }]), un = function (e, o, r) { return Ft(o, r).fold(function () { return t = r, n = o, on(e, function () { return 'Could not find valid *strict* value for "' + t + '" in ' + en(n) }); var t, n }, vt) }, an = function (t, n, e) { var o = Ft(t, n).fold(function () { return e(t) }, ct); return vt(o) }, cn = function (a, c, t, s) { return t.fold(function (r, e, t, o) { var i = function (t) { var n = o.extract(a.concat([r]), s, t); return St(n, function (t) { return qt(e, s(t)) }) }, u = function (t) { return t.fold(function () { var t = qt(e, s(st.none())); return vt(t) }, function (t) { var n = o.extract(a.concat([r]), s, t); return St(n, function (t) { return qt(e, s(st.some(t))) }) }) }; return t.fold(function () { return xt(un(a, c, r), i) }, function (t) { return xt(an(c, r, t), i) }, function () { return xt(vt(Ft(c, r)), u) }, function (t) { return xt((e = t, o = Ft(n = c, r).map(function (t) { return !0 === t ? e(n) : t }), vt(o)), u); var n, e, o }, function (t) { var n = t(c), e = St(an(c, r, at({})), function (t) { return zt(n, t) }); return xt(e, i) }) }, function (t, n) { var e = n(c); return vt(qt(t, s(e))) }) }, sn = function (o) { return { extract: function (e, t, n) { return wt(o(n, t), function (t) { return n = t, on(e, function () { return n }); var n }) }, toString: function () { return "val" } } }, ln = function (t) { var u = fn(t), a = z(t, function (n, t) { return t.fold(function (t) { return zt(n, Jt(t, !0)) }, at(n)) }, {}); return { extract: function (t, n, e) { var o, r = O(e) ? [] : Ct(Dt(e, function (t) { return t !== undefined && null !== t })), i = H(r, function (t) { return !Rt(a, t) }); return 0 === i.length ? u.extract(t, n, e) : (o = i, on(t, function () { return "There are unsupported fields: [" + o.join(", ") + "] specified" })) }, toString: u.toString } }, fn = function (a) { return { extract: function (t, n, e) { return o = t, r = e, i = n, u = V(a, function (t) { return cn(o, r, t, i) }), tn(u, {}); var o, r, i, u }, toString: function () { return "obj{\n" + V(a, function (t) { return t.fold(function (t, n, e, o) { return t + " -> " + o.toString() }, function (t, n) { return "state(" + t + ")" }) }).join("\n") + "}" } } }, dn = function (r) { return { extract: function (e, o, t) { var n = V(t, function (t, n) { return r.extract(e.concat(["[" + n + "]"]), o, t) }); return nn(n) }, toString: function () { return "array(" + r.toString() + ")" } } }, mn = function (a) { return { extract: function (t, n, e) { for (var o = [], r = 0, i = a; r < i.length; r++) { var u = i[r].extract(t, n, e); if (u.stype === s.Value) return u; o.push(u) } return nn(o) }, toString: function () { return "oneOf(" + V(a, function (t) { return t.toString() }).join(", ") + ")" } } }, gn = function (a, c) { return { extract: function (e, o, r) { var t, n, i = Ct(r), u = (t = e, n = i, dn(sn(a)).extract(t, ct, n)); return xt(u, function (t) { var n = V(t, function (t) { return rn.field(t, t, Wt(), c) }); return fn(n).extract(e, o, r) }) }, toString: function () { return "setOf(" + c.toString() + ")" } } }, pn = at(sn(vt)), hn = i(dn, fn), vn = rn.state, bn = rn.field, yn = function (e, n, o, r, i) { return Ft(r, i).fold(function () { return t = r, n = i, on(e, function () { return 'The chosen schema: "' + n + '" did not exist in branches: ' + en(t) }); var t, n }, function (t) { return t.extract(e.concat(["branch: " + i]), n, o) }) }, xn = function (r, i) { return { extract: function (n, e, o) { return Ft(o, r).fold(function () { return t = r, on(n, function () { return 'Choice schema did not contain choice key: "' + t + '"' }); var t }, function (t) { return yn(n, e, o, i, t) }) }, toString: function () { return "chooseOn(" + r + "). Possible values: " + Ct(i) } } }, wn = sn(vt), Sn = function (t) { return hn(t) }, kn = function (o) { return { extract: function (t, n, e) { return o().extract(t, n, e) }, toString: function () { return o().toString() } } }, Cn = function (n) { return sn(function (t) { return n(t).fold(yt, vt) }) }, On = function (n, t) { return gn(function (t) { return pt(n(t)) }, t) }, _n = function (t, n, e) { return ht((o = t, r = ct, i = e, u = n.extract([o], r, i), kt(u, function (t) { return { input: i, errors: t } }))); var o, r, i, u }, Tn = function (t) { return t.fold(function (t) { throw new Error(Dn(t)) }, ct) }, En = function (t, n, e) { return Tn(_n(t, n, e)) }, Dn = function (t) { return "Errors: \n" + (n = t.errors, e = 10 < n.length ? n.slice(0, 10).concat([{ path: [], getErrorInfo: function () { return "... (only showing first ten failures)" } }]) : n, V(e, function (t) { return "Failed path: (" + t.path.join(" > ") + ")\n" + t.getErrorInfo() }).join("\n")) + "\n\nInput object: " + en(t.input); var n, e }, Bn = xn, An = function (t, n) { return xn(t, Tt(n, fn)) }, Mn = at(wn), Fn = function (e, o) { return sn(function (t) { var n = typeof t; return e(t) ? vt(t) : yt("Expected type: " + o + " but got: " + n) }) }, In = Fn(lt, "number"), Rn = Fn(k, "string"), Vn = Fn(O, "boolean"), Pn = Fn(_, "function"), Hn = function (n) { var t = function (t, n) { for (var e = t.next(); !e.done;) { if (!n(e.value)) return !1; e = t.next() } return !0 }; if (Object(n) !== n) return !0; switch ({}.toString.call(n).slice(8, -1)) { case "Boolean": case "Number": case "String": case "Date": case "RegExp": case "Blob": case "FileList": case "ImageData": case "ImageBitmap": case "ArrayBuffer": return !0; case "Array": case "Object": return Object.keys(n).every(function (t) { return Hn(n[t]) }); case "Map": return t(n.keys(), Hn) && t(n.values(), Hn); case "Set": return t(n.keys(), Hn); default: return !1 } }, zn = sn(function (t) { return Hn(t) ? vt(t) : yt("Expected value to be acceptable for sending via postMessage") }), Nn = function (n) { return Cn(function (t) { return M(n, t) ? mt.value(t) : mt.error('Unsupported value: "' + t + '", choose one of "' + n.join(", ") + '".') }) }, Ln = function (t) { return bn(t, t, Wt(), pn()) }, jn = function (t, n) { return bn(t, t, Wt(), n) }, Un = function (t) { return jn(t, Rn) }, Wn = function (t, n) { return bn(t, t, Wt(), Nn(n)) }, Gn = function (t) { return jn(t, Pn) }, Xn = function (t, n) { return bn(t, t, Wt(), fn(n)) }, Yn = function (t, n) { return bn(t, t, Wt(), hn(n)) }, qn = function (t, n) { return bn(t, t, Wt(), dn(n)) }, Kn = function (t) { return bn(t, t, Gt(), pn()) }, Jn = function (t, n) { return bn(t, t, Gt(), n) }, $n = function (t) { return Jn(t, In) }, Qn = function (t) { return Jn(t, Rn) }, Zn = function (t) { return Jn(t, Pn) }, te = function (t, n) { return Jn(t, fn(n)) }, ne = function (t, n) { return bn(t, t, Ut(n), pn()) }, ee = function (t, n, e) { return bn(t, t, Ut(n), e) }, oe = function (t, n) { return ee(t, n, In) }, re = function (t, n) { return ee(t, n, Rn) }, ie = function (t, n, e) { return ee(t, n, Nn(e)) }, ue = function (t, n) { return ee(t, n, Vn) }, ae = function (t, n) { return ee(t, n, Pn) }, ce = function (t, n, e) { return ee(t, n, dn(e)) }, se = function (t, n, e) { return ee(t, n, fn(e)) }, le = function (t, n) { return vn(t, n) }, fe = function (t) { var n = t; return { get: function () { return n }, set: function (t) { n = t } } }, de = function (t) { if (null === t || t === undefined) throw new Error("Node cannot be null or undefined"); return { dom: t } }, me = { fromHtml: function (t, n) { var e = (n || document).createElement("div"); if (e.innerHTML = t, !e.hasChildNodes() || 1 < e.childNodes.length) throw console.error("HTML does not have a single root node", t), new Error("HTML must have a single root node"); return de(e.childNodes[0]) }, fromTag: function (t, n) { var e = (n || document).createElement(t); return de(e) }, fromText: function (t, n) { var e = (n || document).createTextNode(t); return de(e) }, fromDom: de, fromPoint: function (t, n, e) { return st.from(t.dom.elementFromPoint(n, e)).map(de) } }, ge = function (t, n) { var e = function (t, n) { for (var e = 0; e < t.length; e++) { var o = t[e]; if (o.test(n)) return o } return undefined }(t, n); if (!e) return { major: 0, minor: 0 }; var o = function (t) { return Number(n.replace(e, "$" + t)) }; return he(o(1), o(2)) }, pe = function () { return he(0, 0) }, he = function (t, n) { return { major: t, minor: n } }, ve = { nu: he, detect: function (t, n) { var e = String(n).toLowerCase(); return 0 === t.length ? pe() : ge(t, e) }, unknown: pe }, be = function (t, n) { var e = String(n).toLowerCase(); return L(t, function (t) { return t.search(e) }) }, ye = function (t, e) { return be(t, e).map(function (t) { var n = ve.detect(t.versionRegexes, e); return { current: t.name, version: n } }) }, xe = function (t, e) { return be(t, e).map(function (t) { var n = ve.detect(t.versionRegexes, e); return { current: t.name, version: n } }) }, we = function (t, n) { return -1 !== t.indexOf(n) }, Se = function (t, n) { return o = n, r = (e = t).length - n.length, "" === o || e.length >= o.length && e.substr(r, r + o.length) === o; var e, o, r }, ke = (et = /^\s+|\s+$/g, function (t) { return t.replace(et, "") }), Ce = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, Oe = function (n) { return function (t) { return we(t, n) } }, _e = [{ name: "Edge", versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], search: function (t) { return we(t, "edge/") && we(t, "chrome") && we(t, "safari") && we(t, "applewebkit") } }, { name: "Chrome", versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/, Ce], search: function (t) { return we(t, "chrome") && !we(t, "chromeframe") } }, { name: "IE", versionRegexes: [/.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/], search: function (t) { return we(t, "msie") || we(t, "trident") } }, { name: "Opera", versionRegexes: [Ce, /.*?opera\/([0-9]+)\.([0-9]+).*/], search: Oe("opera") }, { name: "Firefox", versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], search: Oe("firefox") }, { name: "Safari", versionRegexes: [Ce, /.*?cpu os ([0-9]+)_([0-9]+).*/], search: function (t) { return (we(t, "safari") || we(t, "mobile/")) && we(t, "applewebkit") } }], Te = [{ name: "Windows", search: Oe("win"), versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] }, { name: "iOS", search: function (t) { return we(t, "iphone") || we(t, "ipad") }, versionRegexes: [/.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/] }, { name: "Android", search: Oe("android"), versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] }, { name: "OSX", search: Oe("mac os x"), versionRegexes: [/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/] }, { name: "Linux", search: Oe("linux"), versionRegexes: [] }, { name: "Solaris", search: Oe("sunos"), versionRegexes: [] }, { name: "FreeBSD", search: Oe("freebsd"), versionRegexes: [] }, { name: "ChromeOS", search: Oe("cros"), versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/] }], Ee = { browsers: at(_e), oses: at(Te) }, De = "Firefox", Be = function (t) { var n = t.current, e = t.version, o = function (t) { return function () { return n === t } }; return { current: n, version: e, isEdge: o("Edge"), isChrome: o("Chrome"), isIE: o("IE"), isOpera: o("Opera"), isFirefox: o(De), isSafari: o("Safari") } }, Ae = { unknown: function () { return Be({ current: undefined, version: ve.unknown() }) }, nu: Be, edge: at("Edge"), chrome: at("Chrome"), ie: at("IE"), opera: at("Opera"), firefox: at(De), safari: at("Safari") }, Me = "Windows", Fe = "Android", Ie = "Solaris", Re = "FreeBSD", Ve = "ChromeOS", Pe = function (t) { var n = t.current, e = t.version, o = function (t) { return function () { return n === t } }; return { current: n, version: e, isWindows: o(Me), isiOS: o("iOS"), isAndroid: o(Fe), isOSX: o("OSX"), isLinux: o("Linux"), isSolaris: o(Ie), isFreeBSD: o(Re), isChromeOS: o(Ve) } }, He = { unknown: function () { return Pe({ current: undefined, version: ve.unknown() }) }, nu: Pe, windows: at(Me), ios: at("iOS"), android: at(Fe), linux: at("Linux"), osx: at("OSX"), solaris: at(Ie), freebsd: at(Re), chromeos: at(Ve) }, ze = function (t, n) { var e, o, r, i, u, a, c, s, l, f, d, m, g = Ee.browsers(), p = Ee.oses(), h = ye(g, t).fold(Ae.unknown, Ae.nu), v = xe(p, t).fold(He.unknown, He.nu); return { browser: h, os: v, deviceType: (o = h, r = t, i = n, u = (e = v).isiOS() && !0 === /ipad/i.test(r), a = e.isiOS() && !u, c = e.isiOS() || e.isAndroid(), s = c || i("(pointer:coarse)"), l = u || !a && c && i("(min-device-width:768px)"), f = a || c && !l, d = o.isSafari() && e.isiOS() && !1 === /safari/i.test(r), m = !f && !l && !d, { isiPad: at(u), isiPhone: at(a), isTablet: at(l), isPhone: at(f), isTouch: at(s), isAndroid: e.isAndroid, isiOS: e.isiOS, isWebView: at(d), isDesktop: at(m) }) } }, Ne = function (t) { return window.matchMedia(t).matches }, Le = Lt(function () { return ze(navigator.userAgent, Ne) }), je = function () { return Le() }, Ue = function (t, n) { var e = t.dom; if (1 !== e.nodeType) return !1; var o = e; if (o.matches !== undefined) return o.matches(n); if (o.msMatchesSelector !== undefined) return o.msMatchesSelector(n); if (o.webkitMatchesSelector !== undefined) return o.webkitMatchesSelector(n); if (o.mozMatchesSelector !== undefined) return o.mozMatchesSelector(n); throw new Error("Browser lacks native selectors") }, We = function (t) { return 1 !== t.nodeType && 9 !== t.nodeType && 11 !== t.nodeType || 0 === t.childElementCount }, Ge = function (t, n) { return t.dom === n.dom }, Xe = function (t, n) { return e = t.dom, o = n.dom, r = e, i = o, u = Node.DOCUMENT_POSITION_CONTAINED_BY, 0 != (r.compareDocumentPosition(i) & u); var e, o, r, i, u }, Ye = function (t, n) { return je().browser.isIE() ? Xe(t, n) : (e = n, o = t.dom, r = e.dom, o !== r && o.contains(r)); var e, o, r }, qe = function (t) { return _(t) ? t : c }, Ke = function (t, n, e) { for (var o = t.dom, r = qe(e); o.parentNode;) { o = o.parentNode; var i = me.fromDom(o), u = n(i); if (u.isSome()) return u; if (r(i)) break } return st.none() }, Je = function (t, n, e) { var o = n(t), r = qe(e); return o.orThunk(function () { return r(t) ? st.none() : Ke(t, n, r) }) }, $e = function (t, n) { return Ge(t.element, n.event.target) }, Qe = function (t) { if (!Rt(t, "can") && !Rt(t, "abort") && !Rt(t, "run")) throw new Error("EventHandler defined by: " + JSON.stringify(t, null, 2) + " does not have can, abort, or run!"); return En("Extracting event.handler", ln([ne("can", b), ne("abort", c), ne("run", $)]), t) }, Ze = function (e) { var n, o, r, i, t = (o = function (t) { return t.can }, function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]; return N(n, function (t, n) { return t && o(n).apply(undefined, e) }, !0) }), u = (r = n = e, i = function (t) { return t.abort }, function () { for (var e = [], t = 0; t < arguments.length; t++)e[t] = arguments[t]; return N(r, function (t, n) { return t || i(n).apply(undefined, e) }, !1) }); return Qe({ can: t, abort: u, run: function () { for (var n = [], t = 0; t < arguments.length; t++)n[t] = arguments[t]; ft(e, function (t) { t.run.apply(undefined, n) }) } }) }, to = at, no = to("touchstart"), eo = to("touchmove"), oo = to("touchend"), ro = to("touchcancel"), io = to("mousedown"), uo = to("mousemove"), ao = to("mouseout"), co = to("mouseup"), so = to("mouseover"), lo = to("focusin"), fo = to("focusout"), mo = to("keydown"), go = to("keyup"), po = to("input"), ho = to("change"), vo = to("click"), bo = to("transitionend"), yo = to("selectstart"), xo = function (t) { return at("alloy." + t) }, wo = { tap: xo("tap") }, So = xo("focus"), ko = xo("blur.post"), Co = xo("paste.post"), Oo = xo("receive"), _o = xo("execute"), To = xo("focus.item"), Eo = wo.tap, Do = xo("longpress"), Bo = xo("sandbox.close"), Ao = xo("typeahead.cancel"), Mo = xo("system.init"), Fo = xo("system.touchmove"), Io = xo("system.touchend"), Ro = xo("system.scroll"), Vo = xo("system.resize"), Po = xo("system.attached"), Ho = xo("system.detached"), zo = xo("system.dismissRequested"), No = xo("system.repositionRequested"), Lo = xo("focusmanager.shifted"), jo = xo("slotcontainer.visibility"), Uo = xo("change.tab"), Wo = xo("dismiss.tab"), Go = xo("highlight"), Xo = xo("dehighlight"), Yo = function (t, n) { $o(t, t.element, n, {}) }, qo = function (t, n, e) { $o(t, t.element, n, e) }, Ko = function (t) { Yo(t, _o()) }, Jo = function (t, n, e) { $o(t, n, e, {}) }, $o = function (t, n, e, o) { var r = ut({ target: n }, o); t.getSystem().triggerEvent(e, n, r) }, Qo = function (t, n, e, o) { t.getSystem().triggerEvent(e, n, o.event) }, Zo = $t, tr = function (t, n) { return { key: t, value: Qe({ abort: n }) } }, nr = function (t) { return { key: t, value: Qe({ run: function (t, n) { n.event.prevent() } }) } }, er = function (t, n) { return { key: t, value: Qe({ run: n }) } }, or = function (t, e, o) { return { key: t, value: Qe({ run: function (t, n) { e.apply(undefined, [t, n].concat(o)) } }) } }, rr = function (t) { return function (e) { return { key: t, value: Qe({ run: function (t, n) { $e(t, n) && e(t, n) } }) } } }, ir = function (t, n, e) { var o, r, i = n.partUids[e]; return r = i, er(o = t, function (t, n) { t.getSystem().getByUid(r).each(function (t) { Qo(t, t.element, o, n) }) }) }, ur = function (t, r) { return er(t, function (n, t) { var e = t.event, o = n.getSystem().getByDom(e.target).fold(function () { return Je(e.target, function (t) { return n.getSystem().getByDom(t).toOptional() }, c).getOr(n) }, function (t) { return t }); r(n, o, t) }) }, ar = function (t) { return er(t, function (t, n) { n.cut() }) }, cr = function (t, n) { return rr(t)(n) }, sr = rr(Po()), lr = rr(Ho()), fr = rr(Mo()), dr = (ot = _o(), function (t) { return er(ot, t) }), mr = ("undefined" != typeof window || Function("return this;")(), function (t) { return t.dom.nodeName.toLowerCase() }), gr = function (n) { return function (t) { return t.dom.nodeType === n } }, pr = gr(1), hr = gr(3), vr = gr(9), br = gr(11), yr = function (t) { return me.fromDom(t.dom.ownerDocument) }, xr = function (t) { return vr(t) ? t : yr(t) }, wr = function (t) { return me.fromDom(xr(t).dom.documentElement) }, Sr = function (t) { return me.fromDom(xr(t).dom.defaultView) }, kr = function (t) { return st.from(t.dom.parentNode).map(me.fromDom) }, Cr = kr, Or = function (t) { return st.from(t.dom.offsetParent).map(me.fromDom) }, _r = function (t) { return V(t.dom.childNodes, me.fromDom) }, Tr = function (t, n) { var e = t.dom.childNodes; return st.from(e[n]).map(me.fromDom) }, Er = function (n, e) { kr(n).each(function (t) { t.dom.insertBefore(e.dom, n.dom) }) }, Dr = function (t, n) { var e; (e = t, st.from(e.dom.nextSibling).map(me.fromDom)).fold(function () { kr(t).each(function (t) { Ar(t, n) }) }, function (t) { Er(t, n) }) }, Br = function (n, e) { Tr(n, 0).fold(function () { Ar(n, e) }, function (t) { n.dom.insertBefore(e.dom, t.dom) }) }, Ar = function (t, n) { t.dom.appendChild(n.dom) }, Mr = function (n, t) { ft(t, function (t) { Ar(n, t) }) }, Fr = function (t) { t.dom.textContent = "", ft(_r(t), function (t) { Ir(t) }) }, Ir = function (t) { var n = t.dom; null !== n.parentNode && n.parentNode.removeChild(n) }, Rr = function (t) { var n, e = _r(t); 0 < e.length && (n = t, ft(e, function (t) { Er(n, t) })), Ir(t) }, Vr = function (t) { return t.dom.innerHTML }, Pr = function (t, n) { var e, o, r = yr(t).dom, i = me.fromDom(r.createDocumentFragment()), u = (e = n, (o = (r || document).createElement("div")).innerHTML = e, _r(me.fromDom(o))); Mr(i, u), Fr(t), Ar(t, i) }, Hr = function (t, n, e) { if (!(k(e) || O(e) || lt(e))) throw console.error("Invalid call to Attribute.set. Key ", n, ":: Value ", e, ":: Element ", t), new Error("Attribute value was not simple"); t.setAttribute(n, e + "") }, zr = function (t, n, e) { Hr(t.dom, n, e) }, Nr = function (t, n) { var e = t.dom.getAttribute(n); return null === e ? undefined : e }, Lr = function (t, n) { return st.from(Nr(t, n)) }, jr = function (t, n) { var e = t.dom; return !(!e || !e.hasAttribute) && e.hasAttribute(n) }, Ur = function (t, n) { t.dom.removeAttribute(n) }, Wr = function (t) { return n = t, e = !1, me.fromDom(n.dom.cloneNode(e)); var n, e }, Gr = function (t) { var n, e, o, r = Wr(t); return n = r, e = me.fromTag("div"), o = me.fromDom(n.dom.cloneNode(!0)), Ar(e, o), Vr(e) }, Xr = Zo([{ key: So(), value: Qe({ can: function (t, n) { var e, o, r = n.event, i = r.originator, u = r.target; return o = u, !(Ge(e = i, t.element) && !Ge(e, o)) || (console.warn(So() + " did not get interpreted by the desired target. \nOriginator: " + Gr(i) + "\nTarget: " + Gr(u) + "\nCheck the " + So() + " event handlers"), !1) } }) }]), Yr =/* */Object.freeze({ __proto__: null, events: Xr }), qr = 0, Kr = function (t) { var n = (new Date).getTime(); return t + "_" + Math.floor(1e9 * Math.random()) + ++qr + String(n) }, Jr = at("alloy-id-"), $r = at("data-alloy-id"), Qr = Jr(), Zr = $r(), ti = function (t, n) { Object.defineProperty(t.dom, Zr, { value: n, writable: !0 }) }, ni = function (t) { var n = pr(t) ? t.dom[Zr] : null; return st.from(n) }, ei = Kr, oi = ct, ri = function (n) { var t = function (t) { return function () { throw new Error("The component must be in a context to send: " + t + (n ? "\n" + Gr(n().element) + " is not in context." : "")) } }; return { debugInfo: at("fake"), triggerEvent: t("triggerEvent"), triggerFocus: t("triggerFocus"), triggerEscape: t("triggerEscape"), build: t("build"), addToWorld: t("addToWorld"), removeFromWorld: t("removeFromWorld"), addToGui: t("addToGui"), removeFromGui: t("removeFromGui"), getByUid: t("getByUid"), getByDom: t("getByDom"), broadcast: t("broadcast"), broadcastOn: t("broadcastOn"), broadcastEvent: t("broadcastEvent"), isConnected: c } }, ii = ri(), ui = function (t) { return V(t, function (t) { return Se(t, "/*") ? t.substring(0, t.length - "/*".length) : t }) }, ai = function (t, n) { var e = t.toString(), o = e.indexOf(")") + 1, r = e.indexOf("("), i = e.substring(r + 1, o - 1).split(/,\s*/); return t.toFunctionAnnotation = function () { return { name: n, parameters: ui(i) } }, t }, ci = Kr("alloy-premade"), si = function (t) { return Jt(ci, t) }, li = function (o) { return t = function (t) { for (var n = [], e = 1; e < arguments.length; e++)n[e - 1] = arguments[e]; return o.apply(void 0, S([t.getApis(), t], n)) }, n = o.toString(), e = n.indexOf(")") + 1, r = n.indexOf("("), i = n.substring(r + 1, e - 1).split(/,\s*/), t.toFunctionAnnotation = function () { return { name: "OVERRIDE", parameters: ui(i.slice(1)) } }, t; var t, n, e, r, i }, fi = { init: function () { return di({ readState: function () { return "No State required" } }) } }, di = function (t) { return t }, mi = function (t, r) { var i = {}; return _t(t, function (t, o) { _t(t, function (t, n) { var e = Ft(i, n).getOr([]); i[n] = e.concat([r(o, t)]) }) }), i }, gi = function (t) { return { classes: t.classes !== undefined ? t.classes : [], attributes: t.attributes !== undefined ? t.attributes : {}, styles: t.styles !== undefined ? t.styles : {} } }, pi = function (t, n) { return { cHandler: y.apply(undefined, [t.handler].concat(n)), purpose: t.purpose } }, hi = function (t) { return t.cHandler }, vi = function (t, n) { return { name: t, handler: n } }, bi = function (t, n, e) { var o, r, i = ut(ut({}, e), (o = t, r = {}, ft(n, function (t) { r[t.name()] = t.handlers(o) }), r)); return mi(i, vi) }, yi = function (t) { var n, i = _(n = t) ? { can: at(!0), abort: at(!1), run: n } : n; return function (t, n) { for (var e = [], o = 2; o < arguments.length; o++)e[o - 2] = arguments[o]; var r = [t, n].concat(e); i.abort.apply(undefined, r) ? n.stop() : i.can.apply(undefined, r) && i.run.apply(undefined, r) } }, xi = function (t, n, e) { var o, r, i = n[e]; return i ? function (u, a, t, c) { try { var n = Y(t, function (t, n) { var e = t[a], o = n[a], r = c.indexOf(e), i = c.indexOf(o); if (-1 === r) throw new Error("The ordering for " + u + " does not have an entry for " + e + ".\nOrder specified: " + JSON.stringify(c, null, 2)); if (-1 === i) throw new Error("The ordering for " + u + " does not have an entry for " + o + ".\nOrder specified: " + JSON.stringify(c, null, 2)); return r < i ? -1 : i < r ? 1 : 0 }); return mt.value(n) } catch (e) { return mt.error([e]) } }("Event: " + e, "name", t, i).map(function (t) { var n = V(t, function (t) { return t.handler }); return Ze(n) }) : (o = e, r = t, mt.error(["The event (" + o + ') has more than one behaviour that listens to it.\nWhen this occurs, you must specify an event ordering for the behaviours in your spec (e.g. [ "listing", "toggling" ]).\nThe behaviours that can trigger it are: ' + JSON.stringify(V(r, function (t) { return t.name }), null, 2)])) }, wi = function (t, i) { var n = Bt(t, function (o, r) { return (1 === o.length ? mt.value(o[0].handler) : xi(o, i, r)).map(function (t) { var n = yi(t), e = 1 < o.length ? H(i[r], function (n) { return F(o, function (t) { return t.name === n }) }).join(" > ") : o[0].name; return Jt(r, { handler: n, purpose: e }) }) }); return Qt(n, {}) }, Si = "alloy.base.behaviour", ki = function (t) { var n, e; return _n("custom.definition", fn([bn("dom", "dom", Wt(), fn([Ln("tag"), ne("styles", {}), ne("classes", []), ne("attributes", {}), Kn("value"), Kn("innerHtml")])), Ln("components"), Ln("uid"), ne("events", {}), ne("apis", {}), bn("eventOrder", "eventOrder", ((n = {})[_o()] = ["disabling", Si, "toggling", "typeaheadevents"], n[So()] = [Si, "focusing", "keying"], n[Mo()] = [Si, "disabling", "toggling", "representing"], n[po()] = [Si, "representing", "streaming", "invalidating"], n[Ho()] = [Si, "representing", "item-events", "tooltipping"], n[io()] = ["focusing", Si, "item-type-events"], n[no()] = ["focusing", Si, "item-type-events"], n[so()] = ["item-type-events", "tooltipping"], n[Oo()] = ["receiving", "reflecting", "tooltipping"], e = n, jt.mergeWithThunk(at(e))), Mn()), Kn("domModification")]), t) }, Ci = function (t, n) { var e = Nr(t, n); return e === undefined || "" === e ? [] : e.split(" ") }, Oi = function (t) { return t.dom.classList !== undefined }, _i = function (t, n) { return r = n, i = Ci(e = t, o = "class").concat([r]), zr(e, o, i.join(" ")), !0; var e, o, r, i }, Ti = function (t, n) { return r = n, 0 < (i = H(Ci(e = t, o = "class"), function (t) { return t !== r })).length ? zr(e, o, i.join(" ")) : Ur(e, o), !1; var e, o, r, i }, Ei = function (t, n) { Oi(t) ? t.dom.classList.add(n) : _i(t, n) }, Di = function (t) { 0 === (Oi(t) ? t.dom.classList : Ci(t, "class")).length && Ur(t, "class") }, Bi = function (t, n) { Oi(t) ? t.dom.classList.remove(n) : Ti(t, n), Di(t) }, Ai = function (t, n) { return Oi(t) && t.dom.classList.contains(n) }, Mi = function (n, t) { ft(t, function (t) { Ei(n, t) }) }, Fi = function (n, t) { ft(t, function (t) { Bi(n, t) }) }, Ii = function (t) { return t.style !== undefined && _(t.style.getPropertyValue) }, Ri = function (t) { return br(t) }, Vi = _(Element.prototype.attachShadow) && _(Node.prototype.getRootNode), Pi = at(Vi), Hi = Vi ? function (t) { return me.fromDom(t.dom.getRootNode()) } : xr, zi = function (t) { return Ri(t) ? t : me.fromDom(xr(t).dom.body) }, Ni = function (t) { var n = Hi(t); return Ri(n) ? st.some(n) : st.none() }, Li = function (t) { return me.fromDom(t.dom.host) }, ji = function (t) { return v(t.dom.shadowRoot) }, Ui = function (t) { var n = hr(t) ? t.dom.parentNode : t.dom; if (n === undefined || null === n || null === n.ownerDocument) return !1; var e, o, r = n.ownerDocument; return Ni(me.fromDom(n)).fold(function () { return r.body.contains(n) }, (e = Ui, o = Li, function (t) { return e(o(t)) })) }, Wi = function () { return Gi(me.fromDom(document)) }, Gi = function (t) { var n = t.dom.body; if (null === n || n === undefined) throw new Error("Body is not available yet"); return me.fromDom(n) }, Xi = function (t, n, e) { if (!k(e)) throw console.error("Invalid call to CSS.set. Property ", n, ":: Value ", e, ":: Element ", t), new Error("CSS value must be a string: " + e); Ii(t) && t.style.setProperty(n, e) }, Yi = function (t, n) { Ii(t) && t.style.removeProperty(n) }, qi = function (t, n, e) { var o = t.dom; Xi(o, n, e) }, Ki = function (t, n) { var e = t.dom; _t(n, function (t, n) { Xi(e, n, t) }) }, Ji = function (t, n) { var e = t.dom; _t(n, function (t, n) { t.fold(function () { Yi(e, n) }, function (t) { Xi(e, n, t) }) }) }, $i = function (t, n) { var e = t.dom, o = window.getComputedStyle(e).getPropertyValue(n); return "" !== o || Ui(t) ? o : Qi(e, n) }, Qi = function (t, n) { return Ii(t) ? t.style.getPropertyValue(n) : "" }, Zi = function (t, n) { var e = t.dom, o = Qi(e, n); return st.from(o).filter(function (t) { return 0 < t.length }) }, tu = function (t, n, e) { var o = me.fromTag(t); return qi(o, n, e), Zi(o, n).isSome() }, nu = function (t, n) { var e = t.dom; Yi(e, n), Lr(t, "style").map(ke).is("") && Ur(t, "style") }, eu = function (t) { return t.dom.offsetWidth }, ou = function (t) { return t.dom.value }, ru = function (t, n) { if (n === undefined) throw new Error("Value.set was undefined"); t.dom.value = n }, iu = function (t) { var n, e, o, r = me.fromTag(t.tag); n = r, e = t.attributes, o = n.dom, _t(e, function (t, n) { Hr(o, n, t) }), Mi(r, t.classes), Ki(r, t.styles), t.innerHtml.each(function (t) { return Pr(r, t) }); var i = t.domChildren; return Mr(r, i), t.value.each(function (t) { ru(r, t) }), t.uid, ti(r, t.uid), r }, uu = function (t, n) { return e = t, r = V(o = n, function (t) { return te(t.name(), [Ln("config"), ne("state", fi)]) }), i = _n("component.behaviours", fn(r), e.behaviours).fold(function (t) { throw new Error(Dn(t) + "\nComplete spec:\n" + JSON.stringify(e, null, 2)) }, function (t) { return t }), { list: o, data: Tt(i, function (t) { var n = t.map(function (t) { return { config: t.config, state: t.state.init(t.config) } }); return function () { return n } }) }; var e, o, r, i }, au = function (t) { var n, e, o = (n = Ft(t, "behaviours").getOr({}), e = H(Ct(n), function (t) { return n[t] !== undefined }), V(e, function (t) { return n[t].me })); return uu(t, o) }, cu = function (t, n, e) { var o, r, i, u = ut(ut({}, (o = t).dom), { uid: o.uid, domChildren: V(o.components, function (t) { return t.element }) }), a = t.domModification.fold(function () { return gi({}) }, gi), c = { "alloy.base.modification": a }, s = 0 < n.length ? function (n, t, e, o) { var r = ut({}, t); ft(e, function (t) { r[t.name()] = t.exhibit(n, o) }); var i = mi(r, function (t, n) { return { name: t, modification: n } }), u = function (t) { return z(t, function (t, n) { return ut(ut({}, n.modification), t) }, {}) }, a = z(i.classes, function (t, n) { return n.modification.concat(t) }, []), c = u(i.attributes), s = u(i.styles); return gi({ classes: a, attributes: c, styles: s }) }(e, c, n, u) : a; return i = s, ut(ut({}, r = u), { attributes: ut(ut({}, r.attributes), i.attributes), styles: ut(ut({}, r.styles), i.styles), classes: r.classes.concat(i.classes) }) }, su = function (t, n, e) { var o, r, i, u = { "alloy.base.behaviour": t.events }; return o = e, r = t.eventOrder, i = bi(o, n, u), wi(i, r).getOrDie() }, lu = function (t) { var n, e, o, r, i, u, a, c, s, l, f, d, m, g = oi(t), p = g.events, h = w(g, ["events"]), v = (n = Ft(h, "components").getOr([]), V(n, gu)), b = ut(ut({}, h), { events: ut(ut({}, Yr), p), components: v }); return mt.value((o = function () { return m }, r = fe(ii), i = Tn(ki(e = b)), u = au(e), a = u.list, c = u.data, s = cu(i, a, c), l = iu(s), f = su(i, a, c), d = fe(i.components), m = { getSystem: r.get, config: function (t) { var n = c; return (_(n[t.name()]) ? n[t.name()] : function () { throw new Error("Could not find " + t.name() + " in " + JSON.stringify(e, null, 2)) })() }, hasConfigured: function (t) { return _(c[t.name()]) }, spec: e, readState: function (t) { return c[t]().map(function (t) { return t.state.readState() }).getOr("not enabled") }, getApis: function () { return i.apis }, connect: function (t) { r.set(t) }, disconnect: function () { r.set(ri(o)) }, element: l, syncComponents: function () { var t = _r(l), n = U(t, function (t) { return r.get().getByDom(t).fold(function () { return [] }, function (t) { return [t] }) }); d.set(n) }, components: d.get, events: f })) }, fu = function (t) { var n = me.fromText(t); return du({ element: n }) }, du = function (t) { var n = En("external.component", ln([Ln("element"), Kn("uid")]), t), e = fe(ri()); n.uid.each(function (t) { ti(n.element, t) }); var o = { getSystem: e.get, config: st.none, hasConfigured: c, connect: function (t) { e.set(t) }, disconnect: function () { e.set(ri(function () { return o })) }, getApis: function () { return {} }, element: n.element, spec: t, readState: at("No state"), syncComponents: $, components: at([]), events: {} }; return si(o) }, mu = ei, gu = function (n) { return Ft(n, ci).fold(function () { var t = n.hasOwnProperty("uid") ? n : ut({ uid: mu("") }, n); return lu(t).getOrDie() }, function (t) { return t }) }, pu = si; function hu(o, r) { var t = function (t) { var n = r(t); if (n <= 0 || null === n) { var e = $i(t, o); return parseFloat(e) || 0 } return n }, i = function (r, t) { return N(t, function (t, n) { var e = $i(r, n), o = e === undefined ? 0 : parseInt(e, 10); return isNaN(o) ? t : t + o }, 0) }; return { set: function (t, n) { if (!lt(n) && !n.match(/^[0-9]+$/)) throw new Error(o + ".set accepts only positive integer values. Value was " + n); var e = t.dom; Ii(e) && (e.style[o] = n + "px") }, get: t, getOuter: t, aggregate: i, max: function (t, n, e) { var o = i(t, e); return o < n ? n - o : 0 } } } var vu = hu("height", function (t) { var n = t.dom; return Ui(t) ? n.getBoundingClientRect().height : n.offsetHeight }), bu = function (t) { return vu.get(t) }, yu = function (t) { return vu.getOuter(t) }, xu = function (e, o) { return { left: e, top: o, translate: function (t, n) { return xu(e + t, o + n) } } }, wu = xu, Su = function (t, n) { return t !== undefined ? t : n !== undefined ? n : 0 }, ku = function (t) { var n = t.dom.ownerDocument, e = n.body, o = n.defaultView, r = n.documentElement; if (e === t.dom) return wu(e.offsetLeft, e.offsetTop); var i = Su(null == o ? void 0 : o.pageYOffset, r.scrollTop), u = Su(null == o ? void 0 : o.pageXOffset, r.scrollLeft), a = Su(r.clientTop, e.clientTop), c = Su(r.clientLeft, e.clientLeft); return Cu(t).translate(u - c, i - a) }, Cu = function (t) { var n, e = t.dom, o = e.ownerDocument.body; return o === e ? wu(o.offsetLeft, o.offsetTop) : Ui(t) ? (n = e.getBoundingClientRect(), wu(n.left, n.top)) : wu(0, 0) }, Ou = hu("width", function (t) { return t.dom.offsetWidth }), _u = function (t) { return Ou.get(t) }, Tu = function (t) { return Ou.getOuter(t) }, Eu = function (t) { var n = me.fromDom(function (t) { if (Pi() && v(t.target)) { var n = me.fromDom(t.target); if (pr(n) && ji(n) && t.composed && t.composedPath) { var e = t.composedPath(); if (e) return K(e) } } return st.from(t.target) }(t).getOr(t.target)), e = function () { return t.stopPropagation() }, o = function () { return t.preventDefault() }, r = i(o, e); return { target: n, x: t.clientX, y: t.clientY, stop: e, prevent: o, kill: r, raw: t } }, Du = function (t, n, e, o, r) { var i, u, a = (i = e, u = o, function (t) { i(t) && u(Eu(t)) }); return t.dom.addEventListener(n, a, r), { unbind: y(Bu, t, n, a, r) } }, Bu = function (t, n, e, o) { t.dom.removeEventListener(n, e, o) }, Au = function (t) { var n = t !== undefined ? t.dom : document, e = n.body.scrollLeft || n.documentElement.scrollLeft, o = n.body.scrollTop || n.documentElement.scrollTop; return wu(e, o) }, Mu = function (t, n, e) { var o = (e !== undefined ? e.dom : document).defaultView; o && o.scrollTo(t, n) }, Fu = function (t, n, e, o) { return { x: t, y: n, width: e, height: o, right: t + e, bottom: n + o } }, Iu = function (t) { var n, e, o = t === undefined ? window : t, r = o.document, i = Au(me.fromDom(r)); return e = (n = o) === undefined ? window : n, st.from(e.visualViewport).fold(function () { var t = o.document.documentElement, n = t.clientWidth, e = t.clientHeight; return Fu(i.left, i.top, n, e) }, function (t) { return Fu(Math.max(t.pageLeft, i.left), Math.max(t.pageTop, i.top), t.width, t.height) }) }, Ru = function (o, t) { return o.view(t).fold(at([]), function (t) { var n = o.owner(t), e = Ru(o, n); return [t].concat(e) }) }, Vu =/* */Object.freeze({ __proto__: null, view: function (t) { var n; return (t.dom === document ? st.none() : st.from(null === (n = t.dom.defaultView) || void 0 === n ? void 0 : n.frameElement)).map(me.fromDom) }, owner: yr }), Pu = function (o) { var t, n, e, r, i = me.fromDom(document), u = Au(i); return (t = o, e = (n = Vu).owner(t), r = Ru(n, e), st.some(r)).fold(y(ku, o), function (t) { var n = Cu(o), e = z(t, function (t, n) { var e = Cu(n); return { left: t.left + e.left, top: t.top + e.top } }, { left: 0, top: 0 }); return wu(e.left + n.left + u.left, e.top + n.top + u.top) }) }, Hu = function (t, n, e, o) { return { x: t, y: n, width: e, height: o, right: t + e, bottom: n + o } }, zu = function (t) { var n = ku(t), e = Tu(t), o = yu(t); return Hu(n.left, n.top, e, o) }, Nu = function (t) { var n = Pu(t), e = Tu(t), o = yu(t); return Hu(n.left, n.top, e, o) }, Lu = function () { return Iu(window) }; function ju(t, n, e, o, r) { return t(e, o) ? st.some(e) : _(r) && r(e) ? st.none() : n(e, o, r) } var Uu, Wu, Gu = function (t, n, e) { for (var o = t.dom, r = _(e) ? e : c; o.parentNode;) { o = o.parentNode; var i = me.fromDom(o); if (n(i)) return st.some(i); if (r(i)) break } return st.none() }, Xu = function (t, n, e) { return ju(function (t, n) { return n(t) }, Gu, t, n, e) }, Yu = function (t, n, e) { return Xu(t, n, e).isSome() }, qu = function (t, n, e) { return Gu(t, function (t) { return Ue(t, n) }, e) }, Ku = function (t, n) { return e = n, r = (o = t) === undefined ? document : o.dom, We(r) ? st.none() : st.from(r.querySelector(e)).map(me.fromDom); var e, o, r }, Ju = function (t, n, e) { return ju(Ue, qu, t, n, e) }, $u = function () { var n = Kr("aria-owns"); return { id: n, link: function (t) { zr(t, "aria-owns", n) }, unlink: function (t) { Ur(t, "aria-owns") } } }, Qu = function (n, t) { return Xu(t, function (t) { if (!pr(t)) return !1; var n = Nr(t, "id"); return n !== undefined && -1 < n.indexOf("aria-owns") }).bind(function (t) { var n = Nr(t, "id"), e = Hi(t); return Ku(e, '[aria-owns="' + n + '"]') }).exists(function (t) { return Zu(n, t) }) }, Zu = function (n, t) { return Yu(t, function (t) { return Ge(t, n.element) }, c) || Qu(n, t) }, ta = "unknown"; (Wu = Uu = Uu || {})[Wu.STOP = 0] = "STOP", Wu[Wu.NORMAL = 1] = "NORMAL", Wu[Wu.LOGGING = 2] = "LOGGING"; var na, ea, oa = fe({}), ra = ["alloy/data/Fields", "alloy/debugging/Debugging"], ia = function (n, t, e) { var o, r, i, u; switch (Ft(oa.get(), n).orThunk(function () { var t = Ct(oa.get()); return Z(t, function (t) { return -1 < n.indexOf(t) ? st.some(oa.get()[t]) : st.none() }) }).getOr(Uu.NORMAL)) { case Uu.NORMAL: return e(ua()); case Uu.LOGGING: var a = (o = n, r = t, i = [], u = (new Date).getTime(), { logEventCut: function (t, n, e) { i.push({ outcome: "cut", target: n, purpose: e }) }, logEventStopped: function (t, n, e) { i.push({ outcome: "stopped", target: n, purpose: e }) }, logNoParent: function (t, n, e) { i.push({ outcome: "no-parent", target: n, purpose: e }) }, logEventNoHandlers: function (t, n) { i.push({ outcome: "no-handlers-left", target: n }) }, logEventResponse: function (t, n, e) { i.push({ outcome: "response", purpose: e, target: n }) }, write: function () { var t = (new Date).getTime(); M(["mousemove", "mouseover", "mouseout", Mo()], o) || console.log(o, { event: o, time: t - u, target: r.dom, sequence: V(i, function (t) { return M(["cut", "stopped", "response"], t.outcome) ? "{" + t.purpose + "} " + t.outcome + " at (" + Gr(t.target) + ")" : t.outcome }) }) } }), c = e(a); return a.write(), c; case Uu.STOP: return !0 } }, ua = at({ logEventCut: $, logEventStopped: $, logNoParent: $, logEventNoHandlers: $, logEventResponse: $, write: $ }), aa = at([Ln("menu"), Ln("selectedMenu")]), ca = at([Ln("item"), Ln("selectedItem")]), sa = (at(fn(ca().concat(aa()))), at(fn(ca()))), la = Xn("initSize", [Ln("numColumns"), Ln("numRows")]), fa = function () { return Xn("markers", [Ln("backgroundMenu")].concat(aa()).concat(ca())) }, da = function (t) { return Xn("markers", V(t, Ln)) }, ma = function (t, n, e) { !function () { var t = new Error; if (t.stack === undefined) return; var n = t.stack.split("\n"); L(n, function (n) { return 0 < n.indexOf("alloy") && !F(ra, function (t) { return -1 < n.indexOf(t) }) }).getOr(ta) }(); return bn(n, n, e, Cn(function (e) { return mt.value(function () { for (var t = [], n = 0; n < arguments.length; n++)t[n] = arguments[n]; return e.apply(undefined, t) }) })) }, ga = function (t) { return ma(0, t, Ut($)) }, pa = function (t) { return ma(0, t, Ut(st.none)) }, ha = function (t) { return ma(0, t, Wt()) }, va = function (t) { return ma(0, t, Wt()) }, ba = function (t, n) { return le(t, at(n)) }, ya = function (t) { return le(t, ct) }, xa = at(la), wa = function (t, n, e, o, r, i) { return { x: t, y: n, bubble: e, direction: o, boundsRestriction: r, label: i } }, Sa = Vt([{ southeast: [] }, { southwest: [] }, { northeast: [] }, { northwest: [] }, { south: [] }, { north: [] }, { east: [] }, { west: [] }]), ka = Sa.southeast, Ca = Sa.southwest, Oa = Sa.northeast, _a = Sa.northwest, Ta = Sa.south, Ea = Sa.north, Da = Sa.east, Ba = Sa.west, Aa = function (n, e) { return function (t, n) { for (var e = {}, o = 0, r = t.length; o < r; o++) { var i = t[o]; e[String(i)] = n(i, o) } return e }(["left", "right", "top", "bottom"], function (t) { return Ft(e, t).map(function (t) { return function (t, n) { switch (n) { case 1: return t.x; case 0: return t.x + t.width; case 2: return t.y; case 3: return t.y + t.height } }(n, t) }) }) }, Ma = function (t) { return t.x }, Fa = function (t, n) { return t.x + t.width / 2 - n.width / 2 }, Ia = function (t, n) { return t.x + t.width - n.width }, Ra = function (t, n) { return t.y - n.height }, Va = function (t) { return t.y + t.height }, Pa = function (t, n) { return t.y + t.height / 2 - n.height / 2 }, Ha = function (t, n, e) { return wa(Ma(t), Va(t), e.southeast(), ka(), Aa(t, { left: 1, top: 3 }), "layout-se") }, za = function (t, n, e) { return wa(Ia(t, n), Va(t), e.southwest(), Ca(), Aa(t, { right: 0, top: 3 }), "layout-sw") }, Na = function (t, n, e) { return wa(Ma(t), Ra(t, n), e.northeast(), Oa(), Aa(t, { left: 1, bottom: 2 }), "layout-ne") }, La = function (t, n, e) { return wa(Ia(t, n), Ra(t, n), e.northwest(), _a(), Aa(t, { right: 0, bottom: 2 }), "layout-nw") }, ja = function (t, n, e) { return wa(Fa(t, n), Ra(t, n), e.north(), Ea(), Aa(t, { bottom: 2 }), "layout-n") }, Ua = function (t, n, e) { return wa(Fa(t, n), Va(t), e.south(), Ta(), Aa(t, { top: 3 }), "layout-s") }, Wa = function (t, n, e) { return wa((o = t).x + o.width, Pa(t, n), e.east(), Da(), Aa(t, { left: 0 }), "layout-e"); var o }, Ga = function (t, n, e) { return wa((o = n, t.x - o.width), Pa(t, n), e.west(), Ba(), Aa(t, { right: 1 }), "layout-w"); var o }, Xa = function () { return [Ha, za, Na, La, Ua, ja, Wa, Ga] }, Ya = function () { return [za, Ha, La, Na, Ua, ja, Wa, Ga] }, qa = function () { return [Na, La, Ha, za, ja, Ua] }, Ka = function () { return [La, Na, za, Ha, ja, Ua] }, Ja = function () { return [Ha, za, Na, La, Ua, ja] }, $a = function () { return [za, Ha, La, Na, Ua, ja] }, Qa =/* */Object.freeze({ __proto__: null, events: function (c) { return Zo([er(Oo(), function (r, t) { var n, e, i = c.channels, o = Ct(i), u = t, a = (n = o, (e = u).universal ? n : H(n, function (t) { return M(e.channels, t) })); ft(a, function (t) { var n = i[t], e = n.schema, o = En("channel[" + t + "] data\nReceiver: " + Gr(r.element), e, u.data); n.onReceive(r, o) }) })]) } }), Za = [jn("channels", On(mt.value, ln([ha("onReceive"), ne("schema", Mn())])))], tc = function (e, o, r) { return fr(function (t, n) { r(t, e, o) }) }, nc = function (t, n, e, o, r, i) { var u = ln(t), a = te(n, [Jn("config", ln(t))]); return rc(u, a, n, e, o, r, i) }, ec = function (r, i, u) { var t, n, e, o, a, c; return t = function (e) { for (var t = [], n = 1; n < arguments.length; n++)t[n - 1] = arguments[n]; var o = [e].concat(t); return e.config({ name: at(r) }).fold(function () { throw new Error("We could not find any behaviour configuration for: " + r + ". Using API: " + u) }, function (t) { var n = Array.prototype.slice.call(o, 1); return i.apply(undefined, [e, t.config, t.state].concat(n)) }) }, n = u, e = i.toString(), o = e.indexOf(")") + 1, a = e.indexOf("("), c = e.substring(a + 1, o - 1).split(/,\s*/), t.toFunctionAnnotation = function () { return { name: n, parameters: ui(c.slice(0, 1).concat(c.slice(3))) } }, t }, oc = function (t) { return { key: t, value: undefined } }, rc = function (e, t, o, r, n, i, u) { var a = function (t) { return Rt(t, o) ? t[o]() : st.none() }, c = Tt(n, function (t, n) { return ec(o, t, n) }), s = Tt(i, ai), l = ut(ut(ut({}, s), c), { revoke: y(oc, o), config: function (t) { var n = En(o + "-config", e, t); return { key: o, value: { config: n, me: l, configAsRaw: Lt(function () { return En(o + "-config", e, t) }), initialConfig: t, state: u } } }, schema: function () { return t }, exhibit: function (t, e) { return a(t).bind(function (n) { return Ft(r, "exhibit").map(function (t) { return t(e, n.config, n.state) }) }).getOr(gi({})) }, name: function () { return o }, handlers: function (t) { return a(t).map(function (t) { return Ft(r, "events").getOr(function () { return {} })(t.config, t.state) }).getOr({}) } }); return l }, ic = $t, uc = ln([Ln("fields"), Ln("name"), ne("active", {}), ne("apis", {}), ne("state", fi), ne("extra", {})]), ac = function (t) { var n = En("Creating behaviour: " + t.name, uc, t); return nc(n.fields, n.name, n.active, n.apis, n.extra, n.state) }, cc = ln([Ln("branchKey"), Ln("branches"), Ln("name"), ne("active", {}), ne("apis", {}), ne("state", fi), ne("extra", {})]), sc = function (t) { var n, e, o, r, i, u, a, c, s = En("Creating behaviour: " + t.name, cc, t); return n = An(s.branchKey, s.branches), e = s.name, o = s.active, r = s.apis, i = s.extra, u = s.state, c = te(e, [Jn("config", a = n)]), rc(a, c, e, o, r, i, u) }, lc = at(undefined), fc = ac({ fields: Za, name: "receiving", active: Qa }), dc =/* */Object.freeze({ __proto__: null, exhibit: function (t, n) { return gi({ classes: [], styles: n.useFixed() ? {} : { position: "relative" } }) } }), mc = function (t) { return t.dom.focus() }, gc = function (t) { return void 0 === t && (t = me.fromDom(document)), st.from(t.dom.activeElement).map(me.fromDom) }, pc = function (n) { return gc(Hi(n)).filter(function (t) { return n.dom.contains(t.dom) }) }, hc = function (t, e) { var o = Hi(e), n = gc(o).bind(function (n) { var r, i, t = function (t) { return Ge(n, t) }; return t(e) ? st.some(e) : (r = t, (i = function (t) { for (var n = 0; n < t.childNodes.length; n++) { var e = me.fromDom(t.childNodes[n]); if (r(e)) return st.some(e); var o = i(t.childNodes[n]); if (o.isSome()) return o } return st.none() })(e.dom)) }), r = t(e); return n.each(function (n) { gc(o).filter(function (t) { return Ge(t, n) }).fold(function () { mc(n) }, $) }), r }, vc = function (t, n, e, o, r) { return { position: t, left: n, top: e, right: o, bottom: r } }, bc = function (t, n) { var e = function (t) { return t + "px" }; Ji(t, { position: st.some(n.position), left: n.left.map(e), top: n.top.map(e), right: n.right.map(e), bottom: n.bottom.map(e) }) }, yc = Vt([{ none: [] }, { relative: ["x", "y", "width", "height"] }, { fixed: ["x", "y", "width", "height"] }]), xc = function (t, n, e, o, r, i) { var u, a, c, s, l, f, d, m, g, p = n.x - e, h = n.y - o, v = r - (p + n.width), b = i - (h + n.height), y = st.some(p), x = st.some(h), w = st.some(v), S = st.some(b), k = st.none(); return u = n.direction, a = function () { return vc(t, y, x, k, k) }, c = function () { return vc(t, k, x, w, k) }, s = function () { return vc(t, y, k, k, S) }, l = function () { return vc(t, k, k, w, S) }, f = function () { return vc(t, y, x, k, k) }, d = function () { return vc(t, y, k, k, S) }, m = function () { return vc(t, y, x, k, k) }, g = function () { return vc(t, k, x, w, k) }, u.fold(a, c, s, l, f, d, m, g) }, wc = function (t, n) { var e = y(Pu, n), o = t.fold(e, e, function () { var t = Au(); return Pu(n).translate(-t.left, -t.top) }), r = Tu(n), i = yu(n); return Hu(o.left, o.top, r, i) }, Sc = function (t, n, e) { var o = wu(n, e); return t.fold(at(o), at(o), function () { var t = Au(); return o.translate(-t.left, -t.top) }) }, kc = (yc.none, yc.relative), Cc = yc.fixed, Oc = function (t, n, e, o) { var r = t + n; return o < r ? e : r < e ? o : r }, _c = function (t, n, e) { return Math.min(Math.max(t, n), e) }, Tc = Vt([{ fit: ["reposition"] }, { nofit: ["reposition", "deltaW", "deltaH"] }]), Ec = function (t, n, e, o) { var r, i, u, a, c, s, l, f, d, m, g, p, h, v, b, y, x, w, S, k, C, O, _, T, E, D, B, A, M, F, I, R, V, P = t.x, H = t.y, z = t.bubble.offset, N = z.left, L = z.top, j = (r = o, i = t.boundsRestriction, u = z, c = (a = function (n, e) { var o = "top" === n || "bottom" === n ? u.top : u.left; return Ft(i, n).bind(ct).bind(function (t) { return "left" === n || "top" === n ? e <= t ? st.some(t) : st.none() : t <= e ? st.some(t) : st.none() }).map(function (t) { return t + o }).getOr(e) })("left", r.x), s = a("top", r.y), l = a("right", r.right), f = a("bottom", r.bottom), Hu(c, s, l - c, f - s)), U = j.y, W = j.bottom, G = j.x, X = j.right, Y = H + L, q = (d = P + N, m = Y, g = n, p = e, v = (h = j).x, b = h.y, y = h.width, x = h.height, S = b <= m, k = (w = v <= d) && S, C = d + g <= v + y && m + p <= b + x, O = Math.abs(Math.min(g, w ? v + y - d : v - (d + g))), _ = Math.abs(Math.min(p, S ? b + x - m : b - (m + p))), T = Math.max(h.x, h.right - g), E = Math.max(h.y, h.bottom - p), { originInBounds: k, sizeInBounds: C, limitX: _c(d, h.x, T), limitY: _c(m, h.y, E), deltaW: O, deltaH: _ }), K = q.originInBounds, J = q.sizeInBounds, $ = q.limitX, Q = q.limitY, Z = q.deltaW, tt = q.deltaH, nt = at(Q + tt - U), et = at(W - Q), ot = (D = t.direction, A = B = et, M = nt, D.fold(B, B, M, M, B, M, A, A)), rt = at($ + Z - G), it = at(X - $), ut = { x: $, y: Q, width: Z, height: tt, maxHeight: ot, maxWidth: (F = t.direction, R = I = it, V = rt, F.fold(I, V, I, V, R, R, I, V)), direction: t.direction, classes: { on: t.bubble.classesOn, off: t.bubble.classesOff }, label: t.label, candidateYforTest: Y }; return K && J ? Tc.fit(ut) : Tc.nofit(ut, Z, tt) }, Dc = function (t, n, e, o) { nu(n, "max-height"), nu(n, "max-width"); var r, i, u, a, c, s, l, f, d, m = { width: Tu(r = n), height: yu(r) }; return i = o.preference, u = t, a = m, c = e, s = o.bounds, l = a.width, f = a.height, d = function (t, o, r, i) { var n = t(u, a, c); return Ec(n, l, f, s).fold(Tc.fit, function (t, n, e) { return i < e || r < n ? Tc.nofit(t, n, e) : Tc.nofit(o, r, i) }) }, N(i, function (t, n) { var e = y(d, n); return t.fold(Tc.fit, e) }, Tc.nofit({ x: u.x, y: u.y, width: a.width, height: a.height, maxHeight: a.height, maxWidth: a.width, direction: ka(), classes: { on: [], off: [] }, label: "none", candidateYforTest: u.y }, -1, -1)).fold(ct, ct) }, Bc = function (t, n, e) { var o, r; bc(t, (o = e.origin, r = n, o.fold(function () { return vc("absolute", st.some(r.x), st.some(r.y), st.none(), st.none()) }, function (t, n, e, o) { return xc("absolute", r, t, n, e, o) }, function (t, n, e, o) { return xc("fixed", r, t, n, e, o) }))) }, Ac = function (t, n) { var e, o, r; e = t, o = Math.floor(n), r = vu.max(e, o, ["margin-top", "border-top-width", "padding-top", "padding-bottom", "border-bottom-width", "margin-bottom"]), qi(e, "max-height", r + "px") }, Mc = at(function (t, n) { Ac(t, n), Ki(t, { "overflow-x": "hidden", "overflow-y": "auto" }) }), Fc = at(function (t, n) { Ac(t, n) }), Ic = function (t, n, e) { return t[n] === undefined ? e : t[n] }, Rc = function (t, n, e, o, r, i) { var u, a = Ic(i, "maxHeightFunction", Mc()), c = Ic(i, "maxWidthFunction", $), s = t.anchorBox, l = t.origin, f = { bounds: (u = l, r.fold(function () { return u.fold(Lu, Lu, Hu) }, function (e) { return u.fold(e, e, function () { var t = e(), n = Sc(u, t.x, t.y); return Hu(n.left, n.top, t.width, t.height) }) })), origin: l, preference: o, maxHeightFunction: a, maxWidthFunction: c }; Vc(s, n, e, f) }, Vc = function (t, n, e, o) { var r, i, u, a, c, s, l = Dc(t, n, e, o); Bc(n, l, o), r = n, i = l.classes, Fi(r, i.off), Mi(r, i.on), u = n, a = l, (0, o.maxHeightFunction)(u, a.maxHeight), c = n, s = l, (0, o.maxWidthFunction)(c, s.maxWidth) }, Pc = ["valignCentre", "alignLeft", "alignRight", "alignCentre", "top", "bottom", "left", "right"], Hc = function (t, n, e) { var r = function (t) { return Ft(e, t).getOr([]) }, o = function (t, n, e) { var o = X(Pc, e); return { offset: wu(t, n), classesOn: U(e, r), classesOff: U(o, r) } }; return { southeast: function () { return o(-t, n, ["top", "alignLeft"]) }, southwest: function () { return o(t, n, ["top", "alignRight"]) }, south: function () { return o(-t / 2, n, ["top", "alignCentre"]) }, northeast: function () { return o(-t, -n, ["bottom", "alignLeft"]) }, northwest: function () { return o(t, -n, ["bottom", "alignRight"]) }, north: function () { return o(-t / 2, -n, ["bottom", "alignCentre"]) }, east: function () { return o(t, -n / 2, ["valignCentre", "left"]) }, west: function () { return o(-t, -n / 2, ["valignCentre", "right"]) }, innerNorthwest: function () { return o(-t, n, ["top", "alignRight"]) }, innerNortheast: function () { return o(t, n, ["top", "alignLeft"]) }, innerNorth: function () { return o(-t / 2, n, ["top", "alignCentre"]) }, innerSouthwest: function () { return o(-t, -n, ["bottom", "alignRight"]) }, innerSoutheast: function () { return o(t, -n, ["bottom", "alignLeft"]) }, innerSouth: function () { return o(-t / 2, -n, ["bottom", "alignCentre"]) }, innerWest: function () { return o(t, -n / 2, ["valignCentre", "right"]) }, innerEast: function () { return o(-t, -n / 2, ["valignCentre", "left"]) } } }, zc = function () { return Hc(0, 0, {}) }, Nc = function (n, e) { return function (t) { return "rtl" === Lc(t) ? e : n } }, Lc = function (t) { return "rtl" === $i(t, "direction") ? "rtl" : "ltr" }; (ea = na = na || {}).TopToBottom = "toptobottom", ea.BottomToTop = "bottomtotop"; var jc = "data-alloy-vertical-dir", Uc = function (t) { return Yu(t, function (t) { return pr(t) && Nr(t, "data-alloy-vertical-dir") === na.BottomToTop }) }, Wc = function () { return te("layouts", [Ln("onLtr"), Ln("onRtl"), Kn("onBottomLtr"), Kn("onBottomRtl")]) }, Gc = function (n, t, e, o, r, i, u) { var a = u.map(Uc).getOr(!1), c = t.layouts.map(function (t) { return t.onLtr(n) }), s = t.layouts.map(function (t) { return t.onRtl(n) }), l = a ? t.layouts.bind(function (t) { return t.onBottomLtr.map(function (t) { return t(n) }) }).or(c).getOr(r) : c.getOr(e), f = a ? t.layouts.bind(function (t) { return t.onBottomRtl.map(function (t) { return t(n) }) }).or(s).getOr(i) : s.getOr(o); return Nc(l, f)(n) }, Xc = [Ln("hotspot"), Kn("bubble"), ne("overrides", {}), Wc(), ba("placement", function (t, n, e) { var o = n.hotspot, r = wc(e, o.element), i = Gc(t.element, n, Ja(), $a(), qa(), Ka(), st.some(n.hotspot.element)); return st.some({ anchorBox: r, bubble: n.bubble.getOr(zc()), overrides: n.overrides, layouts: i, placer: st.none() }) })], Yc = [Ln("x"), Ln("y"), ne("height", 0), ne("width", 0), ne("bubble", zc()), ne("overrides", {}), Wc(), ba("placement", function (t, n, e) { var o = Sc(e, n.x, n.y), r = Hu(o.left, o.top, n.width, n.height), i = Gc(t.element, n, Xa(), Ya(), Xa(), Ya(), st.none()); return st.some({ anchorBox: r, bubble: n.bubble, overrides: n.overrides, layouts: i, placer: st.none() }) })], qc = function (t, n, e, o) { return { start: t, soffset: n, finish: e, foffset: o } }, Kc = Vt([{ before: ["element"] }, { on: ["element", "offset"] }, { after: ["element"] }]), Jc = (Kc.before, Kc.on, Kc.after, function (t) { return t.fold(ct, ct, ct) }), $c = Vt([{ domRange: ["rng"] }, { relative: ["startSitu", "finishSitu"] }, { exact: ["start", "soffset", "finish", "foffset"] }]), Qc = { domRange: $c.domRange, relative: $c.relative, exact: $c.exact, exactFromRange: function (t) { return $c.exact(t.start, t.soffset, t.finish, t.foffset) }, getWin: function (t) { var n = t.match({ domRange: function (t) { return me.fromDom(t.startContainer) }, relative: function (t, n) { return Jc(t) }, exact: function (t, n, e, o) { return t } }); return Sr(n) }, range: qc }, Zc = function (t, n, e) { var o, r, i = t.document.createRange(); return o = i, n.fold(function (t) { o.setStartBefore(t.dom) }, function (t, n) { o.setStart(t.dom, n) }, function (t) { o.setStartAfter(t.dom) }), r = i, e.fold(function (t) { r.setEndBefore(t.dom) }, function (t, n) { r.setEnd(t.dom, n) }, function (t) { r.setEndAfter(t.dom) }), i }, ts = function (t, n, e, o, r) { var i = t.document.createRange(); return i.setStart(n.dom, e), i.setEnd(o.dom, r), i }, ns = function (t) { return { left: t.left, top: t.top, right: t.right, bottom: t.bottom, width: t.width, height: t.height } }, es = Vt([{ ltr: ["start", "soffset", "finish", "foffset"] }, { rtl: ["start", "soffset", "finish", "foffset"] }]), os = function (t, n, e) { return n(me.fromDom(e.startContainer), e.startOffset, me.fromDom(e.endContainer), e.endOffset) }, rs = function (t, n) { var r, e, o, i = (r = t, n.match({ domRange: function (t) { return { ltr: at(t), rtl: st.none } }, relative: function (t, n) { return { ltr: Lt(function () { return Zc(r, t, n) }), rtl: Lt(function () { return st.some(Zc(r, n, t)) }) } }, exact: function (t, n, e, o) { return { ltr: Lt(function () { return ts(r, t, n, e, o) }), rtl: Lt(function () { return st.some(ts(r, e, o, t, n)) }) } } })); return (o = (e = i).ltr()).collapsed ? e.rtl().filter(function (t) { return !1 === t.collapsed }).map(function (t) { return es.rtl(me.fromDom(t.endContainer), t.endOffset, me.fromDom(t.startContainer), t.startOffset) }).getOrThunk(function () { return os(0, es.ltr, o) }) : os(0, es.ltr, o) }; es.ltr, es.rtl; var is, us, as, cs = (is = hr, us = "text", { get: function (t) { if (!is(t)) throw new Error("Can only get " + us + " value of a " + us + " node"); return as(t).getOr("") }, getOption: as = function (t) { return is(t) ? st.from(t.dom.nodeValue) : st.none() }, set: function (t, n) { if (!is(t)) throw new Error("Can only set raw " + us + " value of a " + us + " node"); t.dom.nodeValue = n } }), ss = function (t) { return cs.getOption(t) }, ls = ["img", "br"], fs = function (t) { return ss(t).filter(function (t) { return 0 !== t.trim().length || -1 < t.indexOf("\xa0") }).isSome() || M(ls, mr(t)) }, ds = function (t, i) { var u = function (t) { for (var n = _r(t), e = n.length - 1; 0 <= e; e--) { var o = n[e]; if (i(o)) return st.some(o); var r = u(o); if (r.isSome()) return r } return st.none() }; return u(t) }, ms = function (t, n) { return e = n, r = (o = t) === undefined ? document : o.dom, We(r) ? [] : V(r.querySelectorAll(e), me.fromDom); var e, o, r }, gs = function (t, n, e, o) { var r, i, u, a, c, s = (i = n, u = e, a = o, (c = yr(r = t).dom.createRange()).setStart(r.dom, i), c.setEnd(u.dom, a), c), l = Ge(t, e) && n === o; return s.collapsed && !l }, ps = function (t) { if (0 < t.rangeCount) { var n = t.getRangeAt(0), e = t.getRangeAt(t.rangeCount - 1); return st.some(qc(me.fromDom(n.startContainer), n.startOffset, me.fromDom(e.endContainer), e.endOffset)) } return st.none() }, hs = function (t) { if (null === t.anchorNode || null === t.focusNode) return ps(t); var n = me.fromDom(t.anchorNode), e = me.fromDom(t.focusNode); return gs(n, t.anchorOffset, e, t.focusOffset) ? st.some(qc(n, t.anchorOffset, e, t.focusOffset)) : ps(t) }, vs = function (t) { return n = t, st.from(n.getSelection()).filter(function (t) { return 0 < t.rangeCount }).bind(hs); var n }, bs = function (t, n) { var i, e, o, r, u = rs(i = t, n).match({ ltr: function (t, n, e, o) { var r = i.document.createRange(); return r.setStart(t.dom, n), r.setEnd(e.dom, o), r }, rtl: function (t, n, e, o) { var r = i.document.createRange(); return r.setStart(e.dom, o), r.setEnd(t.dom, n), r } }); return o = (e = u).getClientRects(), 0 < (r = 0 < o.length ? o[0] : e.getBoundingClientRect()).width || 0 < r.height ? st.some(r).map(ns) : st.none() }, ys = function (t, n) { return { element: t, offset: n } }, xs = function (t, n) { var e = _r(t); if (0 === e.length) return ys(t, n); if (n < e.length) return ys(e[n], 0); var o, r = e[e.length - 1], i = hr(r) ? (o = r, cs.get(o).length) : _r(r).length; return ys(r, i) }, ws = Vt([{ screen: ["point"] }, { absolute: ["point", "scrollLeft", "scrollTop"] }]), Ss = function (t) { return t.fold(ct, function (t, n, e) { return t.translate(-n, -e) }) }, ks = function (t) { return t.fold(ct, ct) }, Cs = function (t) { return N(t, function (t, n) { return t.translate(n.left, n.top) }, wu(0, 0)) }, Os = function (t) { var n = V(t, ks); return Cs(n) }, _s = ws.screen, Ts = ws.absolute, Es = function (t, n, e) { var o, r, i = yr(t.element), u = Au(i), a = (o = t, r = Sr(e.root).dom, st.from(r.frameElement).map(me.fromDom).filter(function (t) { var n = yr(t), e = yr(o.element); return Ge(n, e) }).map(ku).getOr(u)); return Ts(a, u.left, u.top) }, Ds = function (t, n, e, o) { var r = t, i = n, u = e, a = o; t < 0 && (r = 0, u = e + t), n < 0 && (i = 0, a = o + n); var c = _s(wu(r, i)); return st.some({ point: c, width: u, height: a }) }, Bs = function (t, l, f, d, m) { return t.map(function (t) { var n, e, o, r = [l, t.point], i = (n = function () { return Os(r) }, e = function () { return Os(r) }, o = function () { return t = V(r, Ss), Cs(t); var t }, d.fold(n, e, o)), u = { x: i.left, y: i.top, width: t.width, height: t.height }, a = (f.showAbove ? qa : Ja)(), c = (f.showAbove ? Ka : $a)(), s = Gc(m, f, a, c, a, c, st.none()); return { anchorBox: u, bubble: f.bubble.getOr(zc()), overrides: f.overrides, layouts: s, placer: st.none() } }) }, As = function (t, n) { return (hr(t) ? ys : xs)(t, n) }, Ms = function (t, n) { return n.getSelection.getOrThunk(function () { return function () { return vs(t) } })().map(function (t) { var n = As(t.start, t.soffset), e = As(t.finish, t.foffset); return Qc.range(n.element, n.offset, e.element, e.offset) }) }, Fs = [Kn("getSelection"), Ln("root"), Kn("bubble"), Wc(), ne("overrides", {}), ne("showAbove", !1), ba("placement", function (t, n, e) { var o = Sr(n.root).dom, r = Es(t, 0, n), i = Ms(o, n).bind(function (t) { return bs(o, Qc.exactFromRange(t)).orThunk(function () { var n = me.fromText("\ufeff"); return Er(t.start, n), bs(o, Qc.exact(n, 0, n, 1)).map(function (t) { return Ir(n), t }) }).bind(function (t) { return Ds(t.left, t.top, t.width, t.height) }) }), u = Ms(o, n).bind(function (t) { return pr(t.start) ? st.some(t.start) : Cr(t.start) }).getOr(t.element); return Bs(i, r, n, e, u) })], Is = [Ln("node"), Ln("root"), Kn("bubble"), Wc(), ne("overrides", {}), ne("showAbove", !1), ba("placement", function (r, i, u) { var a = Es(r, 0, i); return i.node.bind(function (t) { var n = t.dom.getBoundingClientRect(), e = Ds(n.left, n.top, n.width, n.height), o = i.node.getOr(r.element); return Bs(e, a, i, u, o) }) })], Rs = function (t) { return t.x + t.width }, Vs = function (t, n) { return t.x - n.width }, Ps = function (t, n) { return t.y - n.height + t.height }, Hs = function (t) { return t.y }, zs = function (t, n, e) { return wa(Rs(t), Hs(t), e.southeast(), ka(), Aa(t, { left: 0, top: 2 }), "link-layout-se") }, Ns = function (t, n, e) { return wa(Vs(t, n), Hs(t), e.southwest(), Ca(), Aa(t, { right: 1, top: 2 }), "link-layout-sw") }, Ls = function (t, n, e) { return wa(Rs(t), Ps(t, n), e.northeast(), Oa(), Aa(t, { left: 0, bottom: 3 }), "link-layout-ne") }, js = function (t, n, e) { return wa(Vs(t, n), Ps(t, n), e.northwest(), _a(), Aa(t, { right: 1, bottom: 3 }), "link-layout-nw") }, Us = function () { return [zs, Ns, Ls, js] }, Ws = function () { return [Ns, zs, js, Ls] }, Gs = [Ln("item"), Wc(), ne("overrides", {}), ba("placement", function (t, n, e) { var o = wc(e, n.item.element), r = Gc(t.element, n, Us(), Ws(), Us(), Ws(), st.none()); return st.some({ anchorBox: o, bubble: zc(), overrides: n.overrides, layouts: r, placer: st.none() }) })], Xs = An("anchor", { selection: Fs, node: Is, hotspot: Xc, submenu: Gs, makeshift: Yc }), Ys = function (t, n, e, o, r) { var i = { anchorBox: e.anchorBox, origin: n }; Rc(i, r.element, e.bubble, e.layouts, o, e.overrides) }, qs = function (t, n, e, o, r, i) { var u = i.map(zu); return Ks(t, n, e, o, r, u) }, Ks = function (c, s, t, n, l, f) { var d = En("positioning anchor.info", Xs, n); hc(function () { qi(l.element, "position", "fixed"); var t = Zi(l.element, "visibility"); qi(l.element, "visibility", "hidden"); var n, e, o, r, i = s.useFixed() ? (r = document.documentElement, Cc(0, 0, r.clientWidth, r.clientHeight)) : (e = ku((n = c).element), o = n.element.dom.getBoundingClientRect(), kc(e.left, e.top, o.width, o.height)), u = d.placement, a = f.map(at).or(s.getBounds); u(c, d, i).each(function (t) { t.placer.getOr(Ys)(c, i, t, a, l) }), t.fold(function () { nu(l.element, "visibility") }, function (t) { qi(l.element, "visibility", t) }), Zi(l.element, "left").isNone() && Zi(l.element, "top").isNone() && Zi(l.element, "right").isNone() && Zi(l.element, "bottom").isNone() && Zi(l.element, "position").is("fixed") && nu(l.element, "position") }, l.element) }, Js =/* */Object.freeze({ __proto__: null, position: function (t, n, e, o, r) { qs(t, n, e, o, r, st.none()) }, positionWithin: qs, positionWithinBounds: Ks, getMode: function (t, n, e) { return n.useFixed() ? "fixed" : "absolute" } }), $s = [ne("useFixed", c), Kn("getBounds")], Qs = ac({ fields: $s, name: "positioning", active: dc, apis: Js }), Zs = function (t) { Yo(t, Ho()); var n = t.components(); ft(n, Zs) }, tl = function (t) { var n = t.components(); ft(n, tl), Yo(t, Po()) }, nl = function (t, n) { Ar(t.element, n.element) }, el = function (n, t) { var e, o = n.components(); ft((e = n).components(), function (t) { return Ir(t.element) }), Fr(e.element), e.syncComponents(); var r = X(o, t); ft(r, function (t) { Zs(t), n.getSystem().removeFromWorld(t) }), ft(t, function (t) { t.getSystem().isConnected() ? nl(n, t) : (n.getSystem().addToWorld(t), nl(n, t), Ui(n.element) && tl(t)), n.syncComponents() }) }, ol = function (t, n) { rl(t, n, Ar) }, rl = function (t, n, e) { t.getSystem().addToWorld(n), e(t.element, n.element), Ui(t.element) && tl(n), t.syncComponents() }, il = function (t) { Zs(t), Ir(t.element), t.getSystem().removeFromWorld(t) }, ul = function (n) { var t = kr(n.element).bind(function (t) { return n.getSystem().getByDom(t).toOptional() }); il(n), t.each(function (t) { t.syncComponents() }) }, al = function (t) { var n = t.components(); ft(n, il), Fr(t.element), t.syncComponents() }, cl = function (t, n) { sl(t, n, Ar) }, sl = function (t, n, e) { e(t, n.element); var o = _r(n.element); ft(o, function (t) { n.getByDom(t).each(tl) }) }, ll = function (n) { var t = _r(n.element); ft(t, function (t) { n.getByDom(t).each(Zs) }), Ir(n.element) }, fl = function (n, t, e, o) { e.get().each(function (t) { al(n) }); var r = t.getAttachPoint(n); ol(r, n); var i = n.getSystem().build(o); return ol(n, i), e.set(i), i }, dl = function (t, n, e, o) { var r = fl(t, n, e, o); return n.onOpen(t, r), r }, ml = function (n, e, o) { o.get().each(function (t) { al(n), ul(n), e.onClose(n, t), o.clear() }) }, gl = function (t, n, e) { return e.isOpen() }, pl = function (t, n, e) { var o, r, i, u, a = n.getAttachPoint(t); qi(t.element, "position", Qs.getMode(a)), o = t, r = "visibility", i = n.cloakVisibilityAttr, u = "hidden", Zi(o.element, r).fold(function () { Ur(o.element, i) }, function (t) { zr(o.element, i, t) }), qi(o.element, r, u) }, hl = function (t, n, e) { var o, r, i, u; o = t.element, F(["top", "left", "right", "bottom"], function (t) { return Zi(o, t).isSome() }) || nu(t.element, "position"), r = t, i = "visibility", u = n.cloakVisibilityAttr, Lr(r.element, u).fold(function () { return nu(r.element, i) }, function (t) { return qi(r.element, i, t) }) }, vl =/* */Object.freeze({ __proto__: null, cloak: pl, decloak: hl, open: dl, openWhileCloaked: function (t, n, e, o, r) { pl(t, n), dl(t, n, e, o), r(), hl(t, n) }, close: ml, isOpen: gl, isPartOf: function (n, e, t, o) { return gl(0, 0, t) && t.get().exists(function (t) { return e.isPartOf(n, t, o) }) }, getState: function (t, n, e) { return e.get() }, setContent: function (t, n, e, o) { return e.get().map(function () { return fl(t, n, e, o) }) } }), bl =/* */Object.freeze({ __proto__: null, events: function (e, o) { return Zo([er(Bo(), function (t, n) { ml(t, e, o) })]) } }), yl = [ga("onOpen"), ga("onClose"), Ln("isPartOf"), Ln("getAttachPoint"), ne("cloakVisibilityAttr", "data-precloak-visibility")], xl = ac({ fields: yl, name: "sandboxing", active: bl, apis: vl, state:/* */Object.freeze({ __proto__: null, init: function () { var n = fe(st.none()), t = at("not-implemented"); return di({ readState: t, isOpen: function () { return n.get().isSome() }, clear: function () { n.set(st.none()) }, set: function (t) { n.set(st.some(t)) }, get: function () { return n.get() } }) } }) }), wl = at("dismiss.popups"), Sl = at("reposition.popups"), kl = at("mouse.released"), Cl = ln([ne("isExtraPart", c), te("fireEventInstead", [ne("event", zo())])]), Ol = function (t) { var e = En("Dismissal", Cl, t), n = {}; return n[wl()] = { schema: ln([Ln("target")]), onReceive: function (n, t) { xl.isOpen(n) && (xl.isPartOf(n, t.target) || e.isExtraPart(n, t.target) || e.fireEventInstead.fold(function () { return xl.close(n) }, function (t) { return Yo(n, t.event) })) } }, n }, _l = ln([te("fireEventInstead", [ne("event", No())]), Gn("doReposition")]), Tl = function (t) { var e = En("Reposition", _l, t), n = {}; return n[Sl()] = { onReceive: function (n) { xl.isOpen(n) && e.fireEventInstead.fold(function () { return e.doReposition(n) }, function (t) { return Yo(n, t.event) }) } }, n }, El = function (t, n, e) { n.store.manager.onLoad(t, n, e) }, Dl = function (t, n, e) { n.store.manager.onUnload(t, n, e) }, Bl =/* */Object.freeze({ __proto__: null, onLoad: El, onUnload: Dl, setValue: function (t, n, e, o) { n.store.manager.setValue(t, n, e, o) }, getValue: function (t, n, e) { return n.store.manager.getValue(t, n, e) }, getState: function (t, n, e) { return e } }), Al =/* */Object.freeze({ __proto__: null, events: function (e, o) { var t = e.resetOnDom ? [sr(function (t, n) { El(t, e, o) }), lr(function (t, n) { Dl(t, e, o) })] : [tc(e, o, El)]; return Zo(t) } }), Ml = function () { var t = fe(null); return di({ set: t.set, get: t.get, isNotSet: function () { return null === t.get() }, clear: function () { t.set(null) }, readState: function () { return { mode: "memory", value: t.get() } } }) }, Fl = function () { var i = fe({}), u = fe({}); return di({ readState: function () { return { mode: "dataset", dataByValue: i.get(), dataByText: u.get() } }, lookup: function (t) { return Ft(i.get(), t).orThunk(function () { return Ft(u.get(), t) }) }, update: function (t) { var n = i.get(), e = u.get(), o = {}, r = {}; ft(t, function (n) { o[n.value] = n, Ft(n, "meta").each(function (t) { Ft(t, "text").each(function (t) { r[t] = n }) }) }), i.set(ut(ut({}, n), o)), u.set(ut(ut({}, e), r)) }, clear: function () { i.set({}), u.set({}) } }) }, Il =/* */Object.freeze({ __proto__: null, memory: Ml, dataset: Fl, manual: function () { return di({ readState: function () { } }) }, init: function (t) { return t.store.manager.state(t) } }), Rl = function (t, n, e, o) { var r = n.store; e.update([o]), r.setValue(t, o), n.onSetValue(t, o) }, Vl = [Kn("initialValue"), Ln("getFallbackEntry"), Ln("getDataKey"), Ln("setValue"), ba("manager", { setValue: Rl, getValue: function (t, n, e) { var o = n.store, r = o.getDataKey(t); return e.lookup(r).fold(function () { return o.getFallbackEntry(r) }, function (t) { return t }) }, onLoad: function (n, e, o) { e.store.initialValue.each(function (t) { Rl(n, e, o, t) }) }, onUnload: function (t, n, e) { e.clear() }, state: Fl })], Pl = [Ln("getValue"), ne("setValue", $), Kn("initialValue"), ba("manager", { setValue: function (t, n, e, o) { n.store.setValue(t, o), n.onSetValue(t, o) }, getValue: function (t, n, e) { return n.store.getValue(t) }, onLoad: function (n, e, t) { e.store.initialValue.each(function (t) { e.store.setValue(n, t) }) }, onUnload: $, state: fi.init })], Hl = [Kn("initialValue"), ba("manager", { setValue: function (t, n, e, o) { e.set(o), n.onSetValue(t, o) }, getValue: function (t, n, e) { return e.get() }, onLoad: function (t, n, e) { n.store.initialValue.each(function (t) { e.isNotSet() && e.set(t) }) }, onUnload: function (t, n, e) { e.clear() }, state: Ml })], zl = [ee("store", { mode: "memory" }, An("mode", { memory: Hl, manual: Pl, dataset: Vl })), ga("onSetValue"), ne("resetOnDom", !1)], Nl = ac({ fields: zl, name: "representing", active: Al, apis: Bl, extra: { setValueFrom: function (t, n) { var e = Nl.getValue(n); Nl.setValue(t, e) } }, state: Il }), Ll = function (o, t) { return se(o, {}, V(t, function (t) { return n = t.name(), e = "Cannot configure " + t.name() + " for " + o, bn(n, n, Gt(), sn(function (t) { return yt("The field: " + n + " is forbidden. " + e) })); var n, e }).concat([le("dump", ct)])) }, jl = function (t) { return t.dump }, Ul = function (t, n) { return ut(ut({}, t.dump), ic(n)) }, Wl = Ll, Gl = Ul, Xl = "placeholder", Yl = Vt([{ single: ["required", "valueThunk"] }, { multiple: ["required", "valueThunks"] }]), ql = function (t) { return It(t, "uiType") }, Kl = function (t, n, e, o) { return ql(e) && e.uiType === Xl ? (i = e, u = o, (r = t).exists(function (t) { return t !== i.owner }) ? Yl.single(!0, at(i)) : Ft(u, i.name).fold(function () { throw new Error("Unknown placeholder component: " + i.name + "\nKnown: [" + Ct(u) + "]\nNamespace: " + r.getOr("none") + "\nSpec: " + JSON.stringify(i, null, 2)) }, function (t) { return t.replace() })) : Yl.single(!1, at(e)); var r, i, u }, Jl = function (i, u, a, c) { return Kl(i, 0, a, c).fold(function (t, n) { var e = ql(a) ? n(u, a.config, a.validated) : n(u), o = Ft(e, "components").getOr([]), r = U(o, function (t) { return Jl(i, u, t, c) }); return [ut(ut({}, e), { components: r })] }, function (t, n) { if (ql(a)) { var e = n(u, a.config, a.validated); return a.validated.preprocess.getOr(ct)(e) } return n(u) }) }, $l = function (n, e, t, o) { var r, i, u, a = Tt(o, function (t, n) { return o = t, r = !1, { name: at(e = n), required: function () { return o.fold(function (t, n) { return t }, function (t, n) { return t }) }, used: function () { return r }, replace: function () { if (r) throw new Error("Trying to use the same placeholder more than once: " + e); return r = !0, o } }; var e, o, r }), c = (r = n, i = e, u = a, U(t, function (t) { return Jl(r, i, t, u) })); return _t(a, function (t) { if (!1 === t.used() && t.required()) throw new Error("Placeholder: " + t.name() + " was not found in components list\nNamespace: " + n.getOr("none") + "\nComponents: " + JSON.stringify(e.components, null, 2)) }), c }, Ql = Yl.single, Zl = Yl.multiple, tf = at(Xl), nf = Vt([{ required: ["data"] }, { external: ["data"] }, { optional: ["data"] }, { group: ["data"] }]), ef = ne("factory", { sketch: ct }), of = ne("schema", []), rf = Ln("name"), uf = bn("pname", "pname", Xt(function (t) { return "" }), Mn()), af = le("schema", function () { return [Kn("preprocess")] }), cf = ne("defaults", at({})), sf = ne("overrides", at({})), lf = fn([ef, of, rf, uf, cf, sf]), ff = fn([ef, of, rf, cf, sf]), df = fn([ef, of, rf, uf, cf, sf]), mf = fn([ef, af, rf, Ln("unit"), uf, cf, sf]), gf = function (t) { return t.fold(st.some, st.none, st.some, st.some) }, pf = function (t) { var n = function (t) { return t.name }; return t.fold(n, n, n, n) }, hf = function (e, o) { return function (t) { var n = En("Converting part type", o, t); return e(n) } }, vf = hf(nf.required, lf), bf = hf(nf.external, ff), yf = hf(nf.optional, df), xf = hf(nf.group, mf), wf = at("entirety"), Sf =/* */Object.freeze({ __proto__: null, required: vf, external: bf, optional: yf, group: xf, asNamedPart: gf, name: pf, asCommon: function (t) { return t.fold(ct, ct, ct, ct) }, original: wf }), kf = function (t, n, e, o) { return zt(n.defaults(t, e, o), e, { uid: t.partUids[n.name] }, n.overrides(t, e, o)) }, Cf = function (r, t) { var n = {}; return ft(t, function (t) { gf(t).each(function (e) { var o = Of(r, e.pname); n[e.name] = function (t) { var n = En("Part: " + e.name + " in " + r, fn(e.schema), t); return ut(ut({}, o), { config: t, validated: n }) } }) }), n }, Of = function (t, n) { return { uiType: tf(), owner: t, name: n } }, _f = function (t, n, e) { return { uiType: tf(), owner: t, name: n, config: e, validated: {} } }, Tf = function (t) { return U(t, function (t) { return t.fold(st.none, st.some, st.none, st.none).map(function (t) { return Xn(t.name, t.schema.concat([ya(wf())])) }).toArray() }) }, Ef = function (t) { return V(t, pf) }, Df = function (t, n, e) { return o = n, i = {}, r = {}, ft(e, function (t) { t.fold(function (o) { i[o.pname] = Ql(!0, function (t, n, e) { return o.factory.sketch(kf(t, o, n, e)) }) }, function (t) { var n = o.parts[t.name]; r[t.name] = at(t.factory.sketch(kf(o, t, n[wf()]), n)) }, function (o) { i[o.pname] = Ql(!1, function (t, n, e) { return o.factory.sketch(kf(t, o, n, e)) }) }, function (r) { i[r.pname] = Zl(!0, function (n, t, e) { var o = n[r.name]; return V(o, function (t) { return r.factory.sketch(zt(r.defaults(n, t, e), t, r.overrides(n, t))) }) }) }) }), { internals: at(i), externals: at(r) }; var o, i, r }, Bf = function (t, n, e) { return $l(st.some(t), n, n.components, e) }, Af = function (t, n, e) { var o = n.partUids[e]; return t.getSystem().getByUid(o).toOptional() }, Mf = function (t, n, e) { return Af(t, n, e).getOrDie("Could not find part: " + e) }, Ff = function (t, n, e) { var o = {}, r = n.partUids, i = t.getSystem(); return ft(e, function (t) { o[t] = at(i.getByUid(r[t])) }), o }, If = function (t, n) { var e = t.getSystem(); return Tt(n.partUids, function (t, n) { return at(e.getByUid(t)) }) }, Rf = function (t) { return Ct(t.partUids) }, Vf = function (t, n, e) { var o = {}, r = n.partUids, i = t.getSystem(); return ft(e, function (t) { o[t] = at(i.getByUid(r[t]).getOrDie()) }), o }, Pf = function (n, t) { var e = Ef(t); return $t(V(e, function (t) { return { key: t, value: n + "-" + t } })) }, Hf = function (n) { return bn("partUids", "partUids", Yt(function (t) { return Pf(t.uid, n) }), Mn()) }, zf =/* */Object.freeze({ __proto__: null, generate: Cf, generateOne: _f, schemas: Tf, names: Ef, substitutes: Df, components: Bf, defaultUids: Pf, defaultUidsSchema: Hf, getAllParts: If, getAllPartNames: Rf, getPart: Af, getPartOrDie: Mf, getParts: Ff, getPartsOrDie: Vf }), Nf = function (t, n, e, o, r) { var i, u, a = (u = r, (0 < (i = o).length ? [Xn("parts", i)] : []).concat([Ln("uid"), ne("dom", {}), ne("components", []), ya("originalSpec"), ne("debug.sketcher", {})]).concat(u)); return En(t + " [SpecSchema]", ln(a.concat(n)), e) }, Lf = function (t, n, e, o, r) { var i = jf(r), u = Tf(e), a = Hf(e), c = Nf(t, n, i, u, [a]), s = Df(0, c, e); return o(c, Bf(t, c, s.internals()), i, s.externals()) }, jf = function (t) { return It(t, "uid") ? t : ut(ut({}, t), { uid: ei("uid") }) }; var Uf, Wf, Gf = ln([Ln("name"), Ln("factory"), Ln("configFields"), ne("apis", {}), ne("extraApis", {})]), Xf = ln([Ln("name"), Ln("factory"), Ln("configFields"), Ln("partFields"), ne("apis", {}), ne("extraApis", {})]), Yf = function (t) { var i = En("Sketcher for " + t.name, Gf, t), n = Tt(i.apis, li), e = Tt(i.extraApis, ai); return ut(ut({ name: i.name, configFields: i.configFields, sketch: function (t) { return n = i.name, e = i.configFields, o = i.factory, r = jf(t), o(Nf(n, e, r, [], []), r); var n, e, o, r } }, n), e) }, qf = function (t) { var n = En("Sketcher for " + t.name, Xf, t), e = Cf(n.name, n.partFields), o = Tt(n.apis, li), r = Tt(n.extraApis, ai); return ut(ut({ name: n.name, partFields: n.partFields, configFields: n.configFields, sketch: function (t) { return Lf(n.name, n.configFields, n.partFields, n.factory, t) }, parts: e }, o), r) }, Kf = function (t) { for (var n = [], e = function (t) { n.push(t) }, o = 0; o < t.length; o++)t[o].each(e); return n }, Jf = function (t, n) { return t ? st.some(n) : st.none() }, $f = function (t) { return "input" === mr(t) && "radio" !== Nr(t, "type") || "textarea" === mr(t) }, Qf =/* */Object.freeze({ __proto__: null, getCurrent: function (t, n, e) { return n.find(t) } }), Zf = [Ln("find")], td = ac({ fields: Zf, name: "composing", apis: Qf }), nd = function (e, o, t, r) { var n = ms(e.element, "." + o.highlightClass); ft(n, function (n) { F(r, function (t) { return t.element === n }) || (Bi(n, o.highlightClass), e.getSystem().getByDom(n).each(function (t) { o.onDehighlight(e, t), Yo(t, Xo()) })) }) }, ed = function (t, n, e, o) { nd(t, n, 0, [o]), od(t, n, e, o) || (Ei(o.element, n.highlightClass), n.onHighlight(t, o), Yo(o, Go())) }, od = function (t, n, e, o) { return Ai(o.element, n.highlightClass) }, rd = function (t, n, e, o) { var r = ms(t.element, "." + n.itemClass); return st.from(r[o]).fold(function () { return mt.error("No element found with index " + o) }, t.getSystem().getByDom) }, id = function (n, t, e) { return Ku(n.element, "." + t.itemClass).bind(function (t) { return n.getSystem().getByDom(t).toOptional() }) }, ud = function (n, t, e) { var o = ms(n.element, "." + t.itemClass); return (0 < o.length ? st.some(o[o.length - 1]) : st.none()).bind(function (t) { return n.getSystem().getByDom(t).toOptional() }) }, ad = function (e, n, t, o) { var r = ms(e.element, "." + n.itemClass); return j(r, function (t) { return Ai(t, n.highlightClass) }).bind(function (t) { var n = Oc(t, o, 0, r.length - 1); return e.getSystem().getByDom(r[n]).toOptional() }) }, cd = function (n, t, e) { var o = ms(n.element, "." + t.itemClass); return Kf(V(o, function (t) { return n.getSystem().getByDom(t).toOptional() })) }, sd =/* */Object.freeze({ __proto__: null, dehighlightAll: function (t, n, e) { return nd(t, n, 0, []) }, dehighlight: function (t, n, e, o) { od(t, n, e, o) && (Bi(o.element, n.highlightClass), n.onDehighlight(t, o), Yo(o, Xo())) }, highlight: ed, highlightFirst: function (n, e, o) { id(n, e).each(function (t) { ed(n, e, o, t) }) }, highlightLast: function (n, e, o) { ud(n, e).each(function (t) { ed(n, e, o, t) }) }, highlightAt: function (n, e, o, t) { rd(n, e, o, t).fold(function (t) { throw new Error(t) }, function (t) { ed(n, e, o, t) }) }, highlightBy: function (n, e, o, t) { var r = cd(n, e); L(r, t).each(function (t) { ed(n, e, o, t) }) }, isHighlighted: od, getHighlighted: function (n, t, e) { return Ku(n.element, "." + t.highlightClass).bind(function (t) { return n.getSystem().getByDom(t).toOptional() }) }, getFirst: id, getLast: ud, getPrevious: function (t, n, e) { return ad(t, n, 0, -1) }, getNext: function (t, n, e) { return ad(t, n, 0, 1) }, getCandidates: cd }), ld = [Ln("highlightClass"), Ln("itemClass"), ga("onHighlight"), ga("onDehighlight")], fd = ac({ fields: ld, name: "highlighting", apis: sd }), dd = [8], md = [9], gd = [13], pd = [27], hd = [32], vd = [37], bd = [38], yd = [39], xd = [40], wd = function (t, n, e) { var o = G(t.slice(0, n)), r = G(t.slice(n + 1)); return L(o.concat(r), e) }, Sd = function (t, n, e) { var o = G(t.slice(0, n)); return L(o, e) }, kd = function (t, n, e) { var o = t.slice(0, n), r = t.slice(n + 1); return L(r.concat(o), e) }, Cd = function (t, n, e) { var o = t.slice(n + 1); return L(o, e) }, Od = function (e) { return function (t) { var n = t.raw; return M(e, n.which) } }, _d = function (t) { return function (n) { return W(t, function (t) { return t(n) }) } }, Td = function (t) { return !0 === t.raw.shiftKey }, Ed = function (t) { return !0 === t.raw.ctrlKey }, Dd = x(Td), Bd = function (t, n) { return { matches: t, classification: n } }, Ad = function (t, n, e) { n.exists(function (n) { return e.exists(function (t) { return Ge(t, n) }) }) || qo(t, Lo(), { prevFocus: n, newFocus: e }) }, Md = function () { var r = function (t) { return pc(t.element) }; return { get: r, set: function (t, n) { var e = r(t); t.getSystem().triggerFocus(n, t.element); var o = r(t); Ad(t, e, o) } } }, Fd = function () { var r = function (t) { return fd.getHighlighted(t).map(function (t) { return t.element }) }; return { get: r, set: function (n, t) { var e = r(n); n.getSystem().getByDom(t).fold($, function (t) { fd.highlight(n, t) }); var o = r(n); Ad(n, e, o) } } }; (Wf = Uf = Uf || {}).OnFocusMode = "onFocus", Wf.OnEnterOrSpaceMode = "onEnterOrSpace", Wf.OnApiMode = "onApi"; var Id, Rd = function (t, n, e, o, a) { var c = function (n, e, t, o, r) { var i, u, a = t(n, e, o, r); return i = a, u = e.event, L(i, function (t) { return t.matches(u) }).map(function (t) { return t.classification }).bind(function (t) { return t(n, e, o, r) }) }, r = { schema: function () { return t.concat([ne("focusManager", Md()), ee("focusInside", "onFocus", Cn(function (t) { return M(["onFocus", "onEnterOrSpace", "onApi"], t) ? mt.value(t) : mt.error("Invalid value for focusInside") })), ba("handler", r), ba("state", n), ba("sendFocusIn", a)]) }, processKey: c, toEvents: function (i, u) { var t = i.focusInside !== Uf.OnFocusMode ? st.none() : a(i).map(function (e) { return er(So(), function (t, n) { e(t, i, u), n.stop() }) }), n = [er(mo(), function (o, r) { c(o, r, e, i, u).fold(function () { var n, e, t; n = o, e = r, t = Od(hd.concat(gd))(e.event), i.focusInside === Uf.OnEnterOrSpaceMode && t && $e(n, e) && a(i).each(function (t) { t(n, i, u), e.stop() }) }, function (t) { r.stop() }) }), er(go(), function (t, n) { c(t, n, o, i, u).each(function (t) { n.stop() }) })]; return Zo(t.toArray().concat(n)) } }; return r }, Vd = function (t) { var n = [Kn("onEscape"), Kn("onEnter"), ne("selector", '[data-alloy-tabstop="true"]:not(:disabled)'), ne("firstTabstop", 0), ne("useTabstopAt", b), Kn("visibilitySelector")].concat([t]), u = function (t, n) { var e = t.visibilitySelector.bind(function (t) { return Ju(n, t) }).getOr(n); return 0 < bu(e) }, e = function (n, e, t) { var o, r, i; o = e, r = ms(n.element, o.selector), i = H(r, function (t) { return u(o, t) }), st.from(i[o.firstTabstop]).each(function (t) { e.focusManager.set(n, t) }) }, a = function (n, t, e, o, r) { return r(t, e, function (t) { return u(n = o, e = t) && n.useTabstopAt(e); var n, e }).fold(function () { return o.cyclic ? st.some(!0) : st.none() }, function (t) { return o.focusManager.set(n, t), st.some(!0) }) }, r = function (n, t, e, o) { var r, i, u = ms(n.element, e.selector); return r = n, (i = e).focusManager.get(r).bind(function (t) { return Ju(t, i.selector) }).bind(function (t) { return j(u, y(Ge, t)).bind(function (t) { return a(n, u, t, e, o) }) }) }, o = at([Bd(_d([Td, Od(md)]), function (t, n, e) { var o = e.cyclic ? wd : Sd; return r(t, 0, e, o) }), Bd(Od(md), function (t, n, e) { var o = e.cyclic ? kd : Cd; return r(t, 0, e, o) }), Bd(Od(pd), function (n, e, t) { return t.onEscape.bind(function (t) { return t(n, e) }) }), Bd(_d([Dd, Od(gd)]), function (n, e, t) { return t.onEnter.bind(function (t) { return t(n, e) }) })]), i = at([]); return Rd(n, fi.init, o, i, function () { return st.some(e) }) }, Pd = Vd(le("cyclic", c)), Hd = Vd(le("cyclic", b)), zd = function (t, n, e) { return $f(e) && Od(hd)(n.event) ? st.none() : (Jo(t, e, _o()), st.some(!0)) }, Nd = function (t, n) { return st.some(!0) }, Ld = [ne("execute", zd), ne("useSpace", !1), ne("useEnter", !0), ne("useControlEnter", !1), ne("useDown", !1)], jd = function (t, n, e) { return e.execute(t, n, t.element) }, Ud = Rd(Ld, fi.init, function (t, n, e, o) { var r = e.useSpace && !$f(t.element) ? hd : [], i = e.useEnter ? gd : [], u = e.useDown ? xd : [], a = r.concat(i).concat(u); return [Bd(Od(a), jd)].concat(e.useControlEnter ? [Bd(_d([Ed, Od(gd)]), jd)] : []) }, function (t, n, e, o) { return e.useSpace && !$f(t.element) ? [Bd(Od(hd), Nd)] : [] }, function () { return st.none() }), Wd = function () { var e = fe(st.none()); return di({ readState: function () { return e.get().map(function (t) { return { numRows: String(t.numRows), numColumns: String(t.numColumns) } }).getOr({ numRows: "?", numColumns: "?" }) }, setGridSize: function (t, n) { e.set(st.some({ numRows: t, numColumns: n })) }, getNumRows: function () { return e.get().map(function (t) { return t.numRows }) }, getNumColumns: function () { return e.get().map(function (t) { return t.numColumns }) } }) }, Gd =/* */Object.freeze({ __proto__: null, flatgrid: Wd, init: function (t) { return t.state(t) } }), Xd = function (i) { return function (t, n, e, o) { var r = i(t.element); return Jd(r, t, n, e, o) } }, Yd = function (t, n) { var e = Nc(t, n); return Xd(e) }, qd = function (t, n) { var e = Nc(n, t); return Xd(e) }, Kd = function (r) { return function (t, n, e, o) { return Jd(r, t, n, e, o) } }, Jd = function (n, e, t, o, r) { return o.focusManager.get(e).bind(function (t) { return n(e.element, t, o, r) }).map(function (t) { return o.focusManager.set(e, t), !0 }) }, $d = Kd, Qd = Kd, Zd = Kd, tm = function (t) { return !((n = t.dom).offsetWidth <= 0 && n.offsetHeight <= 0); var n }, nm = function (t, n, e) { var o, r = ms(t, e), i = H(r, tm); return j(o = i, function (t) { return Ge(t, n) }).map(function (t) { return { index: t, candidates: o } }) }, em = function (t, n) { return j(t, function (t) { return Ge(n, t) }) }, om = function (e, t, o, n) { return n(Math.floor(t / o), t % o).bind(function (t) { var n = t.row * o + t.column; return 0 <= n && n < e.length ? st.some(e[n]) : st.none() }) }, rm = function (r, t, i, u, a) { return om(r, t, u, function (t, n) { var e = t === i - 1 ? r.length - t * u : u, o = Oc(n, a, 0, e - 1); return st.some({ row: t, column: o }) }) }, im = function (i, t, u, a, c) { return om(i, t, a, function (t, n) { var e = Oc(t, c, 0, u - 1), o = e === u - 1 ? i.length - e * a : a, r = _c(n, 0, o - 1); return st.some({ row: e, column: r }) }) }, um = [Ln("selector"), ne("execute", zd), pa("onEscape"), ne("captureTab", !1), xa()], am = function (n, e, t) { Ku(n.element, e.selector).each(function (t) { e.focusManager.set(n, t) }) }, cm = function (r) { return function (t, n, e, o) { return nm(t, n, e.selector).bind(function (t) { return r(t.candidates, t.index, o.getNumRows().getOr(e.initSize.numRows), o.getNumColumns().getOr(e.initSize.numColumns)) }) } }, sm = function (t, n, e) { return e.captureTab ? st.some(!0) : st.none() }, lm = cm(function (t, n, e, o) { return rm(t, n, e, o, -1) }), fm = cm(function (t, n, e, o) { return rm(t, n, e, o, 1) }), dm = cm(function (t, n, e, o) { return im(t, n, e, o, -1) }), mm = cm(function (t, n, e, o) { return im(t, n, e, o, 1) }), gm = at([Bd(Od(vd), Yd(lm, fm)), Bd(Od(yd), qd(lm, fm)), Bd(Od(bd), $d(dm)), Bd(Od(xd), Qd(mm)), Bd(_d([Td, Od(md)]), sm), Bd(_d([Dd, Od(md)]), sm), Bd(Od(pd), function (t, n, e) { return e.onEscape(t, n) }), Bd(Od(hd.concat(gd)), function (n, e, o, t) { return r = n, (i = o).focusManager.get(r).bind(function (t) { return Ju(t, i.selector) }).bind(function (t) { return o.execute(n, e, t) }); var r, i })]), pm = at([Bd(Od(hd), Nd)]), hm = Rd(um, Wd, gm, pm, function () { return st.some(am) }), vm = function (t, n, e, i) { var u = function (t, n, e) { var o, r = Oc(n, i, 0, e.length - 1); return r === t ? st.none() : (o = e[r], "button" === mr(o) && "disabled" === Nr(o, "disabled") ? u(t, r, e) : st.from(e[r])) }; return nm(t, e, n).bind(function (t) { var n = t.index, e = t.candidates; return u(n, n, e) }) }, bm = [Ln("selector"), ne("getInitial", st.none), ne("execute", zd), pa("onEscape"), ne("executeOnMove", !1), ne("allowVertical", !0)], ym = function (n, e, o) { return t = n, (r = o).focusManager.get(t).bind(function (t) { return Ju(t, r.selector) }).bind(function (t) { return o.execute(n, e, t) }); var t, r }, xm = function (n, e, t) { e.getInitial(n).orThunk(function () { return Ku(n.element, e.selector) }).each(function (t) { e.focusManager.set(n, t) }) }, wm = function (t, n, e) { return vm(t, e.selector, n, -1) }, Sm = function (t, n, e) { return vm(t, e.selector, n, 1) }, km = function (r) { return function (t, n, e, o) { return r(t, n, e, o).bind(function () { return e.executeOnMove ? ym(t, n, e) : st.some(!0) }) } }, Cm = function (t, n, e) { return e.onEscape(t, n) }, Om = at([Bd(Od(hd), Nd)]), _m = Rd(bm, fi.init, function (t, n, e, o) { var r = vd.concat(e.allowVertical ? bd : []), i = yd.concat(e.allowVertical ? xd : []); return [Bd(Od(r), km(Yd(wm, Sm))), Bd(Od(i), km(qd(wm, Sm))), Bd(Od(gd), ym), Bd(Od(hd), ym), Bd(Od(pd), Cm)] }, Om, function () { return st.some(xm) }), Tm = function (t, n, e) { return st.from(t[n]).bind(function (t) { return st.from(t[e]).map(function (t) { return { rowIndex: n, columnIndex: e, cell: t } }) }) }, Em = function (t, n, e, o) { var r = t[n].length, i = Oc(e, o, 0, r - 1); return Tm(t, n, i) }, Dm = function (t, n, e, o) { var r = Oc(e, o, 0, t.length - 1), i = t[r].length, u = _c(n, 0, i - 1); return Tm(t, r, u) }, Bm = function (t, n, e, o) { var r = t[n].length, i = _c(e + o, 0, r - 1); return Tm(t, n, i) }, Am = function (t, n, e, o) { var r = _c(e + o, 0, t.length - 1), i = t[r].length, u = _c(n, 0, i - 1); return Tm(t, r, u) }, Mm = [Xn("selectors", [Ln("row"), Ln("cell")]), ne("cycles", !0), ne("previousSelector", st.none), ne("execute", zd)], Fm = function (n, e, t) { e.previousSelector(n).orThunk(function () { var t = e.selectors; return Ku(n.element, t.cell) }).each(function (t) { e.focusManager.set(n, t) }) }, Im = function (t, n) { return function (e, o, i) { var u = i.cycles ? t : n; return Ju(o, i.selectors.row).bind(function (t) { var n = ms(t, i.selectors.cell); return em(n, o).bind(function (o) { var r = ms(e, i.selectors.row); return em(r, t).bind(function (t) { var n, e = (n = i, V(r, function (t) { return ms(t, n.selectors.cell) })); return u(e, t, o).map(function (t) { return t.cell }) }) }) }) } }, Rm = Im(function (t, n, e) { return Em(t, n, e, -1) }, function (t, n, e) { return Bm(t, n, e, -1) }), Vm = Im(function (t, n, e) { return Em(t, n, e, 1) }, function (t, n, e) { return Bm(t, n, e, 1) }), Pm = Im(function (t, n, e) { return Dm(t, e, n, -1) }, function (t, n, e) { return Am(t, e, n, -1) }), Hm = Im(function (t, n, e) { return Dm(t, e, n, 1) }, function (t, n, e) { return Am(t, e, n, 1) }), zm = at([Bd(Od(vd), Yd(Rm, Vm)), Bd(Od(yd), qd(Rm, Vm)), Bd(Od(bd), $d(Pm)), Bd(Od(xd), Qd(Hm)), Bd(Od(hd.concat(gd)), function (n, e, o) { return pc(n.element).bind(function (t) { return o.execute(n, e, t) }) })]), Nm = at([Bd(Od(hd), Nd)]), Lm = Rd(Mm, fi.init, zm, Nm, function () { return st.some(Fm) }), jm = [Ln("selector"), ne("execute", zd), ne("moveOnTab", !1)], Um = function (n, e, o) { return o.focusManager.get(n).bind(function (t) { return o.execute(n, e, t) }) }, Wm = function (n, e, t) { Ku(n.element, e.selector).each(function (t) { e.focusManager.set(n, t) }) }, Gm = function (t, n, e) { return vm(t, e.selector, n, -1) }, Xm = function (t, n, e) { return vm(t, e.selector, n, 1) }, Ym = at([Bd(Od(bd), Zd(Gm)), Bd(Od(xd), Zd(Xm)), Bd(_d([Td, Od(md)]), function (t, n, e, o) { return e.moveOnTab ? Zd(Gm)(t, n, e, o) : st.none() }), Bd(_d([Dd, Od(md)]), function (t, n, e, o) { return e.moveOnTab ? Zd(Xm)(t, n, e, o) : st.none() }), Bd(Od(gd), Um), Bd(Od(hd), Um)]), qm = at([Bd(Od(hd), Nd)]), Km = Rd(jm, fi.init, Ym, qm, function () { return st.some(Wm) }), Jm = [pa("onSpace"), pa("onEnter"), pa("onShiftEnter"), pa("onLeft"), pa("onRight"), pa("onTab"), pa("onShiftTab"), pa("onUp"), pa("onDown"), pa("onEscape"), ne("stopSpaceKeyup", !1), Kn("focusIn")], $m = Rd(Jm, fi.init, function (t, n, e) { return [Bd(Od(hd), e.onSpace), Bd(_d([Dd, Od(gd)]), e.onEnter), Bd(_d([Td, Od(gd)]), e.onShiftEnter), Bd(_d([Td, Od(md)]), e.onShiftTab), Bd(_d([Dd, Od(md)]), e.onTab), Bd(Od(bd), e.onUp), Bd(Od(xd), e.onDown), Bd(Od(vd), e.onLeft), Bd(Od(yd), e.onRight), Bd(Od(hd), e.onSpace), Bd(Od(pd), e.onEscape)] }, function (t, n, e) { return e.stopSpaceKeyup ? [Bd(Od(hd), Nd)] : [] }, function (t) { return t.focusIn }), Qm = Pd.schema(), Zm = Hd.schema(), tg = _m.schema(), ng = hm.schema(), eg = Lm.schema(), og = Ud.schema(), rg = Km.schema(), ig = $m.schema(), ug = sc({ branchKey: "mode", branches:/* */Object.freeze({ __proto__: null, acyclic: Qm, cyclic: Zm, flow: tg, flatgrid: ng, matrix: eg, execution: og, menu: rg, special: ig }), name: "keying", active: { events: function (t, n) { return t.handler.toEvents(t, n) } }, apis: { focusIn: function (n, e, o) { e.sendFocusIn(e).fold(function () { n.getSystem().triggerFocus(n.element, n.element) }, function (t) { t(n, e, o) }) }, setGridSize: function (t, n, e, o, r) { Rt(e, "setGridSize") ? e.setGridSize(o, r) : console.error("Layout does not support setGridSize") } }, state: Gd }), ag = function (t, n, e, o) { var r = t.getSystem().build(o); rl(t, r, e) }, cg = function (t, n, e, o) { var r = sg(t); L(r, function (t) { return Ge(o.element, t.element) }).each(ul) }, sg = function (t, n) { return t.components() }, lg = function (n, t, e, r, o) { var i = sg(n); return st.from(i[r]).map(function (t) { return cg(n, 0, 0, t), o.each(function (t) { ag(n, 0, function (t, n) { var e, o; o = n, Tr(e = t, r).fold(function () { Ar(e, o) }, function (t) { Er(t, o) }) }, t) }), t }) }, fg = ac({ fields: [], name: "replacing", apis:/* */Object.freeze({ __proto__: null, append: function (t, n, e, o) { ag(t, 0, Ar, o) }, prepend: function (t, n, e, o) { ag(t, 0, Br, o) }, remove: cg, replaceAt: lg, replaceBy: function (n, t, e, o, r) { var i = sg(n); return j(i, o).bind(function (t) { return lg(n, 0, 0, t, r) }) }, set: function (n, t, e, o) { hc(function () { var t = V(o, n.getSystem().build); el(n, t) }, n.element) }, contents: sg }) }), dg = function (t, n) { var e, o; return { key: t, value: { config: {}, me: (e = t, o = Zo(n), ac({ fields: [Ln("enabled")], name: e, active: { events: at(o) } })), configAsRaw: at({}), initialConfig: {}, state: fi } } }, mg = function (t, n) { n.ignore || (mc(t.element), n.onFocus(t)) }, gg =/* */Object.freeze({ __proto__: null, focus: mg, blur: function (t, n) { n.ignore || t.element.dom.blur() }, isFocused: function (t) { return n = t.element, e = Hi(n).dom, n.dom === e.activeElement; var n, e } }), pg =/* */Object.freeze({ __proto__: null, exhibit: function (t, n) { var e = n.ignore ? {} : { attributes: { tabindex: "-1" } }; return gi(e) }, events: function (e) { return Zo([er(So(), function (t, n) { mg(t, e), n.stop() })].concat(e.stopMousedown ? [er(io(), function (t, n) { n.event.prevent() })] : [])) } }), hg = [ga("onFocus"), ne("stopMousedown", !1), ne("ignore", !1)], vg = ac({ fields: hg, name: "focusing", active: pg, apis: gg }), bg = function (t, n, e) { var o = n.aria; o.update(t, o, e.get()) }, yg = function (n, t, e) { t.toggleClass.each(function (t) { (e.get() ? Ei : Bi)(n.element, t) }) }, xg = function (t, n, e) { kg(t, n, e, !e.get()) }, wg = function (t, n, e) { e.set(!0), yg(t, n, e), bg(t, n, e) }, Sg = function (t, n, e) { e.set(!1), yg(t, n, e), bg(t, n, e) }, kg = function (t, n, e, o) { (o ? wg : Sg)(t, n, e) }, Cg = function (t, n, e) { kg(t, n, e, n.selected) }, Og =/* */Object.freeze({ __proto__: null, onLoad: Cg, toggle: xg, isOn: function (t, n, e) { return e.get() }, on: wg, off: Sg, set: kg }), _g =/* */Object.freeze({ __proto__: null, exhibit: function () { return gi({}) }, events: function (t, n) { var e, o, r, i = (e = t, o = n, r = xg, dr(function (t) { r(t, e, o) })), u = tc(t, n, Cg); return Zo(dt([t.toggleOnExecute ? [i] : [], [u]])) } }), Tg = function (t, n, e) { zr(t.element, "aria-expanded", e) }, Eg = [ne("selected", !1), Kn("toggleClass"), ne("toggleOnExecute", !0), ee("aria", { mode: "none" }, An("mode", { pressed: [ne("syncWithExpanded", !1), ba("update", function (t, n, e) { zr(t.element, "aria-pressed", e), n.syncWithExpanded && Tg(t, n, e) })], checked: [ba("update", function (t, n, e) { zr(t.element, "aria-checked", e) })], expanded: [ba("update", Tg)], selected: [ba("update", function (t, n, e) { zr(t.element, "aria-selected", e) })], none: [ba("update", $)] }))], Dg = ac({ fields: Eg, name: "toggling", active: _g, apis: Og, state: (Id = !1, { init: function () { var n = fe(Id); return { get: function () { return n.get() }, set: function (t) { return n.set(t) }, clear: function () { return n.set(Id) }, readState: function () { return n.get() } } } }) }), Bg = function () { var t = function (t, n) { n.stop(), Ko(t) }; return [er(vo(), t), er(Eo(), t), ar(no()), ar(io())] }, Ag = function (t) { return Zo(dt([t.map(function (e) { return dr(function (t, n) { e(t), n.stop() }) }).toArray(), Bg()])) }, Mg = "alloy.item-hover", Fg = "alloy.item-focus", Ig = function (t) { (pc(t.element).isNone() || vg.isFocused(t)) && (vg.isFocused(t) || vg.focus(t), qo(t, Mg, { item: t })) }, Rg = function (t) { qo(t, Fg, { item: t }) }, Vg = at(Mg), Pg = at(Fg), Hg = [Ln("data"), Ln("components"), Ln("dom"), ne("hasSubmenu", !1), Kn("toggling"), Wl("itemBehaviours", [Dg, vg, ug, Nl]), ne("ignoreFocus", !1), ne("domModification", {}), ba("builder", function (t) { return { dom: t.dom, domModification: ut(ut({}, t.domModification), { attributes: ut(ut(ut({ role: t.toggling.isSome() ? "menuitemcheckbox" : "menuitem" }, t.domModification.attributes), { "aria-haspopup": t.hasSubmenu }), t.hasSubmenu ? { "aria-expanded": !1 } : {}) }), behaviours: Gl(t.itemBehaviours, [t.toggling.fold(Dg.revoke, function (t) { return Dg.config(ut({ aria: { mode: "checked" } }, t)) }), vg.config({ ignore: t.ignoreFocus, stopMousedown: t.ignoreFocus, onFocus: function (t) { Rg(t) } }), ug.config({ mode: "execution" }), Nl.config({ store: { mode: "memory", initialValue: t.data } }), dg("item-type-events", S(Bg(), [er(so(), Ig), er(To(), vg.focus)]))]), components: t.components, eventOrder: t.eventOrder } }), ne("eventOrder", {})], zg = [Ln("dom"), Ln("components"), ba("builder", function (t) { return { dom: t.dom, components: t.components, events: Zo([(n = To(), er(n, function (t, n) { n.stop() }))]) }; var n })], Ng = function () { return "item-widget" }, Lg = at([vf({ name: "widget", overrides: function (n) { return { behaviours: ic([Nl.config({ store: { mode: "manual", getValue: function (t) { return n.data }, setValue: function () { } } })]) } } })]), jg = [Ln("uid"), Ln("data"), Ln("components"), Ln("dom"), ne("autofocus", !1), ne("ignoreFocus", !1), Wl("widgetBehaviours", [Nl, vg, ug]), ne("domModification", {}), Hf(Lg()), ba("builder", function (e) { var t = Df(Ng(), e, Lg()), n = Bf(Ng(), e, t.internals()), o = function (t) { return Af(t, e, "widget").map(function (t) { return ug.focusIn(t), t }) }, r = function (t, n) { return $f(n.event.target) || e.autofocus && n.setSource(t.element), st.none() }; return { dom: e.dom, components: n, domModification: e.domModification, events: Zo([dr(function (t, n) { o(t).each(function (t) { n.stop() }) }), er(so(), Ig), er(To(), function (t, n) { e.autofocus ? o(t) : vg.focus(t) })]), behaviours: Gl(e.widgetBehaviours, [Nl.config({ store: { mode: "memory", initialValue: e.data } }), vg.config({ ignore: e.ignoreFocus, onFocus: function (t) { Rg(t) } }), ug.config({ mode: "special", focusIn: e.autofocus ? function (t) { o(t) } : lc(), onLeft: r, onRight: r, onEscape: function (t, n) { return vg.isFocused(t) || e.autofocus ? (e.autofocus && n.setSource(t.element), st.none()) : (vg.focus(t), st.some(!0)) } })]) } })], Ug = An("type", { widget: jg, item: Hg, separator: zg }), Wg = at([xf({ factory: { sketch: function (t) { var n = En("menu.spec item", Ug, t); return n.builder(n) } }, name: "items", unit: "item", defaults: function (t, n) { return n.hasOwnProperty("uid") ? n : ut(ut({}, n), { uid: ei("item") }) }, overrides: function (t, n) { return { type: n.type, ignoreFocus: t.fakeFocus, domModification: { classes: [t.markers.item] } } } })]), Gg = at([Ln("value"), Ln("items"), Ln("dom"), Ln("components"), ne("eventOrder", {}), Ll("menuBehaviours", [fd, Nl, td, ug]), ee("movement", { mode: "menu", moveOnTab: !0 }, An("mode", { grid: [xa(), ba("config", function (t, n) { return { mode: "flatgrid", selector: "." + t.markers.item, initSize: { numColumns: n.initSize.numColumns, numRows: n.initSize.numRows }, focusManager: t.focusManager } })], matrix: [ba("config", function (t, n) { return { mode: "matrix", selectors: { row: n.rowSelector, cell: "." + t.markers.item }, focusManager: t.focusManager } }), Ln("rowSelector")], menu: [ne("moveOnTab", !0), ba("config", function (t, n) { return { mode: "menu", selector: "." + t.markers.item, moveOnTab: n.moveOnTab, focusManager: t.focusManager } })] })), jn("markers", sa()), ne("fakeFocus", !1), ne("focusManager", Md()), ga("onHighlight")]), Xg = at("alloy.menu-focus"), Yg = qf({ name: "Menu", configFields: Gg(), partFields: Wg(), factory: function (t, n, e, o) { return { uid: t.uid, dom: t.dom, markers: t.markers, behaviours: Ul(t.menuBehaviours, [fd.config({ highlightClass: t.markers.selectedItem, itemClass: t.markers.item, onHighlight: t.onHighlight }), Nl.config({ store: { mode: "memory", initialValue: t.value } }), td.config({ find: st.some }), ug.config(t.movement.config(t, t.movement))]), events: Zo([er(Pg(), function (n, e) { var t = e.event; n.getSystem().getByDom(t.target).each(function (t) { fd.highlight(n, t), e.stop(), qo(n, Xg(), { menu: n, item: t }) }) }), er(Vg(), function (t, n) { var e = n.event.item; fd.highlight(t, e) })]), components: n, eventOrder: t.eventOrder, domModification: { attributes: { role: "menu" } } } } }), qg = function (e, o, r, t) { return Ft(r, t).bind(function (t) { return Ft(e, t).bind(function (t) { var n = qg(e, o, r, t); return st.some([t].concat(n)) }) }).getOr([]) }, Kg = function (t, n) { var e = {}; _t(t, function (t, n) { ft(t, function (t) { e[t] = n }) }); var o = n, r = Et(n, function (t, n) { return { k: t, v: n } }), i = Tt(r, function (t, n) { return [n].concat(qg(e, o, r, n)) }); return Tt(e, function (t) { return Ft(i, t).getOr([t]) }) }, Jg = function (t) { return "prepared" === t.type ? st.some(t.menu) : st.none() }, $g = { init: function () { var i = fe({}), u = fe({}), a = fe({}), c = fe(st.none()), s = fe({}), r = function (t, o, r) { return e(t).bind(function (n) { return e = t, At(i.get(), function (t, n) { return t === e }).bind(function (t) { return o(t).map(function (t) { return { triggeredMenu: n, triggeringItem: t, triggeringPath: r } }) }); var e }) }, e = function (t) { return n(t).bind(Jg) }, n = function (t) { return Ft(u.get(), t) }, l = function (t) { return Ft(i.get(), t) }; return { setMenuBuilt: function (t, n) { var e; u.set(ut(ut({}, u.get()), ((e = {})[t] = { type: "prepared", menu: n }, e))) }, setContents: function (t, n, e, o) { c.set(st.some(t)), i.set(e), u.set(n), s.set(o); var r = Kg(o, e); a.set(r) }, expand: function (e) { return Ft(i.get(), e).map(function (t) { var n = Ft(a.get(), e).getOr([]); return [t].concat(n) }) }, refresh: function (t) { return Ft(a.get(), t) }, collapse: function (t) { return Ft(a.get(), t).bind(function (t) { return 1 < t.length ? st.some(t.slice(1)) : st.none() }) }, lookupMenu: n, lookupItem: l, otherMenus: function (t) { var n = s.get(); return X(Ct(n), t) }, getPrimary: function () { return c.get().bind(e) }, getMenus: function () { return u.get() }, clear: function () { i.set({}), u.set({}), a.set({}), c.set(st.none()) }, isClear: function () { return c.get().isNone() }, getTriggeringPath: function (t, o) { var n = H(l(t).toArray(), function (t) { return e(t).isSome() }); return Ft(a.get(), t).bind(function (t) { var e = G(n.concat(t)); return function (t) { for (var n = [], e = 0; e < t.length; e++) { var o = t[e]; if (!o.isSome()) return st.none(); n.push(o.getOrDie()) } return st.some(n) }(U(e, function (t, n) { return r(t, o, e.slice(0, n + 1)).fold(function () { return c.get().is(t) ? [] : [st.none()] }, function (t) { return [st.some(t)] }) })) }) } } }, extractPreparedMenu: Jg }, Qg = at("collapse-item"), Zg = Yf({ name: "TieredMenu", configFields: [va("onExecute"), va("onEscape"), ha("onOpenMenu"), ha("onOpenSubmenu"), ga("onRepositionMenu"), ga("onCollapseMenu"), ne("highlightImmediately", !0), Xn("data", [Ln("primary"), Ln("menus"), Ln("expansions")]), ne("fakeFocus", !1), ga("onHighlight"), ga("onHover"), fa(), Ln("dom"), ne("navigateOnHover", !0), ne("stayInDom", !1), Ll("tmenuBehaviours", [ug, fd, td, fg]), ne("eventOrder", {})], apis: { collapseMenu: function (t, n) { t.collapseMenu(n) }, highlightPrimary: function (t, n) { t.highlightPrimary(n) }, repositionMenus: function (t, n) { t.repositionMenus(n) } }, factory: function (a, t) { var c, n, i = fe(st.none()), s = $g.init(), e = function (t) { var o, r, n, e = (o = t, r = a.data.primary, n = a.data.menus, Tt(n, function (t, n) { var e = function () { return Yg.sketch(ut(ut({}, t), { value: n, markers: a.markers, fakeFocus: a.fakeFocus, onHighlight: a.onHighlight, focusManager: (a.fakeFocus ? Fd : Md)() })) }; return n === r ? { type: "prepared", menu: o.getSystem().build(e()) } : { type: "notbuilt", nbMenu: e } })), i = u(); return s.setContents(a.data.primary, e, a.data.expansions, i), s.getPrimary() }, l = function (t) { return Nl.getValue(t).value }, u = function (t) { return Tt(a.data.menus, function (t, n) { return U(t.items, function (t) { return "separator" === t.type ? [] : [t.data.value] }) }) }, f = function (n, t) { fd.highlight(n, t), fd.getHighlighted(t).orThunk(function () { return fd.getFirst(t) }).each(function (t) { Jo(n, t.element, To()) }) }, d = function (n, t) { return Kf(V(t, function (t) { return n.lookupMenu(t).bind(function (t) { return "prepared" === t.type ? st.some(t.menu) : st.none() }) })) }, m = function (n, t, e) { var o = d(t, t.otherMenus(e)); ft(o, function (t) { Fi(t.element, [a.markers.backgroundMenu]), a.stayInDom || fg.remove(n, t) }) }, g = function (t, o) { var r, n = (r = t, i.get().getOrThunk(function () { var e = {}, t = ms(r.element, "." + a.markers.item), n = H(t, function (t) { return "true" === Nr(t, "aria-haspopup") }); return ft(n, function (t) { r.getSystem().getByDom(t).each(function (t) { var n = l(t); e[n] = t }) }), i.set(st.some(e)), e })); _t(n, function (t, n) { var e = M(o, n); zr(t.element, "aria-expanded", e) }) }, p = function (o, r, i) { return st.from(i[0]).bind(function (t) { return r.lookupMenu(t).bind(function (t) { if ("notbuilt" === t.type) return st.none(); var n = t.menu, e = d(r, i.slice(1)); return ft(e, function (t) { Ei(t.element, a.markers.backgroundMenu) }), Ui(n.element) || fg.append(o, pu(n)), Fi(n.element, [a.markers.backgroundMenu]), f(o, n), m(o, r, i), st.some(n) }) }) }; (n = c = c || {})[n.HighlightSubmenu = 0] = "HighlightSubmenu", n[n.HighlightParent = 1] = "HighlightParent"; var h = function (r, i, u) { void 0 === u && (u = c.HighlightSubmenu); var t = l(i); return s.expand(t).bind(function (o) { return g(r, o), st.from(o[0]).bind(function (e) { return s.lookupMenu(e).bind(function (t) { var n = function (t, n, e) { if ("notbuilt" !== e.type) return e.menu; var o = t.getSystem().build(e.nbMenu()); return s.setMenuBuilt(n, o), o }(r, e, t); return Ui(n.element) || fg.append(r, pu(n)), a.onOpenSubmenu(r, i, n, G(o)), u === c.HighlightSubmenu ? (fd.highlightFirst(n), p(r, s, o)) : (fd.dehighlightAll(n), st.some(i)) }) }) }) }, o = function (n, e) { var t = l(e); return s.collapse(t).bind(function (t) { return g(n, t), p(n, s, t).map(function (t) { return a.onCollapseMenu(n, e, t), t }) }) }, r = function (e) { return function (n, t) { return Ju(t.getSource(), "." + a.markers.item).bind(function (t) { return n.getSystem().getByDom(t).toOptional().bind(function (t) { return e(n, t).map(function () { return !0 }) }) }) } }, v = Zo([er(Xg(), function (e, o) { var t = o.event.item; s.lookupItem(l(t)).each(function () { var t = o.event.menu; fd.highlight(e, t); var n = l(o.event.item); s.refresh(n).each(function (t) { return m(e, s, t) }) }) }), dr(function (n, t) { var e = t.event.target; n.getSystem().getByDom(e).each(function (t) { 0 === l(t).indexOf("collapse-item") && o(n, t), h(n, t, c.HighlightSubmenu).fold(function () { a.onExecute(n, t) }, function () { }) }) }), sr(function (n, t) { e(n).each(function (t) { fg.append(n, pu(t)), a.onOpenMenu(n, t), a.highlightImmediately && f(n, t) }) })].concat(a.navigateOnHover ? [er(Vg(), function (t, n) { var e, o, r = n.event.item; e = t, o = l(r), s.refresh(o).bind(function (t) { return g(e, t), p(e, s, t) }), h(t, r, c.HighlightParent), a.onHover(t, r) })] : [])), b = function (t) { return fd.getHighlighted(t).bind(fd.getHighlighted) }, y = { collapseMenu: function (n) { b(n).each(function (t) { o(n, t) }) }, highlightPrimary: function (n) { s.getPrimary().each(function (t) { f(n, t) }) }, repositionMenus: function (o) { s.getPrimary().bind(function (n) { return b(o).bind(function (t) { var n = l(t), e = Mt(s.getMenus()), o = Kf(V(e, $g.extractPreparedMenu)); return s.getTriggeringPath(n, function (t) { return e = t, Z(o, function (t) { if (!t.getSystem().isConnected()) return st.none(); var n = fd.getCandidates(t); return L(n, function (t) { return l(t) === e }) }); var e }) }).map(function (t) { return { primary: n, triggeringPath: t } }) }).fold(function () { var t; t = o, st.from(t.components()[0]).filter(function (t) { return "menu" === Nr(t.element, "role") }).each(function (t) { a.onRepositionMenu(o, t, []) }) }, function (t) { var n = t.primary, e = t.triggeringPath; a.onRepositionMenu(o, n, e) }) } }; return { uid: a.uid, dom: a.dom, markers: a.markers, behaviours: Ul(a.tmenuBehaviours, [ug.config({ mode: "special", onRight: r(function (t, n) { return $f(n.element) ? st.none() : h(t, n, c.HighlightSubmenu) }), onLeft: r(function (t, n) { return $f(n.element) ? st.none() : o(t, n) }), onEscape: r(function (t, n) { return o(t, n).orThunk(function () { return a.onEscape(t, n).map(function () { return t }) }) }), focusIn: function (n, t) { s.getPrimary().each(function (t) { Jo(n, t.element, To()) }) } }), fd.config({ highlightClass: a.markers.selectedMenu, itemClass: a.markers.menu }), td.config({ find: function (t) { return fd.getHighlighted(t) } }), fg.config({})]), eventOrder: a.eventOrder, apis: y, events: v } }, extraApis: { tieredData: function (t, n, e) { return { primary: t, menus: n, expansions: e } }, singleData: function (t, n) { return { primary: t, menus: Jt(t, n), expansions: {} } }, collapseItem: function (t) { return { value: Kr(Qg()), meta: { text: t } } } } }), tp = Yf({ name: "InlineView", configFields: [Ln("lazySink"), ga("onShow"), ga("onHide"), Zn("onEscape"), Ll("inlineBehaviours", [xl, Nl, fc]), te("fireDismissalEventInstead", [ne("event", zo())]), te("fireRepositionEventInstead", [ne("event", No())]), ne("getRelated", st.none), ne("isExtraPart", c), ne("eventOrder", st.none)], factory: function (m, t) { var o = function (t, n, e, o) { r(t, n, e, function () { return o.map(zu) }) }, r = function (t, n, e, o) { var r = m.lazySink(t).getOrDie(); xl.openWhileCloaked(t, e, function () { return Qs.positionWithinBounds(r, n, t, o()) }), Nl.setValue(t, st.some({ mode: "position", anchor: n, getBounds: o })) }, i = function (t, n, e, o) { var r, i, u, a, c, s, l, f, d = (r = m, i = t, u = n, c = o, s = function () { return r.lazySink(i) }, l = "horizontal" === (a = e).type ? { layouts: { onLtr: Ja, onRtl: $a } } : {}, f = function (t) { return 2 === t.length ? l : {} }, Zg.sketch({ dom: { tag: "div" }, data: a.data, markers: a.menu.markers, highlightImmediately: a.menu.highlightImmediately, onEscape: function () { return xl.close(i), r.onEscape.map(function (t) { return t(i) }), st.some(!0) }, onExecute: function () { return st.some(!0) }, onOpenMenu: function (t, n) { Qs.positionWithinBounds(s().getOrDie(), u, n, c()) }, onOpenSubmenu: function (t, n, e, o) { var r = s().getOrDie(); Qs.position(r, ut({ anchor: "submenu", item: n }, f(o)), e) }, onRepositionMenu: function (t, n, e) { var o = s().getOrDie(); Qs.positionWithinBounds(o, u, n, c()), ft(e, function (t) { var n = f(t.triggeringPath); Qs.position(o, ut({ anchor: "submenu", item: t.triggeringItem }, n), t.triggeredMenu) }) } })); xl.open(t, d), Nl.setValue(t, st.some({ mode: "menu", menu: d })) }, n = function (e) { xl.isOpen(e) && Nl.getValue(e).each(function (t) { switch (t.mode) { case "menu": xl.getState(e).each(function (t) { Zg.repositionMenus(t) }); break; case "position": var n = m.lazySink(e).getOrDie(); Qs.positionWithinBounds(n, t.anchor, e, t.getBounds()) } }) }, e = { setContent: function (t, n) { xl.setContent(t, n) }, showAt: function (t, n, e) { o(t, n, e, st.none()) }, showWithin: o, showWithinBounds: r, showMenuAt: function (t, n, e) { i(t, n, e, function () { return st.none() }) }, showMenuWithinBounds: i, hide: function (t) { xl.isOpen(t) && (Nl.setValue(t, st.none()), xl.close(t)) }, getContent: function (t) { return xl.getState(t) }, reposition: n, isOpen: xl.isOpen }; return { uid: m.uid, dom: m.dom, behaviours: Ul(m.inlineBehaviours, [xl.config({ isPartOf: function (t, n, e) { return Zu(n, e) || (o = t, r = e, m.getRelated(o).exists(function (t) { return Zu(t, r) })); var o, r }, getAttachPoint: function (t) { return m.lazySink(t).getOrDie() }, onOpen: function (t) { m.onShow(t) }, onClose: function (t) { m.onHide(t) } }), Nl.config({ store: { mode: "memory", initialValue: st.none() } }), fc.config({ channels: ut(ut({}, Ol(ut({ isExtraPart: t.isExtraPart }, m.fireDismissalEventInstead.map(function (t) { return { fireEventInstead: { event: t.event } } }).getOr({})))), Tl(ut(ut({}, m.fireRepositionEventInstead.map(function (t) { return { fireEventInstead: { event: t.event } } }).getOr({})), { doReposition: n }))) })]), eventOrder: m.eventOrder, apis: e } }, apis: { showAt: function (t, n, e, o) { t.showAt(n, e, o) }, showWithin: function (t, n, e, o, r) { t.showWithin(n, e, o, r) }, showWithinBounds: function (t, n, e, o, r) { t.showWithinBounds(n, e, o, r) }, showMenuAt: function (t, n, e, o) { t.showMenuAt(n, e, o) }, showMenuWithinBounds: function (t, n, e, o, r) { t.showMenuWithinBounds(n, e, o, r) }, hide: function (t, n) { t.hide(n) }, isOpen: function (t, n) { return t.isOpen(n) }, getContent: function (t, n) { return t.getContent(n) }, setContent: function (t, n, e) { t.setContent(n, e) }, reposition: function (t, n) { t.reposition(n) } } }), np = function (t) { return t.x }, ep = function (t, n) { return t.x + t.width / 2 - n.width / 2 }, op = function (t, n) { return t.x + t.width - n.width }, rp = function (t) { return t.y }, ip = function (t, n) { return t.y + t.height - n.height }, up = function (t, n, e) { return wa(op(t, n), ip(t, n), e.innerSoutheast(), _a(), Aa(t, { right: 0, bottom: 3 }), "layout-inner-se") }, ap = function (t, n, e) { return wa(np(t), ip(t, n), e.innerSouthwest(), Oa(), Aa(t, { left: 1, bottom: 3 }), "layout-inner-sw") }, cp = function (t, n, e) { return wa(op(t, n), rp(t), e.innerNortheast(), Ca(), Aa(t, { right: 0, top: 2 }), "layout-inner-ne") }, sp = function (t, n, e) { return wa(np(t), rp(t), e.innerNorthwest(), ka(), Aa(t, { left: 1, top: 2 }), "layout-inner-nw") }, lp = function (t, n, e) { return wa(ep(t, n), rp(t), e.innerNorth(), Ta(), Aa(t, { top: 2 }), "layout-inner-n") }, fp = function (t, n, e) { return wa(ep(t, n), ip(t, n), e.innerSouth(), Ea(), Aa(t, { bottom: 3 }), "layout-inner-s") }, dp = tinymce.util.Tools.resolve("tinymce.util.Delay"), mp = Yf({ name: "Button", factory: function (t) { var n = Ag(t.action), e = t.dom.tag, o = function (n) { return Ft(t.dom, "attributes").bind(function (t) { return Ft(t, n) }) }; return { uid: t.uid, dom: t.dom, components: t.components, events: n, behaviours: Gl(t.buttonBehaviours, [vg.config({}), ug.config({ mode: "execution", useSpace: !0, useEnter: !0 })]), domModification: { attributes: function () { if ("button" !== e) return { role: o("role").getOr("button") }; var t = o("type").getOr("button"), n = o("role").map(function (t) { return { role: t } }).getOr({}); return ut({ type: t }, n) }() }, eventOrder: t.eventOrder } }, configFields: [ne("uid", undefined), Ln("dom"), ne("components", []), Wl("buttonBehaviours", [vg, ug]), Kn("action"), Kn("role"), ne("eventOrder", {})] }), gp = function (t) { var n = t.uid !== undefined && Rt(t, "uid") ? t.uid : ei("memento"); return { get: function (t) { return t.getSystem().getByUid(n).getOrDie() }, getOpt: function (t) { return t.getSystem().getByUid(n).toOptional() }, asSpec: function () { return ut(ut({}, t), { uid: n }) } } }, pp = function (t) { return st.from(t()["temporary-placeholder"]).getOr("!not found!") }, hp = function (t, n) { return st.from(n()[t.toLowerCase()]).getOrThunk(function () { return pp(n) }) }, vp = { success: "checkmark", error: "warning", err: "error", warning: "warning", warn: "warning", info: "info" }, bp = Yf({ name: "Notification", factory: function (n) { var t, e, o = gp({ dom: { tag: "p", innerHtml: n.translationProvider(n.text) }, behaviours: ic([fg.config({})]) }), r = function (t) { return { dom: { tag: "div", classes: ["tox-bar"], attributes: { style: "width: " + t + "%" } } } }, i = function (t) { return { dom: { tag: "div", classes: ["tox-text"], innerHtml: t + "%" } } }, u = gp({ dom: { tag: "div", classes: n.progress ? ["tox-progress-bar", "tox-progress-indicator"] : ["tox-progress-bar"] }, components: [{ dom: { tag: "div", classes: ["tox-bar-container"] }, components: [r(0)] }, i(0)], behaviours: ic([fg.config({})]) }), a = { updateProgress: function (t, n) { t.getSystem().isConnected() && u.getOpt(t).each(function (t) { fg.set(t, [{ dom: { tag: "div", classes: ["tox-bar-container"] }, components: [r(n)] }, i(n)]) }) }, updateText: function (t, n) { var e; t.getSystem().isConnected() && (e = o.get(t), fg.set(e, [fu(n)])) } }, c = dt([n.icon.toArray(), n.level.toArray(), n.level.bind(function (t) { return st.from(vp[t]) }).toArray()]), s = gp(mp.sketch({ dom: { tag: "button", classes: ["tox-notification__dismiss", "tox-button", "tox-button--naked", "tox-button--icon"] }, components: [{ dom: { tag: "div", classes: ["tox-icon"], innerHtml: hp("close", n.iconProvider), attributes: { "aria-label": n.translationProvider("Close") } } }], action: function (t) { n.onAction(t) } })), l = [{ dom: { tag: "div", classes: ["tox-notification__icon"], innerHtml: (t = c, e = n.iconProvider, Z(t, function (t) { return st.from(e()[t.toLowerCase()]) }).getOrThunk(function () { return pp(e) })) } }, { dom: { tag: "div", classes: ["tox-notification__body"] }, components: [o.asSpec()], behaviours: ic([fg.config({})]) }]; return { uid: n.uid, dom: { tag: "div", attributes: { role: "alert" }, classes: n.level.map(function (t) { return ["tox-notification", "tox-notification--in", "tox-notification--" + t] }).getOr(["tox-notification", "tox-notification--in"]) }, behaviours: ic([vg.config({}), dg("notification-events", [er(lo(), function (t) { s.getOpt(t).each(vg.focus) })])]), components: l.concat(n.progress ? [u.asSpec()] : []).concat(n.closeButton ? [s.asSpec()] : []), apis: a } }, configFields: [Kn("level"), Ln("progress"), Ln("icon"), Ln("onAction"), Ln("text"), Ln("iconProvider"), Ln("translationProvider"), ue("closeButton", !0)], apis: { updateProgress: function (t, n, e) { t.updateProgress(n, e) }, updateText: function (t, n, e) { t.updateText(n, e) } } }); function yp(t, u, a) { var c = u.backstage; return { open: function (t, n) { var e = !t.closeButton && t.timeout && (0 < t.timeout || t.timeout < 0), o = function () { n(), tp.hide(i) }, r = gu(bp.sketch({ text: t.text, level: M(["success", "error", "warning", "warn", "info"], t.type) ? t.type : undefined, progress: !0 === t.progressBar, icon: st.from(t.icon), closeButton: !e, onAction: o, iconProvider: c.shared.providers.icons, translationProvider: c.shared.providers.translate })), i = gu(tp.sketch(ut({ dom: { tag: "div", classes: ["tox-notifications-container"] }, lazySink: u.backstage.shared.getSink, fireDismissalEventInstead: {} }, c.shared.header.isPositionedAtTop() ? {} : { fireRepositionEventInstead: {} }))); return a.add(i), 0 < t.timeout && dp.setTimeout(function () { o() }, t.timeout), { close: o, moveTo: function (t, n) { tp.showAt(i, { anchor: "makeshift", x: t, y: n }, pu(r)) }, moveRel: function (t, n) { var e, o; "banner" !== n ? (e = function (t) { switch (t) { case "bc-bc": return fp; case "tc-tc": return lp; case "tc-bc": return ja; case "bc-tc": default: return Ua } }(n), o = { anchor: "node", root: Wi(), node: st.some(me.fromDom(t)), layouts: { onRtl: function () { return [e] }, onLtr: function () { return [e] } } }, tp.showAt(i, o, pu(r))) : tp.showAt(i, u.backstage.shared.anchors.banner(), pu(r)) }, text: function (t) { bp.updateText(r, t) }, settings: t, getEl: function () { return r.element.dom }, progressBar: { value: function (t) { bp.updateProgress(r, t) } } } }, close: function (t) { t.close() }, reposition: function (t) { var e; ft(t, function (t) { return t.moveTo(0, 0) }), 0 < (e = t).length && (K(e).each(function (t) { return t.moveRel(null, "banner") }), ft(e, function (t, n) { 0 < n && t.moveRel(e[n - 1].getEl(), "bc-tc") })) }, getArgs: function (t) { return t.settings } } } var xp, wp, Sp = function (e, o) { var r = null; return { cancel: function () { null !== r && (clearTimeout(r), r = null) }, throttle: function () { for (var t = [], n = 0; n < arguments.length; n++)t[n] = arguments[n]; null !== r && clearTimeout(r), r = setTimeout(function () { e.apply(null, t), r = null }, o) } } }, kp = tinymce.util.Tools.resolve("tinymce.dom.TextSeeker"), Cp = function (o, t, n, e, r) { var i = kp(o, function (t) { return e = t, (n = o).isBlock(e) || M(["BR", "IMG", "HR", "INPUT"], e.nodeName) || "false" === n.getContentEditable(e); var n, e }); return st.from(i.backwards(t, n, e, r)) }, Op = function (e, n) { return _p(me.fromDom(e.selection.getNode())).getOrThunk(function () { var t = me.fromHtml('', e.getDoc()); return Ar(t, me.fromDom(n.extractContents())), n.insertNode(t.dom), kr(t).each(function (t) { return t.dom.normalize() }), ds(t, fs).map(function (t) { var n; e.selection.setCursorLocation(t.dom, "img" === mr(n = t) ? 1 : ss(n).fold(function () { return _r(n).length }, function (t) { return t.length })) }), t }) }, _p = function (t) { return Ju(t, "[data-mce-autocompleter]") }, Tp = function (t) { return t.toString().replace(/\u00A0/g, " ").replace(/\uFEFF/g, "") }, Ep = function (t) { return "" !== t && -1 !== " \xa0\f\n\r\t\x0B".indexOf(t) }, Dp = function (t, n) { return t.substring(n.length) }, Bp = function (t, o, r, i) { if (void 0 === i && (i = 0), !(n = o).collapsed || 3 !== n.startContainer.nodeType) return st.none(); var n, e = t.getParent(o.startContainer, t.isBlock) || t.getRoot(); return Cp(t, o.startContainer, o.startOffset, function (t, n, e) { return function (t, n, e) { for (var o = n - 1; 0 <= o; o--) { var r = t.charAt(o); if (Ep(r)) return st.none(); if (r === e) break } return st.some(o) }(e, n, r).getOr(n) }, e).bind(function (t) { var n = o.cloneRange(); if (n.setStart(t.container, t.offset), n.setEnd(o.endContainer, o.endOffset), n.collapsed) return st.none(); var e = Tp(n); return 0 !== e.lastIndexOf(r) || Dp(e, r).length < i ? st.none() : st.some({ text: Dp(e, r), range: n, triggerChar: r }) }) }, Ap = function (o, t, r, n) { return void 0 === n && (n = 0), _p(me.fromDom(t.startContainer)).fold(function () { return Bp(o, t, r, n) }, function (t) { var n = o.createRng(); n.selectNode(t.dom); var e = Tp(n); return st.some({ range: n, text: Dp(e, r), triggerChar: r }) }) }, Mp = function (e, t) { t.on("keypress compositionend", e.onKeypress.throttle), t.on("remove", e.onKeypress.cancel); var o = function (t, n) { qo(t, mo(), { raw: n }) }; t.on("keydown", function (n) { var t = function () { return e.getView().bind(fd.getHighlighted) }; 8 === n.which && e.onKeypress.throttle(n), e.isActive() && (27 === n.which && e.cancelIfNecessary(), e.isMenuOpen() ? 13 === n.which ? (t().each(Ko), n.preventDefault()) : 40 === n.which ? (t().fold(function () { e.getView().each(fd.highlightFirst) }, function (t) { o(t, n) }), n.preventDefault(), n.stopImmediatePropagation()) : 37 !== n.which && 38 !== n.which && 39 !== n.which || t().each(function (t) { o(t, n), n.preventDefault(), n.stopImmediatePropagation() }) : 13 !== n.which && 38 !== n.which && 40 !== n.which || e.cancelIfNecessary()) }), t.on("NodeChange", function (t) { e.isActive() && !e.isProcessingAction() && _p(me.fromDom(t.element)).isNone() && e.cancelIfNecessary() }) }, Fp = tinymce.util.Tools.resolve("tinymce.util.Promise"), Ip = function (t, n) { return { container: t, offset: n } }, Rp = function (t) { if (3 === t.nodeType) return Ip(t, t.data.length); var n = t.childNodes; return 0 < n.length ? Rp(n[n.length - 1]) : Ip(t, n.length) }, Vp = function (t, n) { var e = t.childNodes; return 0 < e.length && n < e.length ? Vp(e[n], 0) : 0 < e.length && 1 === t.nodeType && e.length === n ? Rp(e[e.length - 1]) : Ip(t, n) }, Pp = function (r) { return function (t) { var n, e, o = Vp(t.startContainer, t.startOffset); return !Cp(n = r, (e = o).container, e.offset, function (t, n) { return 0 === n ? -1 : n }, n.getRoot()).filter(function (t) { var n = t.container.data.charAt(t.offset - 1); return !Ep(n) }).isSome() } }, Hp = function (n, e) { var o, r, t = e(), i = n.selection.getRng(); return o = n.dom, r = i, Z(t.triggerChars, function (t) { return Ap(o, r, t) }).bind(function (t) { return zp(n, e, t) }) }, zp = function (n, t, e, o) { void 0 === o && (o = {}); var r = t(), i = n.selection.getRng().startContainer.nodeValue, u = H(r.lookupByChar(e.triggerChar), function (t) { return e.text.length >= t.minChars && t.matches.getOrThunk(function () { return Pp(n.dom) })(e.range, i, e.text) }); if (0 === u.length) return st.none(); var a = Fp.all(V(u, function (n) { return n.fetch(e.text, n.maxResults, o).then(function (t) { return { matchText: e.text, items: t, columns: n.columns, onAction: n.onAction, highlightOn: n.highlightOn } }) })); return st.some({ lookupData: a, context: e }) }, Np = fn([Un("type"), Qn("text")]), Lp = fn([ne("type", "autocompleteitem"), ne("active", !1), ne("disabled", !1), ne("meta", {}), Un("value"), Qn("text"), Qn("icon")]), jp = fn([Un("type"), Un("ch"), oe("minChars", 1), ne("columns", 1), oe("maxResults", 10), Zn("matches"), Gn("fetch"), Gn("onAction"), ce("highlightOn", [], Rn)]), Up = [ue("disabled", !1), Qn("tooltip"), Qn("icon"), Qn("text"), ae("onSetup", function () { return $ })], Wp = fn([Un("type"), Gn("onAction")].concat(Up)), Gp = function (t) { return _n("toolbarbutton", Wp, t) }, Xp = [ue("active", !1)].concat(Up), Yp = fn(Xp.concat([Un("type"), Gn("onAction")])), qp = function (t) { return _n("ToggleButton", Yp, t) }, Kp = [ae("predicate", function () { return !1 }), ie("scope", "node", ["node", "editor"]), ie("position", "selection", ["node", "selection", "line"])], Jp = Up.concat([ne("type", "contextformbutton"), ne("primary", !1), Gn("onAction"), le("original", ct)]), $p = Xp.concat([ne("type", "contextformbutton"), ne("primary", !1), Gn("onAction"), le("original", ct)]), Qp = Up.concat([ne("type", "contextformbutton")]), Zp = Xp.concat([ne("type", "contextformtogglebutton")]), th = An("type", { contextformbutton: Jp, contextformtogglebutton: $p }), nh = fn([ne("type", "contextform"), ae("initValue", function () { return "" }), Qn("label"), qn("commands", th), Jn("launch", An("type", { contextformbutton: Qp, contextformtogglebutton: Zp }))].concat(Kp)), eh = fn([ne("type", "contexttoolbar"), Un("items")].concat(Kp)), oh = function (t) { var n, e, o = t.ui.registry.getAll().popups, r = Tt(o, function (t) { return _n("Autocompleter", jp, t).fold(function (t) { throw new Error(Dn(t)) }, function (t) { return t }) }), i = (n = Bt(r, function (t) { return t.ch }), e = {}, ft(n, function (t) { e[t] = {} }), Ct(e)), u = Mt(r); return { dataset: r, triggerChars: i, lookupByChar: function (n) { return H(u, function (t) { return t.ch === n }) } } }; (wp = xp = xp || {})[wp.CLOSE_ON_EXECUTE = 0] = "CLOSE_ON_EXECUTE", wp[wp.BUBBLE_TO_SANDBOX = 1] = "BUBBLE_TO_SANDBOX"; var rh, ih, uh = xp, ah = "tox-menu-nav__js", ch = "tox-collection__item", sh = "tox-swatch", lh = { normal: ah, color: sh }, fh = "tox-collection__item--enabled", dh = "tox-collection__item-label", mh = "tox-collection__item-caret", gh = "tox-collection__item--active", ph = "tox-collection__item-container", hh = "tox-collection__item-container--row", vh = function (t) { return Ft(lh, t).getOr(ah) }, bh = function (t) { return { backgroundMenu: "tox-background-menu", selectedMenu: "tox-selected-menu", selectedItem: "tox-collection__item--active", hasIcons: "tox-menu--has-icons", menu: "color" === t ? "tox-swatches" : "tox-menu", tieredMenu: "tox-tiered-menu" } }, yh = function (t) { var n = bh(t); return { backgroundMenu: n.backgroundMenu, selectedMenu: n.selectedMenu, menu: n.menu, selectedItem: n.selectedItem, item: vh(t) } }, xh = [Yg.parts.items({})], wh = function (t, n, e) { var o = bh(e); return { dom: { tag: "div", classes: dt([[o.tieredMenu]]) }, markers: yh(e) } }, Sh = function (e, o) { return function (t) { var n = R(t, o); return V(n, function (t) { return { dom: e, components: t } }) } }, kh = function (t, e) { var o = [], r = []; return ft(t, function (t, n) { e(t, n) ? (0 < r.length && o.push(r), r = [], It(t.dom, "innerHtml") && r.push(t)) : r.push(t) }), 0 < r.length && o.push(r), V(o, function (t) { return { dom: { tag: "div", classes: ["tox-collection__group"] }, components: t } }) }, Ch = function (n, e, t) { return { dom: { tag: "div", classes: ["tox-menu", "tox-collection"].concat(1 === n ? ["tox-collection--list"] : ["tox-collection--grid"]) }, components: [Yg.parts.items({ preprocess: function (t) { return "auto" !== n && 1 < n ? Sh({ tag: "div", classes: ["tox-collection__group"] }, n)(t) : kh(t, function (t, n) { return "separator" === e[n].type }) } })] } }, Oh = function (t) { return F(t, function (t) { return "icon" in t && t.icon !== undefined }) }, _h = function (t) { return console.error(Dn(t)), console.log(t), st.none() }, Th = function (t, n, e, o, r) { var i, u = (i = e, { dom: { tag: "div", classes: ["tox-collection", "tox-collection--horizontal"] }, components: [Yg.parts.items({ preprocess: function (t) { return kh(t, function (t, n) { return "separator" === i[n].type }) } })] }); return { value: t, dom: u.dom, components: u.components, items: e } }, Eh = function (t, n, e, o, r) { var i, u, a, c, s, l; return "color" === r ? { value: t, dom: (a = (i = o, { dom: { tag: "div", classes: ["tox-menu", "tox-swatches-menu"] }, components: [{ dom: { tag: "div", classes: ["tox-swatches"] }, components: [Yg.parts.items({ preprocess: "auto" !== i ? Sh({ tag: "div", classes: ["tox-swatches__row"] }, i) : ct })] }] })).dom, components: a.components, items: e } : "normal" === r && "auto" === o ? { value: t, dom: (a = Ch(o, e)).dom, components: a.components, items: e } : "normal" === r && 1 === o ? { value: t, dom: (a = Ch(1, e)).dom, components: a.components, items: e } : "normal" === r ? { value: t, dom: (a = Ch(o, e)).dom, components: a.components, items: e } : "listpreview" !== r || "auto" === o ? { value: t, dom: (c = n, s = o, l = bh(r), { tag: "div", classes: dt([[l.menu, "tox-menu-" + s + "-column"], c ? [l.hasIcons] : []]) }), components: xh, items: e } : { value: t, dom: (a = (u = o, { dom: { tag: "div", classes: ["tox-menu", "tox-collection", "tox-collection--toolbar", "tox-collection--toolbar-lg"] }, components: [Yg.parts.items({ preprocess: Sh({ tag: "div", classes: ["tox-collection__group"] }, u) })] })).dom, components: a.components, items: e } }, Dh = [Un("type"), Un("src"), Qn("alt"), ce("classes", [], Rn)], Bh = fn(Dh), Ah = [Un("type"), Un("text"), Qn("name"), ce("classes", ["tox-collection__item-label"], Rn)], Mh = fn(Ah), Fh = kn(function () { return Bn("type", { cardimage: Bh, cardtext: Mh, cardcontainer: Ih }) }), Ih = fn([Un("type"), re("direction", "horizontal"), re("align", "left"), re("valign", "middle"), qn("items", Fh)]), Rh = [ue("disabled", !1), Qn("text"), Qn("shortcut"), bn("value", "value", Xt(function () { return Kr("menuitem-value") }), Mn()), ne("meta", {})], Vh = fn([Un("type"), Qn("label"), qn("items", Fh), ae("onSetup", function () { return $ }), ae("onAction", $)].concat(Rh)), Ph = fn([Un("type"), ue("active", !1), Qn("icon")].concat(Rh)), Hh = fn([Un("type"), Wn("fancytype", ["inserttable", "colorswatch"]), ae("onAction", $)]), zh = fn([Un("type"), ae("onSetup", function () { return $ }), ae("onAction", $), Qn("icon")].concat(Rh)), Nh = fn([Un("type"), Gn("getSubmenuItems"), ae("onSetup", function () { return $ }), Qn("icon")].concat(Rh)), Lh = fn([Un("type"), Qn("icon"), ue("active", !1), ae("onSetup", function () { return $ }), Gn("onAction")].concat(Rh)), jh = function (t, o, n) { var r = ms(t.element, "." + n); if (0 < r.length) { var e = j(r, function (t) { var n = t.dom.getBoundingClientRect().top, e = r[0].dom.getBoundingClientRect().top; return Math.abs(n - e) > o }).getOr(r.length); return st.some({ numColumns: e, numRows: Math.ceil(r.length / e) }) } return st.none() }, Uh = function (t, n) { return ic([dg(t, n)]) }, Wh = function (t) { return Uh(Kr("unnamed-events"), t) }, Gh = [Ln("lazySink"), Ln("tooltipDom"), ne("exclusive", !0), ne("tooltipComponents", []), ne("delay", 300), ie("mode", "normal", ["normal", "follow-highlight"]), ne("anchor", function (t) { return { anchor: "hotspot", hotspot: t, layouts: { onLtr: at([Ua, ja, Ha, Na, za, La]), onRtl: at([Ua, ja, Ha, Na, za, La]) } } }), ga("onHide"), ga("onShow")], Xh =/* */Object.freeze({ __proto__: null, init: function () { var e = fe(st.none()), n = fe(st.none()), o = function () { e.get().each(function (t) { clearTimeout(t) }) }, t = at("not-implemented"); return di({ getTooltip: function () { return n.get() }, isShowing: function () { return n.get().isSome() }, setTooltip: function (t) { n.set(st.some(t)) }, clearTooltip: function () { n.set(st.none()) }, clearTimer: o, resetTimer: function (t, n) { o(), e.set(st.some(setTimeout(function () { t() }, n))) }, readState: t }) } }), Yh = Kr("tooltip.exclusive"), qh = Kr("tooltip.show"), Kh = Kr("tooltip.hide"), Jh = function (t, n, e) { t.getSystem().broadcastOn([Yh], {}) }, $h =/* */Object.freeze({ __proto__: null, hideAllExclusive: Jh, setComponents: function (t, n, e, o) { e.getTooltip().each(function (t) { t.getSystem().isConnected() && fg.set(t, o) }) } }), Qh = ac({ fields: Gh, name: "tooltipping", active:/* */Object.freeze({ __proto__: null, events: function (r, i) { var e = function (n) { i.getTooltip().each(function (t) { ul(t), r.onHide(n, t), i.clearTooltip() }), i.clearTimer() }; return Zo(dt([[er(qh, function (o) { i.resetTimer(function () { var n, t, e; n = o, i.isShowing() || (Jh(n), t = r.lazySink(n).getOrDie(), e = n.getSystem().build({ dom: r.tooltipDom, components: r.tooltipComponents, events: Zo("normal" === r.mode ? [er(so(), function (t) { Yo(n, qh) }), er(ao(), function (t) { Yo(n, Kh) })] : []), behaviours: ic([fg.config({})]) }), i.setTooltip(e), ol(t, e), r.onShow(n, e), Qs.position(t, r.anchor(n), e)) }, r.delay) }), er(Kh, function (t) { i.resetTimer(function () { e(t) }, r.delay) }), er(Oo(), function (t, n) { n.universal || M(n.channels, Yh) && e(t) }), lr(function (t) { e(t) })], "normal" === r.mode ? [er(lo(), function (t) { Yo(t, qh) }), er(ko(), function (t) { Yo(t, Kh) }), er(so(), function (t) { Yo(t, qh) }), er(ao(), function (t) { Yo(t, Kh) })] : [er(Go(), function (t, n) { Yo(t, qh) }), er(Xo(), function (t) { Yo(t, Kh) })]])) } }), state: Xh, apis: $h }), Zh = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"), tv = tinymce.util.Tools.resolve("tinymce.util.I18n"), nv = ["input", "button", "textarea", "select"], ev = function (t, n, e) { (n.disabled() ? cv : sv)(t, n) }, ov = function (t, n) { return !0 === n.useNative && M(nv, mr(t.element)) }, rv = function (t) { zr(t.element, "disabled", "disabled") }, iv = function (t) { Ur(t.element, "disabled") }, uv = function (t) { zr(t.element, "aria-disabled", "true") }, av = function (t) { zr(t.element, "aria-disabled", "false") }, cv = function (n, t, e) { t.disableClass.each(function (t) { Ei(n.element, t) }), (ov(n, t) ? rv : uv)(n), t.onDisabled(n) }, sv = function (n, t, e) { t.disableClass.each(function (t) { Bi(n.element, t) }), (ov(n, t) ? iv : av)(n), t.onEnabled(n) }, lv = function (t, n) { return ov(t, n) ? jr(t.element, "disabled") : "true" === Nr(t.element, "aria-disabled") }, fv =/* */Object.freeze({ __proto__: null, enable: sv, disable: cv, isDisabled: lv, onLoad: ev, set: function (t, n, e, o) { (o ? cv : sv)(t, n) } }), dv =/* */Object.freeze({ __proto__: null, exhibit: function (t, n) { return gi({ classes: n.disabled() ? n.disableClass.toArray() : [] }) }, events: function (e, t) { return Zo([tr(_o(), function (t, n) { return lv(t, e) }), tc(e, t, ev)]) } }), mv = [ae("disabled", c), ne("useNative", !0), Kn("disableClass"), ga("onDisabled"), ga("onEnabled")], gv = ac({ fields: mv, name: "disabling", active: dv, apis: fv }), pv = tinymce.util.Tools.resolve("tinymce.EditorManager"), hv = function (t) { return t.getParam("height", Math.max(t.getElement().offsetHeight, 200)) }, vv = function (t) { return t.getParam("width", Zh.DOM.getStyle(t.getElement(), "width")) }, bv = function (t) { return st.from(t.getParam("min_width")).filter(lt) }, yv = function (t) { return st.from(t.getParam("min_height")).filter(lt) }, xv = function (t) { return st.from(t.getParam("max_width")).filter(lt) }, wv = function (t) { return st.from(t.getParam("max_height")).filter(lt) }, Sv = function (t) { return !1 !== t.getParam("menubar", !0, "boolean") }, kv = function (t) { var n = t.getParam("toolbar", !0), e = !0 === n, o = k(n), r = p(n) && 0 < n.length; return !Ov(t) && (r || o || e) }, Cv = function (n) { var t = I(9, function (t) { return n.getParam("toolbar" + (t + 1), !1, "string") }), e = H(t, function (t) { return "string" == typeof t }); return 0 < e.length ? st.some(e) : st.none() }, Ov = function (t) { return Cv(t).fold(function () { return 0 < t.getParam("toolbar", [], "string[]").length }, function () { return !0 }) }; (ih = rh = rh || {})["default"] = "wrap", ih.floating = "floating", ih.sliding = "sliding", ih.scrolling = "scrolling"; var _v, Tv, Ev = function (t) { return t.getParam("toolbar_mode", "", "string") }; (Tv = _v = _v || {}).auto = "auto", Tv.top = "top", Tv.bottom = "bottom"; var Dv, Bv = function (t) { return t.getParam("toolbar_location", _v.auto, "string") }, Av = function (t) { return Bv(t) === _v.bottom }, Mv = function (t) { var n = t.getParam("fixed_toolbar_container", "", "string"); return 0 < n.length && t.inline ? Ku(Wi(), n) : st.none() }, Fv = function (t) { return t.inline && Mv(t).isSome() }, Iv = function (t) { return Mv(t).getOrThunk(function () { return zi(Hi(me.fromDom(t.getElement()))) }) }, Rv = function (t) { return t.inline && !Sv(t) && !kv(t) && !Ov(t) }, Vv = function (t) { return (t.getParam("toolbar_sticky", !1, "boolean") || t.inline) && !Fv(t) && !Rv(t) }, Pv = "silver.readonly", Hv = fn([jn("readonly", Vn)]), zv = function (t, n) { var e = t.outerContainer.element; n && (t.mothership.broadcastOn([wl()], { target: e }), t.uiMothership.broadcastOn([wl()], { target: e })), t.mothership.broadcastOn([Pv], { readonly: n }), t.uiMothership.broadcastOn([Pv], { readonly: n }) }, Nv = function (t, n) { t.on("init", function () { t.mode.isReadOnly() && zv(n, !0) }), t.on("SwitchMode", function () { return zv(n, t.mode.isReadOnly()) }), t.getParam("readonly", !1, "boolean") && t.setMode("readonly") }, Lv = function () { var t; return fc.config({ channels: ((t = {})[Pv] = { schema: Hv, onReceive: function (t, n) { gv.set(t, n.readonly) } }, t) }) }, jv = function (t) { return gv.config({ disabled: t, disableClass: "tox-collection__item--state-disabled" }) }, Uv = function (t) { return gv.config({ disabled: t }) }, Wv = function (t) { return gv.config({ disabled: t, disableClass: "tox-tbtn--disabled" }) }, Gv = function (t) { return gv.config({ disabled: t, disableClass: "tox-tbtn--disabled", useNative: !1 }) }, Xv = function (t, n) { var e = t.getApi(n); return function (t) { t(e) } }, Yv = function (e, o) { return sr(function (t) { Xv(e, t)(function (t) { var n = e.onSetup(t); null !== n && n !== undefined && o.set(n) }) }) }, qv = function (n, e) { return lr(function (t) { return Xv(n, t)(e.get()) }) }, Kv = ((Dv = {})[_o()] = ["disabling", "alloy.base.behaviour", "toggling", "item-events"], Dv), Jv = function (t) { return U(t, function (t) { return t.toArray() }) }, $v = function (t, n, e, o) { var r, i, u = fe($); return { type: "item", dom: n.dom, components: Jv(n.optComponents), data: t.data, eventOrder: Kv, hasSubmenu: t.triggersSubmenu, itemBehaviours: ic([dg("item-events", [(r = t, i = e, dr(function (t, n) { Xv(r, t)(r.onAction), r.triggersSubmenu || i !== uh.CLOSE_ON_EXECUTE || (Yo(t, Bo()), n.stop()) })), Yv(t, u), qv(t, u)]), jv(function () { return t.disabled || o.isDisabled() }), Lv(), fg.config({})].concat(t.itemBehaviours)) } }, Qv = function (t) { return { value: t.value, meta: ut({ text: t.text.getOr("") }, t.meta) } }, Zv = tinymce.util.Tools.resolve("tinymce.Env"), tb = function (t) { return { dom: { tag: "div", classes: ["tox-collection__item-icon"], innerHtml: t } } }, nb = function (t) { return { dom: { tag: "div", classes: [dh] }, components: [fu(tv.translate(t))] } }, eb = function (t, n) { return { dom: { tag: "div", classes: n, innerHtml: t } } }, ob = function (t, n) { return { dom: { tag: "div", classes: [dh] }, components: [{ dom: { tag: t.tag, styles: t.styles }, components: [fu(tv.translate(n))] }] } }, rb = function (t) { return { dom: { tag: "div", classes: ["tox-collection__item-accessory"], innerHtml: (n = t, e = Zv.mac ? { alt: "⌥", ctrl: "⌃", shift: "⇧", meta: "⌘", access: "⌃⌥" } : { meta: "Ctrl", access: "Shift+Alt" }, o = n.split("+"), r = V(o, function (t) { var n = t.toLowerCase().trim(); return It(e, n) ? e[n] : t }), Zv.mac ? r.join("") : r.join("+")) } }; var n, e, o, r }, ib = function (t) { return { dom: { tag: "div", classes: ["tox-collection__item-checkmark"], innerHtml: hp("checkmark", t) } } }, ub = function (t, n) { var e = n.map(function (t) { return { attributes: { title: tv.translate(t) } } }).getOr({}); return ut({ tag: "div", classes: [ah, ch].concat(t ? ["tox-collection__item-icon-rtl"] : []) }, e) }, ab = ["list-num-default", "list-num-lower-alpha", "list-num-lower-greek", "list-num-lower-roman", "list-num-upper-alpha", "list-num-upper-roman"], cb = ["list-bull-circle", "list-bull-default", "list-bull-square"], sb = function (t, r, n, i) { void 0 === i && (i = st.none()); var e, o, u, a, c, s, l, f, d, m, g, p, h = tv.isRtl() && t.iconContent.exists(function (t) { return M(cb, t) }), v = t.iconContent.map(function (t) { return tv.isRtl() && M(ab, t) ? t + "-rtl" : t }).map(function (t) { return n = t, e = r.icons, o = i, st.from(e()[n.toLowerCase()]).or(o).getOrThunk(function () { return pp(e) }); var n, e, o }), b = st.from(t.meta).fold(function () { return nb }, function (t) { return It(t, "style") ? y(ob, t.style) : nb }); return "color" === t.presets ? (f = t.ariaLabel, d = t.value, m = r, { dom: (g = v.getOr(""), p = { tag: "div", attributes: f.map(function (t) { return { title: m.translate(t) } }).getOr({}), classes: ["tox-swatch"] }, ut(ut({}, p), "custom" === d ? { tag: "button", classes: S(p.classes, ["tox-swatches__picker-btn"]), innerHtml: g } : "remove" === d ? { classes: S(p.classes, ["tox-swatch--remove"]), innerHtml: g } : { attributes: ut(ut({}, p.attributes), { "data-mce-color": d }), styles: { "background-color": d } })), optComponents: [] }) : (e = t, o = v, u = b, a = h, c = n ? o.or(st.some("")).map(tb) : st.none(), s = e.checkMark, l = e.htmlContent.fold(function () { return e.textContent.map(u) }, function (t) { return st.some(eb(t, [dh])) }), { dom: ub(a, e.ariaLabel), optComponents: [c, l, e.shortcutContent.map(rb), s, e.caret] }) }, lb = function (t, n) { return Ft(t, "tooltipWorker").map(function (e) { return [Qh.config({ lazySink: n.getSink, tooltipDom: { tag: "div", classes: ["tox-tooltip-worker-container"] }, tooltipComponents: [], anchor: function (t) { return { anchor: "submenu", item: t, overrides: { maxHeightFunction: Fc } } }, mode: "follow-highlight", onShow: function (n, t) { e(function (t) { Qh.setComponents(n, [du({ element: me.fromDom(t) })]) }) } })] }).getOr([]) }, fb = function (t, n) { var e, o = tv.translate(t), r = (e = o, Zh.DOM.encode(e)); if (0 < n.length) { var i = new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "gi"); return r.replace(i, function (t) { return '' + t + "" }) } return r }, db = Cf(Ng(), Lg()), mb = function (t) { return { value: t } }, gb = /^#?([a-f\d])([a-f\d])([a-f\d])$/i, pb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i, hb = function (t) { return gb.test(t) || pb.test(t) }, vb = function (t) { var n = { value: t.value.replace(gb, function (t, n, e, o) { return n + n + e + e + o + o }) }, e = pb.exec(n.value); return null === e ? ["FFFFFF", "FF", "FF", "FF"] : e }, bb = function (t) { var n = t.toString(16); return 1 === n.length ? "0" + n : n }, yb = function (t) { var n = bb(t.red) + bb(t.green) + bb(t.blue); return mb(n) }, xb = Math.min, wb = Math.max, Sb = Math.round, kb = /^rgb\((\d+),\s*(\d+),\s*(\d+)\)/, Cb = /^rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d?(?:\.\d+)?)\)/, Ob = function (t, n, e, o) { return { red: t, green: n, blue: e, alpha: o } }, _b = function (t) { var n = parseInt(t, 10); return n.toString() === t && 0 <= n && n <= 255 }, Tb = function (t) { var n, e, o, r = (t.hue || 0) % 360, i = t.saturation / 100, u = t.value / 100, i = wb(0, xb(i, 1)), u = wb(0, xb(u, 1)); if (0 === i) return n = e = o = Sb(255 * u), Ob(n, e, o, 1); var a = r / 60, c = u * i, s = c * (1 - Math.abs(a % 2 - 1)), l = u - c; switch (Math.floor(a)) { case 0: n = c, e = s, o = 0; break; case 1: n = s, e = c, o = 0; break; case 2: n = 0, e = c, o = s; break; case 3: n = 0, e = s, o = c; break; case 4: n = s, e = 0, o = c; break; case 5: n = c, e = 0, o = s; break; default: n = e = o = 0 }return n = Sb(255 * (n + l)), e = Sb(255 * (e + l)), o = Sb(255 * (o + l)), Ob(n, e, o, 1) }, Eb = function (t) { var n = vb(t), e = parseInt(n[1], 16), o = parseInt(n[2], 16), r = parseInt(n[3], 16); return Ob(e, o, r, 1) }, Db = function (t, n, e, o) { var r = parseInt(t, 10), i = parseInt(n, 10), u = parseInt(e, 10), a = parseFloat(o); return Ob(r, i, u, a) }, Bb = function (t) { return "rgba(" + t.red + "," + t.green + "," + t.blue + "," + t.alpha + ")" }, Ab = Ob(255, 0, 0, 1), Mb = function (t, n) { return t.fire("ResizeContent", n) }, Fb = tinymce.util.Tools.resolve("tinymce.util.LocalStorage"), Ib = "tinymce-custom-colors"; var Rb = "choiceitem", Vb = [{ type: Rb, text: "Light Green", value: "#BFEDD2" }, { type: Rb, text: "Light Yellow", value: "#FBEEB8" }, { type: Rb, text: "Light Red", value: "#F8CAC6" }, { type: Rb, text: "Light Purple", value: "#ECCAFA" }, { type: Rb, text: "Light Blue", value: "#C2E0F4" }, { type: Rb, text: "Green", value: "#2DC26B" }, { type: Rb, text: "Yellow", value: "#F1C40F" }, { type: Rb, text: "Red", value: "#E03E2D" }, { type: Rb, text: "Purple", value: "#B96AD9" }, { type: Rb, text: "Blue", value: "#3598DB" }, { type: Rb, text: "Dark Turquoise", value: "#169179" }, { type: Rb, text: "Orange", value: "#E67E23" }, { type: Rb, text: "Dark Red", value: "#BA372A" }, { type: Rb, text: "Dark Purple", value: "#843FA1" }, { type: Rb, text: "Dark Blue", value: "#236FA1" }, { type: Rb, text: "Light Gray", value: "#ECF0F1" }, { type: Rb, text: "Medium Gray", value: "#CED4D9" }, { type: Rb, text: "Gray", value: "#95A5A6" }, { type: Rb, text: "Dark Gray", value: "#7E8C8D" }, { type: Rb, text: "Navy Blue", value: "#34495E" }, { type: Rb, text: "Black", value: "#000000" }, { type: Rb, text: "White", value: "#ffffff" }], Pb = function (e) { void 0 === e && (e = 10); var t, n = Fb.getItem(Ib), o = k(n) ? JSON.parse(n) : [], r = e - (t = o).length < 0 ? t.slice(0, e) : t, i = function (t) { r.splice(t, 1) }; return { add: function (t) { var n; (-1 === (n = A(r, t)) ? st.none() : st.some(n)).each(i), r.unshift(t), r.length > e && r.pop(), Fb.setItem(Ib, JSON.stringify(r)) }, state: function () { return r.slice(0) } } }(10), Hb = function (t) { return !1 !== t.getParam("custom_colors") }, zb = function (t) { var n = t.getParam("color_map"); return n !== undefined ? function (t) { var n = [], u = document.createElement("canvas"); u.height = 1, u.width = 1; for (var a = u.getContext("2d"), c = function (t, n) { var e = n / 255; return ("0" + Math.round(t * e + 255 * (1 - e)).toString(16)).slice(-2).toUpperCase() }, e = 0; e < t.length; e += 2)n.push({ text: t[e + 1], value: function (t) { if (/^[0-9A-Fa-f]{6}$/.test(t)) return "#" + t.toUpperCase(); a.clearRect(0, 0, u.width, u.height), a.fillStyle = "#FFFFFF", a.fillStyle = t, a.fillRect(0, 0, 1, 1); var n = a.getImageData(0, 0, 1, 1).data, e = n[0], o = n[1], r = n[2], i = n[3]; return "#" + c(e, i) + c(o, i) + c(r, i) }(t[e]), type: "choiceitem" }); return n }(n) : Vb }, Nb = function (t) { Pb.add(t) }, Lb = function (i) { i.addCommand("mceApplyTextcolor", function (t, n) { var e, o, r; o = t, r = n, (e = i).undoManager.transact(function () { e.focus(), e.formatter.apply(o, { value: r }), e.nodeChanged() }) }), i.addCommand("mceRemoveTextcolor", function (t) { var n, e; e = t, (n = i).undoManager.transact(function () { n.focus(), n.formatter.remove(e, { value: null }, null, !0), n.nodeChanged() }) }) }, jb = function (t) { var n, e, o = zb(t), r = (n = o.length, Math.max(5, Math.ceil(Math.sqrt(n)))); return e = r, t.getParam("color_cols", e, "number") }, Ub = function (n, e, t, o) { "custom" === t ? Kb(n)(function (t) { t.each(function (t) { Nb(t), n.execCommand("mceApplyTextcolor", e, t), o(t) }) }, "#000000") : "remove" === t ? (o(""), n.execCommand("mceRemoveTextcolor", e)) : (o(t), n.execCommand("mceApplyTextcolor", e, t)) }, Wb = function (t, n) { return t.concat(V(Pb.state(), function (t) { return { type: Rb, text: t, value: t } }).concat((o = { type: e = "choiceitem", text: "Remove color", icon: "color-swatch-remove-color", value: "remove" }, n ? [o, { type: e, text: "Custom color", icon: "color-picker", value: "custom" }] : [o]))); var e, o }, Gb = function (n, e) { return function (t) { t(Wb(n, e)) } }, Xb = function (t, n, e) { var o, r; o = "forecolor" === n ? "tox-icon-text-color__color" : "tox-icon-highlight-bg-color__color", r = e, t.setIconFill(o, r), t.setIconStroke(o, r) }, Yb = function (i, e, u, t, o) { i.ui.registry.addSplitButton(e, { tooltip: t, presets: "color", icon: "forecolor" === e ? "text-color" : "highlight-bg-color", select: function (e) { var t, o, r; return st.from((o = u, (t = i).dom.getParents(t.selection.getStart(), function (t) { var n; (n = t.style["forecolor" === o ? "color" : "background-color"]) && (r = r || n) }), r)).bind(function (t) { return function (t) { if ("transparent" === t) return st.some(Ob(0, 0, 0, 0)); var n = kb.exec(t); if (null !== n) return st.some(Db(n[1], n[2], n[3], "1")); var e = Cb.exec(t); return null !== e ? st.some(Db(e[1], e[2], e[3], e[4])) : st.none() }(t).map(function (t) { var n = yb(t).value; return we(e.toLowerCase(), n) }) }).getOr(!1) }, columns: jb(i), fetch: Gb(zb(i), Hb(i)), onAction: function (t) { null !== o.get() && Ub(i, u, o.get(), function () { }) }, onItemAction: function (t, n) { Ub(i, u, n, function (t) { var n; o.set(t), n = { name: e, color: t }, i.fire("TextColorChange", n) }) }, onSetup: function (n) { null !== o.get() && Xb(n, e, o.get()); var t = function (t) { t.name === e && Xb(n, t.name, t.color) }; return i.on("TextColorChange", t), function () { i.off("TextColorChange", t) } } }) }, qb = function (n, t, e, o) { n.ui.registry.addNestedMenuItem(t, { text: o, icon: "forecolor" === t ? "text-color" : "highlight-bg-color", getSubmenuItems: function () { return [{ type: "fancymenuitem", fancytype: "colorswatch", onAction: function (t) { Ub(n, e, t.value, $) } }] } }) }, Kb = function (i) { return function (t, n) { var e, o = { colorpicker: n }, r = (e = t, function (t) { var n = t.getData(); e(st.from(n.colorpicker)), t.close() }); i.windowManager.open({ title: "Color Picker", size: "normal", body: { type: "panel", items: [{ type: "colorpicker", name: "colorpicker", label: "Color" }] }, buttons: [{ type: "cancel", name: "cancel", text: "Cancel" }, { type: "submit", name: "save", text: "Save", primary: !0 }], initialData: o, onAction: function (t, n) { "hex-valid" === n.name && (n.value ? t.enable("ok") : t.disable("ok")) }, onSubmit: r, onClose: function () { }, onCancel: function () { t(st.none()) } }) } }, Jb = function (t, n, e, o, r, i, u, a) { var c = Oh(n), s = $b(n, e, o, "color" !== r ? "normal" : "color", i, u, a); return Eh(t, c, s, o, r) }, $b = function (e, o, r, i, u, a, c) { return Kf(V(e, function (n) { return "choiceitem" === n.type ? _n("choicemenuitem", Ph, n).fold(_h, function (t) { return st.some(function (n, t, e, o, r, i, u, a) { void 0 === a && (a = !0); var c = sb({ presets: e, textContent: t ? n.text : st.none(), htmlContent: st.none(), ariaLabel: n.text, iconContent: n.icon, shortcutContent: t ? n.shortcut : st.none(), checkMark: t ? st.some(ib(u.icons)) : st.none(), caret: st.none(), value: n.value }, u, a); return zt($v({ data: Qv(n), disabled: n.disabled, getApi: function (n) { return { setActive: function (t) { Dg.set(n, t) }, isActive: function () { return Dg.isOn(n) }, isDisabled: function () { return gv.isDisabled(n) }, setDisabled: function (t) { return gv.set(n, t) } } }, onAction: function (t) { return o(n.value) }, onSetup: function (t) { return t.setActive(r), function () { } }, triggersSubmenu: !1, itemBehaviours: [] }, c, i, u), { toggling: { toggleClass: fh, toggleOnExecute: !1, selected: n.active } }) }(t, 1 === r, i, o, a(n.value), u, c, Oh(e))) }) : st.none() })) }, Qb = function (t, n) { var e = yh(n); return 1 === t ? { mode: "menu", moveOnTab: !0 } : "auto" === t ? { mode: "grid", selector: "." + e.item, initSize: { numColumns: 1, numRows: 1 } } : { mode: "matrix", rowSelector: "." + ("color" === n ? "tox-swatches__row" : "tox-collection__group") } }; var Zb, ty, ny = Kr("cell-over"), ey = Kr("cell-execute"), oy = function (t, n, e) { for (var o = [], r = 0; r < n; r++) { for (var i = [], u = 0; u < e; u++)i.push(function (n, e, t) { var o, r = function (t) { return qo(t, ey, { row: n, col: e }) }, i = function (t, n) { n.stop(), r(t) }; return gu({ dom: { tag: "div", attributes: ((o = { role: "button" })["aria-labelledby"] = t, o) }, behaviours: ic([dg("insert-table-picker-cell", [er(so(), vg.focus), er(_o(), r), er(vo(), i), er(Eo(), i)]), Dg.config({ toggleClass: "tox-insert-table-picker__selected", toggleOnExecute: !1 }), vg.config({ onFocus: function (t) { return qo(t, ny, { row: n, col: e }) } })]) }) }(r, u, t)); o.push(i) } return o }, ry = { inserttable: function (o) { var t = Kr("size-label"), i = oy(t, 10, 10), u = gp({ dom: { tag: "span", classes: ["tox-insert-table-picker__label"], attributes: { id: t } }, components: [fu("0x0")], behaviours: ic([fg.config({})]) }); return { type: "widget", data: { value: Kr("widget-id") }, dom: { tag: "div", classes: ["tox-fancymenuitem"] }, autofocus: !0, components: [db.widget({ dom: { tag: "div", classes: ["tox-insert-table-picker"] }, components: U(i, function (t) { return V(t, pu) }).concat(u.asSpec()), behaviours: ic([dg("insert-table-picker", [ur(ny, function (t, n, e) { var o = e.event.row, r = e.event.col; !function (t, n, e, o, r) { for (var i = 0; i < o; i++)for (var u = 0; u < r; u++)Dg.set(t[i][u], i <= n && u <= e) }(i, o, r, 10, 10), fg.set(u.get(t), [fu(r + 1 + "x" + (o + 1))]) }), ur(ey, function (t, n, e) { o.onAction({ numRows: e.event.row + 1, numColumns: e.event.col + 1 }), Yo(t, Bo()) })]), ug.config({ initSize: { numRows: 10, numColumns: 10 }, mode: "flatgrid", selector: '[role="button"]' })]) })] } }, colorswatch: function (n, t) { var e = Wb(t.colorinput.getColors(), t.colorinput.hasCustomColors()), o = t.colorinput.getColorCols(), r = Jb(Kr("menu-value"), e, function (t) { n.onAction({ value: t }) }, o, "color", uh.CLOSE_ON_EXECUTE, function () { return !1 }, t.shared.providers), i = ut(ut({}, r), { markers: yh("color"), movement: Qb(o, "color") }); return { type: "widget", data: { value: Kr("widget-id") }, dom: { tag: "div", classes: ["tox-fancymenuitem"] }, autofocus: !0, components: [db.widget(Yg.sketch(i))] } } }, iy = function (t, s) { return V(t, function (t) { switch (t.type) { case "cardcontainer": return u = iy((i = t).items, s), a = "vertical" === i.direction ? "tox-collection__item-container--column" : hh, c = "left" === i.align ? "tox-collection__item-container--align-left" : "tox-collection__item-container--align-right", { dom: { tag: "div", classes: [ph, a, c, function () { switch (i.valign) { case "top": return "tox-collection__item-container--valign-top"; case "middle": return "tox-collection__item-container--valign-middle"; case "bottom": return "tox-collection__item-container--valign-bottom" } }()] }, components: u }; case "cardimage": return e = t.src, o = t.classes, r = t.alt, { dom: { tag: "img", classes: o, attributes: { src: e, alt: r.getOr("") } } }; case "cardtext": var n = t.name.exists(function (t) { return M(s.cardText.highlightOn, t) }) ? st.from(s.cardText.matchText).getOr("") : ""; return eb(fb(t.text, n), t.classes) }var e, o, r, i, u, a, c }) }, uy = function (n, e, t, o, r, i, u, a) { void 0 === a && (a = !0); var c = sb({ presets: o, textContent: st.none(), htmlContent: t ? n.text.map(function (t) { return fb(t, e) }) : st.none(), ariaLabel: n.text, iconContent: n.icon, shortcutContent: st.none(), checkMark: st.none(), caret: st.none(), value: n.value }, u.providers, a, n.icon); return $v({ data: Qv(n), disabled: n.disabled, getApi: function () { return {} }, onAction: function (t) { return r(n.value, n.meta) }, onSetup: function () { return function () { } }, triggersSubmenu: !1, itemBehaviours: lb(n.meta, u) }, c, i, u.providers) }, ay = function (t) { var n = t.text.fold(function () { return {} }, function (t) { return { innerHtml: t } }); return { type: "separator", dom: ut({ tag: "div", classes: [ch, "tox-collection__group-heading"] }, n), components: [] } }, cy = function (t, n, e, o) { void 0 === o && (o = !0); var r = sb({ presets: "normal", iconContent: t.icon, textContent: t.text, htmlContent: st.none(), ariaLabel: t.text, caret: st.none(), checkMark: st.none(), shortcutContent: t.shortcut }, e, o); return $v({ data: Qv(t), getApi: function (n) { return { isDisabled: function () { return gv.isDisabled(n) }, setDisabled: function (t) { return gv.set(n, t) } } }, disabled: t.disabled, onAction: t.onAction, onSetup: t.onSetup, triggersSubmenu: !1, itemBehaviours: [] }, r, n, e) }, sy = function (t, n, e, o, r) { void 0 === o && (o = !0), void 0 === r && (r = !1); var i, u, a = r ? (u = e.icons, { dom: { tag: "div", classes: [mh], innerHtml: hp("chevron-down", u) } }) : (i = e.icons, { dom: { tag: "div", classes: [mh], innerHtml: hp("chevron-right", i) } }), c = sb({ presets: "normal", iconContent: t.icon, textContent: t.text, htmlContent: st.none(), ariaLabel: t.text, caret: st.some(a), checkMark: st.none(), shortcutContent: t.shortcut }, e, o); return $v({ data: Qv(t), getApi: function (n) { return { isDisabled: function () { return gv.isDisabled(n) }, setDisabled: function (t) { return gv.set(n, t) } } }, disabled: t.disabled, onAction: $, onSetup: t.onSetup, triggersSubmenu: !0, itemBehaviours: [] }, c, n, e) }, ly = function (t, n, e, o) { void 0 === o && (o = !0); var r = sb({ iconContent: t.icon, textContent: t.text, htmlContent: st.none(), ariaLabel: t.text, checkMark: st.some(ib(e.icons)), caret: st.none(), shortcutContent: t.shortcut, presets: "normal", meta: t.meta }, e, o); return zt($v({ data: Qv(t), disabled: t.disabled, getApi: function (n) { return { setActive: function (t) { Dg.set(n, t) }, isActive: function () { return Dg.isOn(n) }, isDisabled: function () { return gv.isDisabled(n) }, setDisabled: function (t) { return gv.set(n, t) } } }, onAction: t.onAction, onSetup: t.onSetup, triggersSubmenu: !1, itemBehaviours: [] }, r, n, e), { toggling: { toggleClass: fh, toggleOnExecute: !1, selected: t.active } }) }, fy = function (n, e) { return t = ry, o = n.fancytype, (Object.prototype.hasOwnProperty.call(t, o) ? st.some(t[o]) : st.none()).map(function (t) { return t(n, e) }); var t, o }, dy = function (t, n, e, o) { var r = { dom: ub(!1, t.label), optComponents: [st.some({ dom: { tag: "div", classes: [ph, hh] }, components: iy(t.items, o) })] }; return $v({ data: Qv(ut({ text: st.none() }, t)), disabled: t.disabled, getApi: function (e) { return { isDisabled: function () { return gv.isDisabled(e) }, setDisabled: function (n) { gv.set(e, n), ft(ms(e.element, "*"), function (t) { e.getSystem().getByDom(t).each(function (t) { t.hasConfigured(gv) && gv.set(t, n) }) }) } } }, onAction: t.onAction, onSetup: t.onSetup, triggersSubmenu: !1, itemBehaviours: st.from(o.itemBehaviours).getOr([]) }, r, n, e.providers) }; (ty = Zb = Zb || {})[ty.ContentFocus = 0] = "ContentFocus", ty[ty.UiFocus = 1] = "UiFocus"; var my = function (t, n, e, o, r) { var i = e.shared.providers, u = function (t) { return r ? ut(ut({}, t), { shortcut: st.none(), icon: t.text.isSome() ? st.none() : t.icon }) : t }; switch (t.type) { case "menuitem": return _n("menuitem", zh, t).fold(_h, function (t) { return st.some(cy(u(t), n, i, o)) }); case "nestedmenuitem": return _n("nestedmenuitem", Nh, t).fold(_h, function (t) { return st.some(sy(u(t), n, i, o, r)) }); case "togglemenuitem": return _n("togglemenuitem", Lh, t).fold(_h, function (t) { return st.some(ly(u(t), n, i, o)) }); case "separator": return _n("separatormenuitem", Np, t).fold(_h, function (t) { return st.some(ay(t)) }); case "fancymenuitem": return _n("fancymenuitem", Hh, t).fold(_h, function (t) { return fy(u(t), e) }); default: return console.error("Unknown item in general menu", t), st.none() } }, gy = function (t, e, o, n, r, i, u) { var a = 1 === n, c = !a || Oh(t); return Kf(V(t, function (t) { switch (t.type) { case "separator": return _n("Autocompleter.Separator", Np, t).fold(_h, function (t) { return st.some(ay(t)) }); case "cardmenuitem": return _n("cardmenuitem", Vh, t).fold(_h, function (n) { return st.some(dy(ut(ut({}, n), { onAction: function (t) { n.onAction(t), o(n.value, n.meta) } }), r, i, { itemBehaviours: lb(n.meta, i), cardText: { matchText: e, highlightOn: u } })) }); case "autocompleteitem": default: return _n("Autocompleter.Item", Lp, t).fold(_h, function (t) { return st.some(uy(t, e, a, "normal", o, r, i, c)) }) } })) }, py = function (t, n, e, o, r) { var i = Oh(n), u = Kf(V(n, function (t) { var n = function (t) { return my(t, e, o, (n = t, r ? !n.hasOwnProperty("text") : i), r); var n }; return "nestedmenuitem" === t.type && t.getSubmenuItems().length <= 0 ? n(ut(ut({}, t), { disabled: !0 })) : n(t) })); return (r ? Th : Eh)(t, i, u, 1, "normal") }, hy = function (t) { return Zg.singleData(t.value, t) }, vy = function (d, c) { var e = fe(st.none()), s = fe(!1), m = gu(tp.sketch({ dom: { tag: "div", classes: ["tox-autocompleter"] }, components: [], fireDismissalEventInstead: {}, inlineBehaviours: ic([dg("dismissAutocompleter", [er(zo(), function () { return f() })])]), lazySink: c.getSink })), o = function () { return e.get().isSome() }, l = function () { o() && tp.hide(m) }, f = function () { var t; o() && (t = e.get().map(function (t) { return t.element }), _p(t.getOr(me.fromDom(d.selection.getNode()))).each(Rr), l(), e.set(st.none()), s.set(!1)) }, r = Lt(function () { return oh(d) }), g = function (t, n, e, o) { t.matchLength = n.text.length; var r, i, u, a, c, s, l, f = Z(e, function (t) { return st.from(t.columns) }).getOr(1); tp.showAt(m, { anchor: "node", root: me.fromDom(d.getBody()), node: st.from(t.element) }, Yg.sketch((r = Eh("autocompleter-value", !0, o, f, "normal"), i = f, u = Zb.ContentFocus, a = "normal", c = (u === Zb.ContentFocus ? Fd : Md)(), s = Qb(i, a), l = yh(a), { dom: r.dom, components: r.components, items: r.items, value: r.value, markers: { selectedItem: l.selectedItem, item: l.item }, movement: s, fakeFocus: u === Zb.ContentFocus, focusManager: c, menuBehaviours: Wh("auto" !== i ? [] : [sr(function (o, t) { jh(o, 4, l.item).each(function (t) { var n = t.numColumns, e = t.numRows; ug.setGridSize(o, e, n) }) })]) }))), tp.getContent(m).each(fd.highlightFirst) }, p = function (t) { var n; n = t, e.get().map(function (t) { return Ap(d.dom, d.selection.getRng(), t.triggerChar).bind(function (t) { return zp(d, r, t, n) }) }).getOrThunk(function () { return Hp(d, r) }).fold(f, function (a) { var t, n; t = a.context, o() || (n = Op(d, t.range), e.set(st.some({ triggerChar: t.triggerChar, element: n, matchLength: t.text.length })), s.set(!1)), a.lookupData.then(function (u) { e.get().map(function (t) { var n, e, o, r, i = a.context; t.triggerChar === i.triggerChar && (e = i.triggerChar, r = Z(o = u, function (t) { return st.from(t.columns) }).getOr(1), 0 < (n = U(o, function (i) { var t = i.items; return gy(t, i.matchText, function (o, r) { var t = d.selection.getRng(); Ap(d.dom, t, e).fold(function () { return console.error("Lost context. Cursor probably moved") }, function (t) { var n = t.range, e = { hide: function () { f() }, reload: function (t) { l(), p(t) } }; s.set(!0), i.onAction(e, n, o, r), s.set(!1) }) }, r, uh.BUBBLE_TO_SANDBOX, c, i.highlightOn) })).length ? g(t, i, u, n) : (10 <= i.text.length - t.matchLength ? f : l)()) }) }) }) }, t = { onKeypress: Sp(function (t) { 27 !== t.which && p() }, 50), cancelIfNecessary: f, isMenuOpen: function () { return tp.isOpen(m) }, isActive: o, isProcessingAction: s.get, getView: function () { return tp.getContent(m) } }; !1 === d.hasPlugin("rtc") && Mp(t, d) }, by = b, yy = function (t, n, e) { return Du(t, n, by, e, !1) }, xy = function (t, n, e) { return Du(t, n, by, e, !0) }, wy = Eu, Sy = function (t, n, e) { return Ju(t, n, e).isSome() }; function ky(e, o) { var r = null; return { cancel: function () { null !== r && (clearTimeout(r), r = null) }, schedule: function () { for (var t = [], n = 0; n < arguments.length; n++)t[n] = arguments[n]; r = setTimeout(function () { e.apply(null, t), r = null }, o) } } } var Cy = function (t) { var n = t.raw; return n.touches === undefined || 1 !== n.touches.length ? st.none() : st.some(n.touches[0]) }, Oy = function (e) { var u = fe(st.none()), o = fe(!1), r = ky(function (t) { e.triggerEvent(Do(), t), o.set(!0) }, 400), i = $t([{ key: no(), value: function (e) { return Cy(e).each(function (t) { r.cancel(); var n = { x: t.clientX, y: t.clientY, target: e.target }; r.schedule(e), o.set(!1), u.set(st.some(n)) }), st.none() } }, { key: eo(), value: function (t) { return r.cancel(), Cy(t).each(function (i) { u.get().each(function (t) { var n, e, o, r; n = i, e = t, o = Math.abs(n.clientX - e.x), r = Math.abs(n.clientY - e.y), (5 < o || 5 < r) && u.set(st.none()) }) }), st.none() } }, { key: oo(), value: function (n) { r.cancel(); return u.get().filter(function (t) { return Ge(t.target, n.target) }).map(function (t) { return o.get() ? (n.prevent(), !1) : e.triggerEvent(Eo(), n) }) } }]); return { fireIfReady: function (n, t) { return Ft(i, t).bind(function (t) { return t(n) }) } } }, _y = function () { return je().browser.isFirefox() }, Ty = ln([Gn("triggerEvent"), ne("stopBackspace", !0)]), Ey = function (n, t) { var e, o, r, i, u = En("Getting GUI events settings", Ty, t), a = Oy(u), c = V(["touchstart", "touchmove", "touchend", "touchcancel", "gesturestart", "mousedown", "mouseup", "mouseover", "mousemove", "mouseout", "click"].concat(["selectstart", "input", "contextmenu", "change", "transitionend", "drag", "dragstart", "dragend", "dragenter", "dragleave", "dragover", "drop", "keyup"]), function (t) { return yy(n, t, function (n) { a.fireIfReady(n, t).each(function (t) { t && n.kill() }), u.triggerEvent(t, n) && n.kill() }) }), s = fe(st.none()), l = yy(n, "paste", function (n) { a.fireIfReady(n, "paste").each(function (t) { t && n.kill() }), u.triggerEvent("paste", n) && n.kill(), s.set(st.some(setTimeout(function () { u.triggerEvent(Co(), n) }, 0))) }), f = yy(n, "keydown", function (t) { var n; u.triggerEvent("keydown", t) ? t.kill() : !0 !== u.stopBackspace || ((n = t).raw.which !== dd[0] || M(["input", "textarea"], mr(n.target)) || Sy(n.target, '[contenteditable="true"]')) || t.prevent() }), d = (e = n, o = function (t) { u.triggerEvent("focusin", t) && t.kill() }, _y() ? xy(e, "focus", o) : yy(e, "focusin", o)), m = fe(st.none()), g = (r = n, i = function (t) { u.triggerEvent("focusout", t) && t.kill(), m.set(st.some(setTimeout(function () { u.triggerEvent(ko(), t) }, 0))) }, _y() ? xy(r, "blur", i) : yy(r, "focusout", i)); return { unbind: function () { ft(c, function (t) { t.unbind() }), f.unbind(), d.unbind(), g.unbind(), l.unbind(), s.get().each(clearTimeout), m.get().each(clearTimeout) } } }, Dy = function (t, n) { var e = Ft(t, "target").getOr(n); return fe(e) }, By = Vt([{ stopped: [] }, { resume: ["element"] }, { complete: [] }]), Ay = function (t, o, n, e, r, i) { var u, a, c, s, l = t(o, e), f = (u = n, a = r, c = fe(!1), s = fe(!1), { stop: function () { c.set(!0) }, cut: function () { s.set(!0) }, isStopped: c.get, isCut: s.get, event: u, setSource: a.set, getSource: a.get }); return l.fold(function () { return i.logEventNoHandlers(o, e), By.complete() }, function (n) { var e = n.descHandler; return hi(e)(f), f.isStopped() ? (i.logEventStopped(o, n.element, e.purpose), By.stopped()) : f.isCut() ? (i.logEventCut(o, n.element, e.purpose), By.complete()) : kr(n.element).fold(function () { return i.logNoParent(o, n.element, e.purpose), By.complete() }, function (t) { return i.logEventResponse(o, n.element, e.purpose), By.resume(t) }) }) }, My = function (n, e, o, t, r, i) { return Ay(n, e, o, t, r, i).fold(function () { return !0 }, function (t) { return My(n, e, o, t, r, i) }, function () { return !1 }) }, Fy = function (t, n, e) { var o, r, i = (o = n, r = fe(!1), { stop: function () { r.set(!0) }, cut: $, isStopped: r.get, isCut: c, event: o, setSource: u("Cannot set source of a broadcasted event"), getSource: u("Cannot get source of a broadcasted event") }); return ft(t, function (t) { var n = t.descHandler; hi(n)(i) }), i.isStopped() }, Iy = function (t, n, e, o, r) { var i = Dy(e, o); return My(t, n, e, o, i, r) }, Ry = function (t, n) { return { element: t, descHandler: n } }, Vy = function (t, n) { return { id: t, descHandler: n } }; function Py() { var i = {}; return { registerId: function (o, r, t) { _t(t, function (t, n) { var e = i[n] !== undefined ? i[n] : {}; e[r] = pi(t, o), i[n] = e }) }, unregisterId: function (e) { _t(i, function (t, n) { t.hasOwnProperty(e) && delete t[e] }) }, filterByType: function (t) { return Ft(i, t).map(function (t) { return Bt(t, function (t, n) { return Vy(n, t) }) }).getOr([]) }, find: function (t, n, e) { var r = Ft(i, n); return Je(e, function (t) { return e = r, ni(o = t).fold(function () { return st.none() }, function (n) { return e.bind(function (t) { return Ft(t, n) }).map(function (t) { return Ry(o, t) }) }); var e, o }, t) } } } function Hy() { var o = Py(), r = {}, i = function (o) { var t = o.element; return ni(t).fold(function () { return t = "uid-", n = o.element, e = Kr(Qr + t), ti(n, e), e; var t, n, e }, function (t) { return t }) }, u = function (t) { ni(t.element).each(function (t) { delete r[t], o.unregisterId(t) }) }; return { find: function (t, n, e) { return o.find(t, n, e) }, filter: function (t) { return o.filterByType(t) }, register: function (t) { var n = i(t); Rt(r, n) && function (t, n) { var e = r[n]; if (e !== t) throw new Error('The tagId "' + n + '" is already used by: ' + Gr(e.element) + "\nCannot use it for: " + Gr(t.element) + "\nThe conflicting element is" + (Ui(e.element) ? " " : " not ") + "already in the DOM"); u(t) }(t, n); var e = [t]; o.registerId(e, n, t.events), r[n] = t }, unregister: u, getById: function (t) { return Ft(r, t) } } } var zy, Ny, Ly, jy, Uy = Yf({ name: "Container", factory: function (t) { var n = t.dom, e = n.attributes, o = w(n, ["attributes"]); return { uid: t.uid, dom: ut({ tag: "div", attributes: ut({ role: "presentation" }, e) }, o), components: t.components, behaviours: jl(t.containerBehaviours), events: t.events, domModification: t.domModification, eventOrder: t.eventOrder } }, configFields: [ne("components", []), Ll("containerBehaviours", []), ne("events", {}), ne("domModification", {}), ne("eventOrder", {})] }), Wy = function (e) { var o = function (n) { return kr(e.element).fold(function () { return !0 }, function (t) { return Ge(n, t) }) }, r = Hy(), s = function (t, n) { return r.find(o, t, n) }, t = Ey(e.element, { triggerEvent: function (o, r) { return ia(o, r.target, function (t) { return e = t, Iy(s, o, n = r, n.target, e); var n, e }) } }), i = { debugInfo: at("real"), triggerEvent: function (n, e, o) { ia(n, e, function (t) { return Iy(s, n, o, e, t) }) }, triggerFocus: function (a, c) { ni(a).fold(function () { mc(a) }, function (t) { ia(So(), a, function (t) { var n, e, o, r, i, u; return n = s, e = So(), i = t, u = Dy(o = { originator: c, kill: $, prevent: $, target: a }, r = a), Ay(n, e, o, r, u, i), !1 }) }) }, triggerEscape: function (t, n) { i.triggerEvent("keydown", t.element, n.event) }, getByUid: function (t) { return g(t) }, getByDom: function (t) { return p(t) }, build: gu, addToGui: function (t) { a(t) }, removeFromGui: function (t) { c(t) }, addToWorld: function (t) { n(t) }, removeFromWorld: function (t) { u(t) }, broadcast: function (t) { f(t) }, broadcastOn: function (t, n) { d(t, n) }, broadcastEvent: function (t, n) { m(t, n) }, isConnected: b }, n = function (t) { t.connect(i), hr(t.element) || (r.register(t), ft(t.components(), n), i.triggerEvent(Mo(), t.element, { target: t.element })) }, u = function (t) { hr(t.element) || (ft(t.components(), u), r.unregister(t)), t.disconnect() }, a = function (t) { ol(e, t) }, c = function (t) { ul(t) }, l = function (e) { var t = r.filter(Oo()); ft(t, function (t) { var n = t.descHandler; hi(n)(e) }) }, f = function (t) { l({ universal: !0, data: t }) }, d = function (t, n) { l({ universal: !1, channels: t, data: n }) }, m = function (t, n) { var e = r.filter(t); return Fy(e, n) }, g = function (t) { return r.getById(t).fold(function () { return mt.error(new Error('Could not find component with uid: "' + t + '" in system.')) }, mt.value) }, p = function (t) { var n = ni(t).getOr("not found"); return g(n) }; return n(e), { root: e, element: e.element, destroy: function () { t.unbind(), Ir(e.element) }, add: a, remove: c, getByUid: g, getByDom: p, addToWorld: n, removeFromWorld: u, broadcast: f, broadcastOn: d, broadcastEvent: m } }, Gy = at([ne("prefix", "form-field"), Ll("fieldBehaviours", [td, Nl])]), Xy = at([yf({ schema: [Ln("dom")], name: "label" }), yf({ factory: { sketch: function (t) { return { uid: t.uid, dom: { tag: "span", styles: { display: "none" }, attributes: { "aria-hidden": "true" }, innerHtml: t.text } } } }, schema: [Ln("text")], name: "aria-descriptor" }), vf({ factory: { sketch: function (t) { var n = Kt(t, ["factory"]); return t.factory.sketch(n) } }, schema: [Ln("factory")], name: "field" })]), Yy = qf({ name: "FormField", configFields: Gy(), partFields: Xy(), factory: function (r, t, n, e) { var o = Ul(r.fieldBehaviours, [td.config({ find: function (t) { return Af(t, r, "field") } }), Nl.config({ store: { mode: "manual", getValue: function (t) { return td.getCurrent(t).bind(Nl.getValue) }, setValue: function (t, n) { td.getCurrent(t).each(function (t) { Nl.setValue(t, n) }) } } })]), i = Zo([sr(function (t, n) { var o = Ff(t, r, ["label", "field", "aria-descriptor"]); o.field().each(function (e) { var n = Kr(r.prefix); o.label().each(function (t) { zr(t.element, "for", n), zr(e.element, "id", n) }), o["aria-descriptor"]().each(function (t) { var n = Kr(r.prefix); zr(t.element, "id", n), zr(e.element, "aria-describedby", n) }) }) })]), u = { getField: function (t) { return Af(t, r, "field") }, getLabel: function (t) { return Af(t, r, "label") } }; return { uid: r.uid, dom: r.dom, components: t, behaviours: o, events: i, apis: u } }, apis: { getField: function (t, n) { return t.getField(n) }, getLabel: function (t, n) { return t.getLabel(n) } } }), qy =/* */Object.freeze({ __proto__: null, exhibit: function (t, n) { return gi({ attributes: $t([{ key: n.tabAttr, value: "true" }]) }) } }), Ky = [ne("tabAttr", "data-alloy-tabstop")], Jy = ac({ fields: Ky, name: "tabstopping", active: qy }), $y = tinymce.util.Tools.resolve("tinymce.html.Entities"), Qy = function (t, n, e, o) { var r = Zy(t, n, e, o); return Yy.sketch(r) }, Zy = function (t, n, e, o) { return { dom: tx(e), components: t.toArray().concat([n]), fieldBehaviours: ic(o) } }, tx = function (t) { return { tag: "div", classes: ["tox-form__group"].concat(t) } }, nx = function (t, n) { return Yy.parts.label({ dom: { tag: "label", classes: ["tox-label"], innerHtml: n.translate(t) } }) }, ex = Kr("form-component-change"), ox = Kr("form-close"), rx = Kr("form-cancel"), ix = Kr("form-action"), ux = Kr("form-submit"), ax = Kr("form-block"), cx = Kr("form-unblock"), sx = Kr("form-tabchange"), lx = Kr("form-resize"), fx = function (u, a) { var t, n, e, o = u.label.map(function (t) { return nx(t, a) }), r = function (o) { return function (n, e) { Ju(e.event.target, "[data-collection-item-value]").each(function (t) { o(n, e, t, Nr(t, "data-collection-item-value")) }) } }, i = r(function (t, n, e, o) { n.stop(), a.isDisabled() || qo(t, ix, { name: u.name, value: o }) }), c = [er(so(), r(function (t, n, e) { mc(e) })), er(vo(), i), er(Eo(), i), er(lo(), r(function (t, n, e) { Ku(t.element, "." + gh).each(function (t) { Bi(t, gh) }), Ei(e, gh) })), er(fo(), r(function (t) { Ku(t.element, "." + gh).each(function (t) { Bi(t, gh) }) })), dr(r(function (t, n, e, o) { qo(t, ix, { name: u.name, value: o }) }))], s = function (t, n) { return V(ms(t.element, ".tox-collection__item"), n) }, l = Yy.parts.field({ dom: { tag: "div", classes: ["tox-collection"].concat(1 !== u.columns ? ["tox-collection--grid"] : ["tox-collection--list"]) }, components: [], factory: { sketch: ct }, behaviours: ic([gv.config({ disabled: a.isDisabled, onDisabled: function (t) { s(t, function (t) { Ei(t, "tox-collection__item--state-disabled"), zr(t, "aria-disabled", !0) }) }, onEnabled: function (t) { s(t, function (t) { Bi(t, "tox-collection__item--state-disabled"), Ur(t, "aria-disabled") }) } }), Lv(), fg.config({}), Nl.config({ store: { mode: "memory", initialValue: [] }, onSetValue: function (o, t) { var n, e, r, i; n = o, e = V(t, function (t) { var n = tv.translate(t.text), e = 1 === u.columns ? '
' + n + "
" : "", o = '
' + t.icon + "
", r = { _: " ", " - ": " ", "-": " " }, i = n.replace(/\_| \- |\-/g, function (t) { return r[t] }); return '
' + o + e + "
" }), r = "auto" !== u.columns && 1 < u.columns ? R(e, u.columns) : [e], i = V(r, function (t) { return '
' + t.join("") + "
" }), Pr(n.element, i.join("")), "auto" === u.columns && jh(o, 5, "tox-collection__item").each(function (t) { var n = t.numRows, e = t.numColumns; ug.setGridSize(o, n, e) }), Yo(o, lx) } }), Jy.config({}), ug.config((n = u.columns, e = "normal", 1 === n ? { mode: "menu", moveOnTab: !1, selector: ".tox-collection__item" } : "auto" === n ? { mode: "flatgrid", selector: ".tox-collection__item", initSize: { numColumns: 1, numRows: 1 } } : { mode: "matrix", selectors: { row: "color" === e ? ".tox-swatches__row" : ".tox-collection__group", cell: "color" === e ? "." + sh : "." + ch } })), dg("collection-events", c)]), eventOrder: ((t = {})[_o()] = ["disabling", "alloy.base.behaviour", "collection-events"], t) }); return Qy(o, l, ["tox-form__group--collection"], []) }, dx = at([Kn("data"), ne("inputAttributes", {}), ne("inputStyles", {}), ne("tag", "input"), ne("inputClasses", []), ga("onSetValue"), ne("styles", {}), ne("eventOrder", {}), Ll("inputBehaviours", [Nl, vg]), ne("selectOnFocus", !0)]), mx = function (t) { return ic([vg.config({ onFocus: t.selectOnFocus ? function (t) { var n = t.element, e = ou(n); n.dom.setSelectionRange(0, e.length) } : $ })]) }, gx = function (t) { return { tag: t.tag, attributes: ut({ type: "text" }, t.inputAttributes), styles: t.inputStyles, classes: t.inputClasses } }, px = Yf({ name: "Input", configFields: dx(), factory: function (t, n) { return { uid: t.uid, dom: gx(t), components: [], behaviours: ut(ut({}, mx(e = t)), Ul(e.inputBehaviours, [Nl.config({ store: ut(ut({ mode: "manual" }, e.data.map(function (t) { return { initialValue: t } }).getOr({})), { getValue: function (t) { return ou(t.element) }, setValue: function (t, n) { ou(t.element) !== n && ru(t.element, n) } }), onSetValue: e.onSetValue })])), eventOrder: t.eventOrder }; var e } }), hx = {}, vx = { exports: hx }; zy = undefined, Ny = hx, Ly = vx, jy = undefined, function (t) { "object" == typeof Ny && void 0 !== Ly ? Ly.exports = t() : "function" == typeof zy && zy.amd ? zy([], t) : ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).EphoxContactWrapper = t() }(function () { return function l(i, u, a) { function c(n, t) { if (!u[n]) { if (!i[n]) { var e = "function" == typeof jy && jy; if (!t && e) return e(n, !0); if (s) return s(n, !0); var o = new Error("Cannot find module '" + n + "'"); throw o.code = "MODULE_NOT_FOUND", o } var r = u[n] = { exports: {} }; i[n][0].call(r.exports, function (t) { return c(i[n][1][t] || t) }, r, r.exports, l, i, u, a) } return u[n].exports } for (var s = "function" == typeof jy && jy, t = 0; t < a.length; t++)c(a[t]); return c }({ 1: [function (t, n, e) { var o, r, i = n.exports = {}; function u() { throw new Error("setTimeout has not been defined") } function a() { throw new Error("clearTimeout has not been defined") } function c(t) { if (o === setTimeout) return setTimeout(t, 0); if ((o === u || !o) && setTimeout) return o = setTimeout, setTimeout(t, 0); try { return o(t, 0) } catch (n) { try { return o.call(null, t, 0) } catch (n) { return o.call(this, t, 0) } } } !function () { try { o = "function" == typeof setTimeout ? setTimeout : u } catch (t) { o = u } try { r = "function" == typeof clearTimeout ? clearTimeout : a } catch (t) { r = a } }(); var s, l = [], f = !1, d = -1; function m() { f && s && (f = !1, s.length ? l = s.concat(l) : d = -1, l.length && g()) } function g() { if (!f) { var t = c(m); f = !0; for (var n = l.length; n;) { for (s = l, l = []; ++d < n;)s && s[d].run(); d = -1, n = l.length } s = null, f = !1, function (t) { if (r === clearTimeout) return clearTimeout(t); if ((r === a || !r) && clearTimeout) return r = clearTimeout, clearTimeout(t); try { r(t) } catch (n) { try { return r.call(null, t) } catch (n) { return r.call(this, t) } } }(t) } } function p(t, n) { this.fun = t, this.array = n } function h() { } i.nextTick = function (t) { var n = new Array(arguments.length - 1); if (1 < arguments.length) for (var e = 1; e < arguments.length; e++)n[e - 1] = arguments[e]; l.push(new p(t, n)), 1 !== l.length || f || c(g) }, p.prototype.run = function () { this.fun.apply(null, this.array) }, i.title = "browser", i.browser = !0, i.env = {}, i.argv = [], i.version = "", i.versions = {}, i.on = h, i.addListener = h, i.once = h, i.off = h, i.removeListener = h, i.removeAllListeners = h, i.emit = h, i.prependListener = h, i.prependOnceListener = h, i.listeners = function (t) { return [] }, i.binding = function (t) { throw new Error("process.binding is not supported") }, i.cwd = function () { return "/" }, i.chdir = function (t) { throw new Error("process.chdir is not supported") }, i.umask = function () { return 0 } }, {}], 2: [function (t, f, n) { (function (n) { function o() { } function u(t) { if ("object" != typeof this) throw new TypeError("Promises must be constructed via new"); if ("function" != typeof t) throw new TypeError("not a function"); this._state = 0, this._handled = !1, this._value = undefined, this._deferreds = [], l(t, this) } function r(o, r) { for (; 3 === o._state;)o = o._value; 0 !== o._state ? (o._handled = !0, u._immediateFn(function () { var t, n = 1 === o._state ? r.onFulfilled : r.onRejected; if (null !== n) { try { t = n(o._value) } catch (e) { return void a(r.promise, e) } i(r.promise, t) } else (1 === o._state ? i : a)(r.promise, o._value) })) : o._deferreds.push(r) } function i(t, n) { try { if (n === t) throw new TypeError("A promise cannot be resolved with itself."); if (n && ("object" == typeof n || "function" == typeof n)) { var e = n.then; if (n instanceof u) return t._state = 3, t._value = n, void c(t); if ("function" == typeof e) return void l((o = e, r = n, function () { o.apply(r, arguments) }), t) } t._state = 1, t._value = n, c(t) } catch (i) { a(t, i) } var o, r } function a(t, n) { t._state = 2, t._value = n, c(t) } function c(t) { 2 === t._state && 0 === t._deferreds.length && u._immediateFn(function () { t._handled || u._unhandledRejectionFn(t._value) }); for (var n = 0, e = t._deferreds.length; n < e; n++)r(t, t._deferreds[n]); t._deferreds = null } function s(t, n, e) { this.onFulfilled = "function" == typeof t ? t : null, this.onRejected = "function" == typeof n ? n : null, this.promise = e } function l(t, n) { var e = !1; try { t(function (t) { e || (e = !0, i(n, t)) }, function (t) { e || (e = !0, a(n, t)) }) } catch (o) { if (e) return; e = !0, a(n, o) } } var t, e; t = this, e = setTimeout, u.prototype["catch"] = function (t) { return this.then(null, t) }, u.prototype.then = function (t, n) { var e = new this.constructor(o); return r(this, new s(t, n, e)), e }, u.all = function (t) { var c = Array.prototype.slice.call(t); return new u(function (r, i) { if (0 === c.length) return r([]); var u = c.length; for (var t = 0; t < c.length; t++)!function a(n, t) { try { if (t && ("object" == typeof t || "function" == typeof t)) { var e = t.then; if ("function" == typeof e) return void e.call(t, function (t) { a(n, t) }, i) } c[n] = t, 0 == --u && r(c) } catch (o) { i(o) } }(t, c[t]) }) }, u.resolve = function (n) { return n && "object" == typeof n && n.constructor === u ? n : new u(function (t) { t(n) }) }, u.reject = function (e) { return new u(function (t, n) { n(e) }) }, u.race = function (r) { return new u(function (t, n) { for (var e = 0, o = r.length; e < o; e++)r[e].then(t, n) }) }, u._immediateFn = "function" == typeof n ? function (t) { n(t) } : function (t) { e(t, 0) }, u._unhandledRejectionFn = function (t) { "undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", t) }, u._setImmediateFn = function (t) { u._immediateFn = t }, u._setUnhandledRejectionFn = function (t) { u._unhandledRejectionFn = t }, void 0 !== f && f.exports ? f.exports = u : t.Promise || (t.Promise = u) }).call(this, t("timers").setImmediate) }, { timers: 3 }], 3: [function (c, t, s) { (function (t, n) { var o = c("process/browser.js").nextTick, e = Function.prototype.apply, r = Array.prototype.slice, i = {}, u = 0; function a(t, n) { this._id = t, this._clearFn = n } s.setTimeout = function () { return new a(e.call(setTimeout, window, arguments), clearTimeout) }, s.setInterval = function () { return new a(e.call(setInterval, window, arguments), clearInterval) }, s.clearTimeout = s.clearInterval = function (t) { t.close() }, a.prototype.unref = a.prototype.ref = function () { }, a.prototype.close = function () { this._clearFn.call(window, this._id) }, s.enroll = function (t, n) { clearTimeout(t._idleTimeoutId), t._idleTimeout = n }, s.unenroll = function (t) { clearTimeout(t._idleTimeoutId), t._idleTimeout = -1 }, s._unrefActive = s.active = function (t) { clearTimeout(t._idleTimeoutId); var n = t._idleTimeout; 0 <= n && (t._idleTimeoutId = setTimeout(function () { t._onTimeout && t._onTimeout() }, n)) }, s.setImmediate = "function" == typeof t ? t : function (t) { var n = u++, e = !(arguments.length < 2) && r.call(arguments, 1); return i[n] = !0, o(function () { i[n] && (e ? t.apply(null, e) : t.call(null), s.clearImmediate(n)) }), n }, s.clearImmediate = "function" == typeof n ? n : function (t) { delete i[t] } }).call(this, c("timers").setImmediate, c("timers").clearImmediate) }, { "process/browser.js": 1, timers: 3 }], 4: [function (t, n, e) { var o = t("promise-polyfill"), r = "undefined" != typeof window ? window : Function("return this;")(); n.exports = { boltExport: r.Promise || o } }, { "promise-polyfill": 2 }] }, {}, [4])(4) }); var bx, yx, xx = vx.exports.boltExport, wx = function (t) { var e = st.none(), n = [], o = function (t) { r() ? u(t) : n.push(t) }, r = function () { return e.isSome() }, i = function (t) { ft(t, u) }, u = function (n) { e.each(function (t) { setTimeout(function () { n(t) }, 0) }) }; return t(function (t) { r() || (e = st.some(t), i(n), n = []) }), { get: o, map: function (e) { return wx(function (n) { o(function (t) { n(e(t)) }) }) }, isReady: r } }, Sx = { nu: wx, pure: function (n) { return wx(function (t) { t(n) }) } }, kx = function (t) { setTimeout(function () { throw t }, 0) }, Cx = function (e) { var t = function (t) { e().then(t, kx) }; return { map: function (t) { return Cx(function () { return e().then(t) }) }, bind: function (n) { return Cx(function () { return e().then(function (t) { return n(t).toPromise() }) }) }, anonBind: function (t) { return Cx(function () { return e().then(function () { return t.toPromise() }) }) }, toLazy: function () { return Sx.nu(t) }, toCached: function () { var t = null; return Cx(function () { return null === t && (t = e()), t }) }, toPromise: e, get: t } }, Ox = function (t) { return Cx(function () { return new xx(t) }) }, _x = function (t) { return Cx(function () { return xx.resolve(t) }) }, Tx = ["input", "textarea"], Ex = function (t) { var n = mr(t); return M(Tx, n) }, Dx = function (t, n) { var e = n.getRoot(t).getOr(t.element); Bi(e, n.invalidClass), n.notify.each(function (n) { Ex(t.element) && zr(t.element, "aria-invalid", !1), n.getContainer(t).each(function (t) { Pr(t, n.validHtml) }), n.onValid(t) }) }, Bx = function (n, t, e, o) { var r = t.getRoot(n).getOr(n.element); Ei(r, t.invalidClass), t.notify.each(function (t) { Ex(n.element) && zr(n.element, "aria-invalid", !0), t.getContainer(n).each(function (t) { Pr(t, o) }), t.onInvalid(n, o) }) }, Ax = function (n, t, e) { return t.validator.fold(function () { return _x(mt.value(!0)) }, function (t) { return t.validate(n) }) }, Mx = function (n, e, t) { return e.notify.each(function (t) { t.onValidate(n) }), Ax(n, e).map(function (t) { return n.getSystem().isConnected() ? t.fold(function (t) { return Bx(n, e, 0, t), mt.error(t) }, function (t) { return Dx(n, e), mt.value(t) }) : mt.error("No longer in system") }) }, Fx =/* */Object.freeze({ __proto__: null, markValid: Dx, markInvalid: Bx, query: Ax, run: Mx, isInvalid: function (t, n) { var e = n.getRoot(t).getOr(t.element); return Ai(e, n.invalidClass) } }), Ix =/* */Object.freeze({ __proto__: null, events: function (n, t) { return n.validator.map(function (t) { return Zo([er(t.onEvent, function (t) { Mx(t, n).get(ct) })].concat(t.validateOnLoad ? [sr(function (t) { Mx(t, n).get($) })] : [])) }).getOr({}) } }), Rx = [Ln("invalidClass"), ne("getRoot", st.none), te("notify", [ne("aria", "alert"), ne("getContainer", st.none), ne("validHtml", ""), ga("onValid"), ga("onInvalid"), ga("onValidate")]), te("validator", [Ln("validate"), ne("onEvent", "input"), ne("validateOnLoad", !0)])], Vx = ac({ fields: Rx, name: "invalidating", active: Ix, apis: Fx, extra: { validation: function (e) { return function (t) { var n = Nl.getValue(t); return _x(e(n)) } } } }), Px =/* */Object.freeze({ __proto__: null, getCoupled: function (t, n, e, o) { return e.getOrCreate(t, n, o) } }), Hx = [jn("others", On(mt.value, Mn()))], zx = ac({ fields: Hx, name: "coupling", apis: Px, state:/* */Object.freeze({ __proto__: null, init: function () { var i = {}, t = at({}); return di({ readState: t, getOrCreate: function (e, o, r) { var t = Ct(o.others); if (t) return Ft(i, r).getOrThunk(function () { var t = Ft(o.others, r).getOrDie("No information found for coupled component: " + r)(e), n = e.getSystem().build(t); return i[r] = n }); throw new Error("Cannot find coupled component: " + r + ". Known coupled components: " + JSON.stringify(t, null, 2)) } }) } }) }), Nx = at("sink"), Lx = at(yf({ name: Nx(), overrides: at({ dom: { tag: "div" }, behaviours: ic([Qs.config({ useFixed: b })]), events: Zo([ar(mo()), ar(io()), ar(vo())]) }) })); (yx = bx = bx || {})[yx.HighlightFirst = 0] = "HighlightFirst", yx[yx.HighlightNone = 1] = "HighlightNone"; var jx = function (t, n) { var e = t.getHotspot(n).getOr(n), o = t.getAnchorOverrides(); return t.layouts.fold(function () { return { anchor: "hotspot", hotspot: e, overrides: o } }, function (t) { return { anchor: "hotspot", hotspot: e, overrides: o, layouts: t } }) }, Ux = function (t, n, e, o, r, i, u) { var a, c, s, l, f, d, m, g, p, h, v = jx(t, e); return (c = v, l = o, f = r, d = u, m = n, g = s = e, p = (0, (a = t).fetch)(g).map(m), h = Yx(s, a), p.map(function (t) { return t.bind(function (t) { return st.from(Zg.sketch(ut(ut({}, f.menu()), { uid: ei(""), data: t, highlightImmediately: d === bx.HighlightFirst, onOpenMenu: function (t, n) { var e = h().getOrDie(); Qs.position(e, c, n), xl.decloak(l) }, onOpenSubmenu: function (t, n, e) { var o = h().getOrDie(); Qs.position(o, { anchor: "submenu", item: n }, e), xl.decloak(l) }, onRepositionMenu: function (t, n, e) { var o = h().getOrDie(); Qs.position(o, c, n), ft(e, function (t) { Qs.position(o, { anchor: "submenu", item: t.triggeringItem }, t.triggeredMenu) }) }, onEscape: function () { return vg.focus(s), xl.close(l), st.some(!0) } }))) }) })).map(function (t) { return t.fold(function () { xl.isOpen(o) && xl.close(o) }, function (t) { xl.cloak(o), xl.open(o, t), i(o) }), o }) }, Wx = function (t, n, e, o, r, i, u) { return xl.close(o), _x(o) }, Gx = function (t, n, e, o, r, i) { var u = zx.getCoupled(e, "sandbox"); return (xl.isOpen(u) ? Wx : Ux)(t, n, e, u, o, r, i) }, Xx = function (t, n, e) { var o, r, i = td.getCurrent(n).getOr(n), u = _u(t.element); e ? qi(i.element, "min-width", u + "px") : (o = i.element, r = u, Ou.set(o, r)) }, Yx = function (n, t) { return n.getSystem().getByUid(t.uid + "-" + Nx()).map(function (t) { return function () { return mt.value(t) } }).getOrThunk(function () { return t.lazySink.fold(function () { return function () { return mt.error(new Error("No internal sink is specified, nor could an external sink be found")) } }, function (t) { return function () { return t(n) } }) }) }, qx = function (t) { xl.getState(t).each(function (t) { Zg.repositionMenus(t) }) }, Kx = function (o, r, i) { var u = $u(), t = Yx(r, o); return { dom: { tag: "div", classes: o.sandboxClasses, attributes: { id: u.id, role: "listbox" } }, behaviours: Gl(o.sandboxBehaviours, [Nl.config({ store: { mode: "memory", initialValue: r } }), xl.config({ onOpen: function (t, n) { var e = jx(o, r); u.link(r.element), o.matchWidth && Xx(e.hotspot, n, o.useMinWidth), o.onOpen(e, t, n), i !== undefined && i.onOpen !== undefined && i.onOpen(t, n) }, onClose: function (t, n) { u.unlink(r.element), i !== undefined && i.onClose !== undefined && i.onClose(t, n) }, isPartOf: function (t, n, e) { return Zu(n, e) || Zu(r, e) }, getAttachPoint: function () { return t().getOrDie() } }), td.config({ find: function (t) { return xl.getState(t).bind(function (t) { return td.getCurrent(t) }) } }), fc.config({ channels: ut(ut({}, Ol({ isExtraPart: c })), Tl({ doReposition: qx })) })]) } }, Jx = function (t) { var n = zx.getCoupled(t, "sandbox"); qx(n) }, $x = function () { return [ne("sandboxClasses", []), Wl("sandboxBehaviours", [td, fc, xl, Nl])] }, Qx = at([Ln("dom"), Ln("fetch"), ga("onOpen"), pa("onExecute"), ne("getHotspot", st.some), ne("getAnchorOverrides", at({})), Wc(), Ll("dropdownBehaviours", [Dg, zx, ug, vg]), Ln("toggleClass"), ne("eventOrder", {}), Kn("lazySink"), ne("matchWidth", !1), ne("useMinWidth", !1), Kn("role")].concat($x())), Zx = at([bf({ schema: [fa()], name: "menu", defaults: function (t) { return { onExecute: t.onExecute } } }), Lx()]), tw = qf({ name: "Dropdown", configFields: Qx(), partFields: Zx(), factory: function (n, t, e, o) { var r, i, u = function (t) { xl.getState(t).each(function (t) { Zg.highlightPrimary(t) }) }, a = { expand: function (t) { Dg.isOn(t) || Gx(n, function (t) { return t }, t, o, $, bx.HighlightNone).get($) }, open: function (t) { Dg.isOn(t) || Gx(n, function (t) { return t }, t, o, $, bx.HighlightFirst).get($) }, isOpen: Dg.isOn, close: function (t) { Dg.isOn(t) && Gx(n, function (t) { return t }, t, o, $, bx.HighlightFirst).get($) }, repositionMenus: function (t) { Dg.isOn(t) && Jx(t) } }, c = function (t, n) { return Ko(t), st.some(!0) }; return { uid: n.uid, dom: n.dom, components: t, behaviours: Ul(n.dropdownBehaviours, [Dg.config({ toggleClass: n.toggleClass, aria: { mode: "expanded" } }), zx.config({ others: { sandbox: function (t) { return Kx(n, t, { onOpen: function () { Dg.on(t) }, onClose: function () { Dg.off(t) } }) } } }), ug.config({ mode: "special", onSpace: c, onEnter: c, onDown: function (t, n) { var e; return tw.isOpen(t) ? (e = zx.getCoupled(t, "sandbox"), u(e)) : tw.open(t), st.some(!0) }, onEscape: function (t, n) { return tw.isOpen(t) ? (tw.close(t), st.some(!0)) : st.none() } }), vg.config({})]), events: Ag(st.some(function (t) { Gx(n, function (t) { return t }, t, o, u, bx.HighlightFirst).get($) })), eventOrder: ut(ut({}, n.eventOrder), ((r = {})[_o()] = ["disabling", "toggling", "alloy.base.behaviour"], r)), apis: a, domModification: { attributes: ut(ut({ "aria-haspopup": "true" }, n.role.fold(function () { return {} }, function (t) { return { role: t } })), "button" === n.dom.tag ? { type: (i = "type", Ft(n.dom, "attributes").bind(function (t) { return Ft(t, i) }).getOr("button")) } : {}) } } }, apis: { open: function (t, n) { return t.open(n) }, expand: function (t, n) { return t.expand(n) }, close: function (t, n) { return t.close(n) }, isOpen: function (t, n) { return t.isOpen(n) }, repositionMenus: function (t, n) { return t.repositionMenus(n) } } }), nw = ac({ fields: [], name: "unselecting", active:/* */Object.freeze({ __proto__: null, events: function () { return Zo([tr(yo(), b)]) }, exhibit: function () { return gi({ styles: { "-webkit-user-select": "none", "user-select": "none", "-ms-user-select": "none", "-moz-user-select": "-moz-none" }, attributes: { unselectable: "on" } }) } }) }), ew = Kr("color-input-change"), ow = Kr("color-swatch-change"), rw = Kr("color-picker-cancel"), iw = function (e, n, o) { var r, i, t = Yy.parts.field({ factory: px, inputClasses: ["tox-textfield"], onSetValue: function (t) { return Vx.run(t).get(function () { }) }, inputBehaviours: ic([gv.config({ disabled: n.providers.isDisabled }), Lv(), Jy.config({}), Vx.config({ invalidClass: "tox-textbox-field-invalid", getRoot: function (t) { return kr(t.element) }, notify: { onValid: function (t) { var n = Nl.getValue(t); qo(t, ew, { color: n }) } }, validator: { validateOnLoad: !1, validate: function (t) { var n = Nl.getValue(t); if (0 === n.length) return _x(mt.value(!0)); var e = me.fromTag("span"); qi(e, "background-color", n); var o = Zi(e, "background-color").fold(function () { return mt.error("blah") }, function (t) { return mt.value(n) }); return _x(o) } } })]), selectOnFocus: !1 }), u = e.label.map(function (t) { return nx(t, n.providers) }), a = function (t, n) { qo(t, ow, { value: n }) }, c = gp((r = { dom: { tag: "span", attributes: { "aria-label": n.providers.translate("Color swatch") } }, layouts: { onRtl: function () { return [za, Ha, Ua] }, onLtr: function () { return [Ha, za, Ua] } }, components: [], fetch: Gb(o.getColors(), o.hasCustomColors()), columns: o.getColorCols(), presets: "color", onItemAction: function (t, e) { c.getOpt(t).each(function (n) { "custom" === e ? o.colorPicker(function (t) { t.fold(function () { return Yo(n, rw) }, function (t) { a(n, t), Nb(t) }) }, "#ffffff") : a(n, "remove" === e ? "" : e) }) } }, i = n, tw.sketch({ dom: r.dom, components: r.components, toggleClass: "mce-active", dropdownBehaviours: ic([Uv(i.providers.isDisabled), Lv(), nw.config({}), Jy.config({})]), layouts: r.layouts, sandboxClasses: ["tox-dialog__popups"], lazySink: i.getSink, fetch: function (n) { return Ox(function (t) { return r.fetch(t) }).map(function (t) { return st.from(hy(zt(Jb(Kr("menu-value"), t, function (t) { r.onItemAction(n, t) }, r.columns, r.presets, uh.CLOSE_ON_EXECUTE, function () { return !1 }, i.providers), { movement: Qb(r.columns, r.presets) }))) }) }, parts: { menu: wh(0, 0, r.presets) } }))); return Yy.sketch({ dom: { tag: "div", classes: ["tox-form__group"] }, components: u.toArray().concat([{ dom: { tag: "div", classes: ["tox-color-input"] }, components: [t, c.asSpec()] }]), fieldBehaviours: ic([dg("form-field-events", [er(ew, function (t, n) { c.getOpt(t).each(function (t) { qi(t.element, "background-color", n.event.color) }), qo(t, ex, { name: e.name }) }), er(ow, function (n, e) { Yy.getField(n).each(function (t) { Nl.setValue(t, e.event.value), td.getCurrent(n).each(vg.focus) }) }), er(rw, function (n, t) { Yy.getField(n).each(function (t) { td.getCurrent(n).each(vg.focus) }) })])]) }) }, uw = function (t, n, e) { return { hue: t, saturation: n, value: e } }, aw = Kr("rgb-hex-update"), cw = Kr("slider-update"), sw = Kr("palette-update"), lw = yf({ schema: [Ln("dom")], name: "label" }), fw = function (n) { return yf({ name: n + "-edge", overrides: function (t) { return t.model.manager.edgeActions[n].fold(function () { return {} }, function (o) { return { events: Zo([or(no(), function (t, n, e) { return o(t, e) }, [t]), or(io(), function (t, n, e) { return o(t, e) }, [t]), or(uo(), function (t, n, e) { e.mouseIsDown.get() && o(t, e) }, [t])]) } }) } }) }, dw = fw("top-left"), mw = fw("top"), gw = fw("top-right"), pw = fw("right"), hw = fw("bottom-right"), vw = fw("bottom"), bw = fw("bottom-left"), yw = [lw, fw("left"), pw, mw, vw, dw, gw, bw, hw, vf({ name: "thumb", defaults: at({ dom: { styles: { position: "absolute" } } }), overrides: function (t) { return { events: Zo([ir(no(), t, "spectrum"), ir(eo(), t, "spectrum"), ir(oo(), t, "spectrum"), ir(io(), t, "spectrum"), ir(uo(), t, "spectrum"), ir(co(), t, "spectrum")]) } } }), vf({ schema: [le("mouseIsDown", function () { return fe(!1) })], name: "spectrum", overrides: function (e) { var o = e.model.manager, r = function (n, t) { return o.getValueFromEvent(t).map(function (t) { return o.setValueFrom(n, e, t) }) }; return { behaviours: ic([ug.config({ mode: "special", onLeft: function (t) { return o.onLeft(t, e) }, onRight: function (t) { return o.onRight(t, e) }, onUp: function (t) { return o.onUp(t, e) }, onDown: function (t) { return o.onDown(t, e) } }), vg.config({})]), events: Zo([er(no(), r), er(eo(), r), er(io(), r), er(uo(), function (t, n) { e.mouseIsDown.get() && r(t, n) })]) } } })], xw = at("slider.change.value"), ww = function (t) { var n = t.event.raw; return -1 === n.type.indexOf("touch") ? n.clientX !== undefined ? st.some(n).map(function (t) { return wu(t.clientX, t.clientY) }) : st.none() : n.touches !== undefined && 1 === n.touches.length ? st.some(n.touches[0]).map(function (t) { return wu(t.clientX, t.clientY) }) : st.none() }, Sw = function (t) { return t.model.minX }, kw = function (t) { return t.model.minY }, Cw = function (t) { return t.model.minX - 1 }, Ow = function (t) { return t.model.minY - 1 }, _w = function (t) { return t.model.maxX }, Tw = function (t) { return t.model.maxY }, Ew = function (t) { return t.model.maxX + 1 }, Dw = function (t) { return t.model.maxY + 1 }, Bw = function (t, n, e) { return n(t) - e(t) }, Aw = function (t) { return Bw(t, _w, Sw) }, Mw = function (t) { return Bw(t, Tw, kw) }, Fw = function (t) { return Aw(t) / 2 }, Iw = function (t) { return Mw(t) / 2 }, Rw = function (t) { return t.stepSize }, Vw = function (t) { return t.snapToGrid }, Pw = function (t) { return t.snapStart }, Hw = function (t) { return t.rounded }, zw = function (t, n) { return t[n + "-edge"] !== undefined }, Nw = function (t) { return zw(t, "left") }, Lw = function (t) { return zw(t, "right") }, jw = function (t) { return zw(t, "top") }, Uw = function (t) { return zw(t, "bottom") }, Ww = function (t) { return t.model.value.get() }, Gw = function (t) { return { x: t } }, Xw = function (t) { return { y: t } }, Yw = function (t, n) { return { x: t, y: n } }, qw = function (t, n) { qo(t, xw(), { value: n }) }, Kw = function (t, n, e, o) { return t < n ? t : e < t ? e : t === n ? n - 1 : Math.max(n, t - o) }, Jw = function (t, n, e, o) { return e < t ? t : t < n ? n : t === e ? e + 1 : Math.min(e, t + o) }, $w = function (t, n, e) { return Math.max(n, Math.min(e, t)) }, Qw = function (t) { var n = t.min, e = t.max, o = t.range, r = t.value, i = t.step, u = t.snap, a = t.snapStart, c = t.rounded, s = t.hasMinEdge, l = t.hasMaxEdge, f = t.minBound, d = t.maxBound, m = t.screenRange, g = s ? n - 1 : n, p = l ? e + 1 : e; if (r < f) return g; if (d < r) return p; var h, v, b, y, x, w, S, k = (x = r, w = f, S = d, Math.min(S, Math.max(x, w)) - w), C = $w(k / m * o + n, g, p); return u && n <= C && C <= e ? (h = C, v = n, b = e, y = i, a.fold(function () { var t = h - v, n = Math.round(t / y) * y; return $w(v + n, v - 1, b + 1) }, function (t) { var n = (h - t) % y, e = Math.round(n / y), o = Math.floor((h - t) / y), r = Math.floor((b - t) / y), i = t + Math.min(r, o + e) * y; return Math.max(t, i) })) : c ? Math.round(C) : C }, Zw = function (t) { var n = t.min, e = t.max, o = t.range, r = t.value, i = t.hasMinEdge, u = t.hasMaxEdge, a = t.maxBound, c = t.maxOffset, s = t.centerMinEdge, l = t.centerMaxEdge; return r < n ? i ? 0 : s : e < r ? u ? a : l : (r - n) / o * c }, tS = "left", nS = function (t) { return t.element.dom.getBoundingClientRect() }, eS = function (t, n) { return t[n] }, oS = function (t) { var n = nS(t); return eS(n, tS) }, rS = function (t) { var n = nS(t); return eS(n, "right") }, iS = function (t) { var n = nS(t); return eS(n, "top") }, uS = function (t) { var n = nS(t); return eS(n, "bottom") }, aS = function (t) { var n = nS(t); return eS(n, "width") }, cS = function (t) { var n = nS(t); return eS(n, "height") }, sS = function (t, n, e) { return (t + n) / 2 - e }, lS = function (t, n) { var e = nS(t), o = nS(n), r = eS(e, tS), i = eS(e, "right"), u = eS(o, tS); return sS(r, i, u) }, fS = function (t, n) { var e = nS(t), o = nS(n), r = eS(e, "top"), i = eS(e, "bottom"), u = eS(o, "top"); return sS(r, i, u) }, dS = function (t, n) { qo(t, xw(), { value: n }) }, mS = function (t) { return { x: t } }, gS = function (t, n, e) { var o = { min: Sw(n), max: _w(n), range: Aw(n), value: e, step: Rw(n), snap: Vw(n), snapStart: Pw(n), rounded: Hw(n), hasMinEdge: Nw(n), hasMaxEdge: Lw(n), minBound: oS(t), maxBound: rS(t), screenRange: aS(t) }; return Qw(o) }, pS = function (i) { return function (t, n) { return e = t, r = (0 < i ? Jw : Kw)(Ww(o = n).x, Sw(o), _w(o), Rw(o)), dS(e, mS(r)), st.some(r).map(function () { return !0 }); var e, o, r } }, hS = function (t, n, e, o, r, i) { var u, a, c, s, l, f, d, m, g, p = (a = i, c = e, s = o, l = r, f = aS(u = n), d = s.bind(function (t) { return st.some(lS(t, u)) }).getOr(0), m = l.bind(function (t) { return st.some(lS(t, u)) }).getOr(f), g = { min: Sw(a), max: _w(a), range: Aw(a), value: c, hasMinEdge: Nw(a), hasMaxEdge: Lw(a), minBound: oS(u), minOffset: 0, maxBound: rS(u), maxOffset: f, centerMinEdge: d, centerMaxEdge: m }, Zw(g)); return oS(n) - oS(t) + p }, vS = pS(-1), bS = pS(1), yS = st.none, xS = st.none, wS = { "top-left": st.none(), top: st.none(), "top-right": st.none(), right: st.some(function (t, n) { qw(t, Gw(Ew(n))) }), "bottom-right": st.none(), bottom: st.none(), "bottom-left": st.none(), left: st.some(function (t, n) { qw(t, Gw(Cw(n))) }) }, SS =/* */Object.freeze({ __proto__: null, setValueFrom: function (t, n, e) { var o = gS(t, n, e), r = mS(o); return dS(t, r), o }, setToMin: function (t, n) { var e = Sw(n); dS(t, mS(e)) }, setToMax: function (t, n) { var e = _w(n); dS(t, mS(e)) }, findValueOfOffset: gS, getValueFromEvent: function (t) { return ww(t).map(function (t) { return t.left }) }, findPositionOfValue: hS, setPositionFromValue: function (t, n, e, o) { var r = Ww(e), i = hS(t, o.getSpectrum(t), r.x, o.getLeftEdge(t), o.getRightEdge(t), e), u = _u(n.element) / 2; qi(n.element, "left", i - u + "px") }, onLeft: vS, onRight: bS, onUp: yS, onDown: xS, edgeActions: wS }), kS = function (t, n) { qo(t, xw(), { value: n }) }, CS = function (t) { return { y: t } }, OS = function (t, n, e) { var o = { min: kw(n), max: Tw(n), range: Mw(n), value: e, step: Rw(n), snap: Vw(n), snapStart: Pw(n), rounded: Hw(n), hasMinEdge: jw(n), hasMaxEdge: Uw(n), minBound: iS(t), maxBound: uS(t), screenRange: cS(t) }; return Qw(o) }, _S = function (i) { return function (t, n) { return e = t, r = (0 < i ? Jw : Kw)(Ww(o = n).y, kw(o), Tw(o), Rw(o)), kS(e, CS(r)), st.some(r).map(function () { return !0 }); var e, o, r } }, TS = function (t, n, e, o, r, i) { var u, a, c, s, l, f, d, m, g, p = (a = i, c = e, s = o, l = r, f = cS(u = n), d = s.bind(function (t) { return st.some(fS(t, u)) }).getOr(0), m = l.bind(function (t) { return st.some(fS(t, u)) }).getOr(f), g = { min: kw(a), max: Tw(a), range: Mw(a), value: c, hasMinEdge: jw(a), hasMaxEdge: Uw(a), minBound: iS(u), minOffset: 0, maxBound: uS(u), maxOffset: f, centerMinEdge: d, centerMaxEdge: m }, Zw(g)); return iS(n) - iS(t) + p }, ES = st.none, DS = st.none, BS = _S(-1), AS = _S(1), MS = { "top-left": st.none(), top: st.some(function (t, n) { qw(t, Xw(Ow(n))) }), "top-right": st.none(), right: st.none(), "bottom-right": st.none(), bottom: st.some(function (t, n) { qw(t, Xw(Dw(n))) }), "bottom-left": st.none(), left: st.none() }, FS =/* */Object.freeze({ __proto__: null, setValueFrom: function (t, n, e) { var o = OS(t, n, e), r = CS(o); return kS(t, r), o }, setToMin: function (t, n) { var e = kw(n); kS(t, CS(e)) }, setToMax: function (t, n) { var e = Tw(n); kS(t, CS(e)) }, findValueOfOffset: OS, getValueFromEvent: function (t) { return ww(t).map(function (t) { return t.top }) }, findPositionOfValue: TS, setPositionFromValue: function (t, n, e, o) { var r = Ww(e), i = TS(t, o.getSpectrum(t), r.y, o.getTopEdge(t), o.getBottomEdge(t), e), u = bu(n.element) / 2; qi(n.element, "top", i - u + "px") }, onLeft: ES, onRight: DS, onUp: BS, onDown: AS, edgeActions: MS }), IS = function (t, n) { qo(t, xw(), { value: n }) }, RS = function (t, n) { return { x: t, y: n } }, VS = function (c, s) { return function (t, n) { return o = t, r = n, i = 0 < c ? Jw : Kw, u = (e = s) ? Ww(r).x : i(Ww(r).x, Sw(r), _w(r), Rw(r)), a = e ? i(Ww(r).y, kw(r), Tw(r), Rw(r)) : Ww(r).y, IS(o, RS(u, a)), st.some(u).map(function () { return !0 }); var e, o, r, i, u, a } }, PS = ww, HS = VS(-1, !1), zS = VS(1, !1), NS = VS(-1, !0), LS = VS(1, !0), jS = { "top-left": st.some(function (t, n) { qw(t, Yw(Cw(n), Ow(n))) }), top: st.some(function (t, n) { qw(t, Yw(Fw(n), Ow(n))) }), "top-right": st.some(function (t, n) { qw(t, Yw(Ew(n), Ow(n))) }), right: st.some(function (t, n) { qw(t, Yw(Ew(n), Iw(n))) }), "bottom-right": st.some(function (t, n) { qw(t, Yw(Ew(n), Dw(n))) }), bottom: st.some(function (t, n) { qw(t, Yw(Fw(n), Dw(n))) }), "bottom-left": st.some(function (t, n) { qw(t, Yw(Cw(n), Dw(n))) }), left: st.some(function (t, n) { qw(t, Yw(Cw(n), Iw(n))) }) }, US =/* */Object.freeze({ __proto__: null, setValueFrom: function (t, n, e) { var o = gS(t, n, e.left), r = OS(t, n, e.top), i = RS(o, r); return IS(t, i), i }, setToMin: function (t, n) { var e = Sw(n), o = kw(n); IS(t, RS(e, o)) }, setToMax: function (t, n) { var e = _w(n), o = Tw(n); IS(t, RS(e, o)) }, getValueFromEvent: PS, setPositionFromValue: function (t, n, e, o) { var r = Ww(e), i = hS(t, o.getSpectrum(t), r.x, o.getLeftEdge(t), o.getRightEdge(t), e), u = TS(t, o.getSpectrum(t), r.y, o.getTopEdge(t), o.getBottomEdge(t), e), a = _u(n.element) / 2, c = bu(n.element) / 2; qi(n.element, "left", i - a + "px"), qi(n.element, "top", u - c + "px") }, onLeft: HS, onRight: zS, onUp: NS, onDown: LS, edgeActions: jS }), WS = qf({ name: "Slider", configFields: [ne("stepSize", 1), ne("onChange", $), ne("onChoose", $), ne("onInit", $), ne("onDragStart", $), ne("onDragEnd", $), ne("snapToGrid", !1), ne("rounded", !0), Kn("snapStart"), jn("model", An("mode", { x: [ne("minX", 0), ne("maxX", 100), le("value", function (t) { return fe(t.mode.minX) }), Ln("getInitialValue"), ba("manager", SS)], y: [ne("minY", 0), ne("maxY", 100), le("value", function (t) { return fe(t.mode.minY) }), Ln("getInitialValue"), ba("manager", FS)], xy: [ne("minX", 0), ne("maxX", 100), ne("minY", 0), ne("maxY", 100), le("value", function (t) { return fe({ x: t.mode.minX, y: t.mode.minY }) }), Ln("getInitialValue"), ba("manager", US)] })), Ll("sliderBehaviours", [ug, Nl]), le("mouseIsDown", function () { return fe(!1) })], partFields: yw, factory: function (i, t, n, e) { var o, u = function (t) { return Mf(t, i, "thumb") }, a = function (t) { return Mf(t, i, "spectrum") }, r = function (t) { return Af(t, i, "left-edge") }, c = function (t) { return Af(t, i, "right-edge") }, s = function (t) { return Af(t, i, "top-edge") }, l = function (t) { return Af(t, i, "bottom-edge") }, f = i.model, d = f.manager, m = function (t, n) { d.setPositionFromValue(t, n, i, { getLeftEdge: r, getRightEdge: c, getTopEdge: s, getBottomEdge: l, getSpectrum: a }) }, g = function (t, n) { f.value.set(n); var e = u(t); return m(t, e), i.onChange(t, e, n), st.some(!0) }, p = function (e) { var t = i.mouseIsDown.get(); i.mouseIsDown.set(!1), t && Af(e, i, "thumb").each(function (t) { var n = f.value.get(); i.onChoose(e, t, n) }) }, h = function (t, n) { n.stop(), i.mouseIsDown.set(!0), i.onDragStart(t, u(t)) }, v = function (t, n) { n.stop(), i.onDragEnd(t, u(t)), p(t) }; return { uid: i.uid, dom: i.dom, components: t, behaviours: Ul(i.sliderBehaviours, [ug.config({ mode: "special", focusIn: function (t) { return Af(t, i, "spectrum").map(ug.focusIn).map(b) } }), Nl.config({ store: { mode: "manual", getValue: function (t) { return f.value.get() } } }), fc.config({ channels: ((o = {})[kl()] = { onReceive: p }, o) })]), events: Zo([er(xw(), function (t, n) { g(t, n.event.value) }), sr(function (t, n) { var e = f.getInitialValue(); f.value.set(e); var o = u(t); m(t, o); var r = a(t); i.onInit(t, o, r, f.value.get()) }), er(no(), h), er(oo(), v), er(io(), h), er(co(), v)]), apis: { resetToMin: function (t) { d.setToMin(t, i) }, resetToMax: function (t) { d.setToMax(t, i) }, changeValue: g, refresh: m }, domModification: { styles: { position: "relative" } } } }, apis: { resetToMin: function (t, n) { t.resetToMin(n) }, resetToMax: function (t, n) { t.resetToMax(n) }, refresh: function (t, n) { t.refresh(n) } } }), GS = [Ll("formBehaviours", [Nl])], XS = function (t) { return "" }, YS = function (o, t) { return { uid: o.uid, dom: o.dom, components: t, behaviours: Ul(o.formBehaviours, [Nl.config({ store: { mode: "manual", getValue: function (t) { var n = If(t, o); return Tt(n, function (t, r) { return t().bind(function (t) { var n, e, o = td.getCurrent(t); return n = o, e = new Error("Cannot find a current component to extract the value from for form part '" + r + "': " + Gr(t.element)), n.fold(function () { return mt.error(e) }, mt.value) }).map(Nl.getValue) }) }, setValue: function (e, t) { _t(t, function (n, t) { Af(e, o, t).each(function (t) { td.getCurrent(t).each(function (t) { Nl.setValue(t, n) }) }) }) } } })]), apis: { getField: function (t, n) { return Af(t, o, n).bind(td.getCurrent) } } } }, qS = { getField: li(function (t, n, e) { return t.getField(n, e) }), sketch: function (t) { var e, n = (e = [], { field: function (t, n) { return e.push(t), _f("form", XS(t), n) }, record: function () { return e } }), o = t(n), r = n.record(), i = V(r, function (t) { return vf({ name: t, pname: XS(t) }) }); return Lf("form", GS, i, YS, o) } }, KS = Kr("valid-input"), JS = Kr("invalid-input"), $S = Kr("validating-input"), QS = "colorcustom.rgb.", ZS = function (d, m, g, p) { var h = function (t, n, e, o, r) { var i, u, a = d(QS + "range"), c = [Yy.parts.label({ dom: { tag: "label", innerHtml: e, attributes: { "aria-label": o } } }), Yy.parts.field({ data: r, factory: px, inputAttributes: ut({ type: "text" }, "hex" === n ? { "aria-live": "polite" } : {}), inputClasses: [m("textfield")], inputBehaviours: ic([(i = n, u = t, Vx.config({ invalidClass: m("invalid"), notify: { onValidate: function (t) { qo(t, $S, { type: i }) }, onValid: function (t) { qo(t, KS, { type: i, value: Nl.getValue(t) }) }, onInvalid: function (t) { qo(t, JS, { type: i, value: Nl.getValue(t) }) } }, validator: { validate: function (t) { var n = Nl.getValue(t), e = u(n) ? mt.value(!0) : mt.error(d("aria.input.invalid")); return _x(e) }, validateOnLoad: !1 } })), Jy.config({})]), onSetValue: function (t) { Vx.isInvalid(t) && Vx.run(t).get($) } })], s = "hex" !== n ? [Yy.parts["aria-descriptor"]({ text: a })] : []; return { dom: { tag: "div", attributes: { role: "presentation" } }, components: c.concat(s) } }, v = function (t, n) { var e = n.red, o = n.green, r = n.blue; Nl.setValue(t, { red: e, green: o, blue: r }) }, b = gp({ dom: { tag: "div", classes: [m("rgba-preview")], styles: { "background-color": "white" }, attributes: { role: "presentation" } } }), y = function (t, n) { b.getOpt(t).each(function (t) { qi(t.element, "background-color", "#" + n.value) }) }; return Yf({ factory: function () { var e = { red: fe(st.some(255)), green: fe(st.some(255)), blue: fe(st.some(255)), hex: fe(st.some("ffffff")) }, o = function (t) { return e[t].get() }, i = function (t, n) { e[t].set(n) }, r = function (t) { var n = t.red, e = t.green, o = t.blue; i("red", st.some(n)), i("green", st.some(e)), i("blue", st.some(o)) }, n = function (t, n) { var e = n.event; "hex" !== e.type ? i(e.type, st.none()) : p(t) }, u = function (r, t, n) { var e = parseInt(n, 10); i(t, st.some(e)), o("red").bind(function (e) { return o("green").bind(function (n) { return o("blue").map(function (t) { return Ob(e, n, t, 1) }) }) }).each(function (t) { var n, e, o = (n = r, e = yb(t), qS.getField(n, "hex").each(function (t) { vg.isFocused(t) || Nl.setValue(n, { hex: e.value }) }), e); y(r, o) }) }, a = function (t, n) { var e = n.event; "hex" === e.type ? function (t, n) { g(t); var e = mb(n); i("hex", st.some(n)); var o = Eb(e); v(t, o), r(o), qo(t, aw, { hex: e }), y(t, e) }(t, e.value) : u(t, e.type, e.value) }, t = function (t) { return { label: d(QS + t + ".label"), description: d(QS + t + ".description") } }, c = t("red"), s = t("green"), l = t("blue"), f = t("hex"); return zt(qS.sketch(function (t) { return { dom: { tag: "form", classes: [m("rgb-form")], attributes: { "aria-label": d("aria.color.picker") } }, components: [t.field("red", Yy.sketch(h(_b, "red", c.label, c.description, 255))), t.field("green", Yy.sketch(h(_b, "green", s.label, s.description, 255))), t.field("blue", Yy.sketch(h(_b, "blue", l.label, l.description, 255))), t.field("hex", Yy.sketch(h(hb, "hex", f.label, f.description, "ffffff"))), b.asSpec()], formBehaviours: ic([Vx.config({ invalidClass: m("form-invalid") }), dg("rgb-form-events", [er(KS, a), er(JS, n), er($S, n)])]) } }), { apis: { updateHex: function (t, n) { var e, o; Nl.setValue(t, { hex: n.value }), e = t, o = Eb(n), v(e, o), r(o), y(t, n) } } }) }, name: "RgbForm", configFields: [], apis: { updateHex: function (t, n, e) { t.updateHex(n, e) } }, extraApis: {} }) }, tk = function (t, o) { var r = WS.parts.spectrum({ dom: { tag: "canvas", attributes: { role: "presentation" }, classes: [o("sv-palette-spectrum")] } }), i = WS.parts.thumb({ dom: { tag: "div", attributes: { role: "presentation" }, classes: [o("sv-palette-thumb")], innerHtml: "' } }), u = function (t, n) { var e, o, r = t.width, i = t.height, u = t.getContext("2d"); null !== u && (u.fillStyle = n, u.fillRect(0, 0, r, i), (e = u.createLinearGradient(0, 0, r, 0)).addColorStop(0, "rgba(255,255,255,1)"), e.addColorStop(1, "rgba(255,255,255,0)"), u.fillStyle = e, u.fillRect(0, 0, r, i), (o = u.createLinearGradient(0, 0, 0, i)).addColorStop(0, "rgba(0,0,0,0)"), o.addColorStop(1, "rgba(0,0,0,1)"), u.fillStyle = o, u.fillRect(0, 0, r, i)) }; return Yf({ factory: function (t) { var n = at({ x: 0, y: 0 }), e = ic([td.config({ find: st.some }), vg.config({})]); return WS.sketch({ dom: { tag: "div", attributes: { role: "presentation" }, classes: [o("sv-palette")] }, model: { mode: "xy", getInitialValue: n }, rounded: !1, components: [r, i], onChange: function (t, n, e) { qo(t, sw, { value: e }) }, onInit: function (t, n, e, o) { u(e.element.dom, Bb(Ab)) }, sliderBehaviours: e }) }, name: "SaturationBrightnessPalette", configFields: [], apis: { setRgba: function (t, n, e) { var o, r; o = e, r = n.components()[0].element.dom, u(r, Bb(o)) } }, extraApis: {} }) }, nk = function (f, d) { return Yf({ name: "ColourPicker", configFields: [Ln("dom"), ne("onValidHex", $), ne("onInvalidHex", $)], factory: function (t) { var a, v, n, e, o, r = ZS(f, d, t.onValidHex, t.onInvalidHex), i = tk(0, d), b = { paletteRgba: fe(Ab) }, u = gp(i.sketch({})), c = gp(r.sketch({})), s = function (t, e) { u.getOpt(t).each(function (t) { var n = Eb(e); b.paletteRgba.set(n), i.setRgba(t, n) }) }, l = function (t, n) { c.getOpt(t).each(function (t) { r.updateHex(t, n) }) }, y = function (n, e, t) { ft(t, function (t) { t(n, e) }) }; return { uid: t.uid, dom: t.dom, components: [u.asSpec(), (n = d, e = WS.parts.spectrum({ dom: { tag: "div", classes: [n("hue-slider-spectrum")], attributes: { role: "presentation" } } }), o = WS.parts.thumb({ dom: { tag: "div", classes: [n("hue-slider-thumb")], attributes: { role: "presentation" } } }), WS.sketch({ dom: { tag: "div", classes: [n("hue-slider")], attributes: { role: "presentation" } }, rounded: !1, model: { mode: "y", getInitialValue: at({ y: 0 }) }, components: [e, o], sliderBehaviours: ic([vg.config({})]), onChange: function (t, n, e) { qo(t, cw, { value: e }) } })), c.asSpec()], behaviours: ic([dg("colour-picker-events", [er(sw, (v = [l], function (t, n) { var e, o, r, i, u, a, c, s, l, f = n.event.value, d = b.paletteRgba.get(), m = (i = r = 0, u = (e = d).red / 255, a = e.green / 255, c = e.blue / 255, s = Math.min(u, Math.min(a, c)), l = Math.max(u, Math.max(a, c)), s === l ? uw(0, 0, 100 * (i = s)) : (r = 60 * ((r = u === s ? 3 : c === s ? 1 : 5) - (u === s ? a - c : c === s ? u - a : c - u) / (l - s)), o = (l - s) / l, i = l, uw(Math.round(r), Math.round(100 * o), Math.round(100 * i)))), g = uw(m.hue, f.x, 100 - f.y), p = Tb(g), h = yb(p); y(t, h, v) })), er(cw, (a = [s, l], function (t, n) { var e, o, r, i = n.event.value, u = (e = i.y, o = uw((100 - e) / 100 * 360, 100, 100), r = Tb(o), yb(r)); y(t, u, a) }))]), td.config({ find: function (t) { return c.getOpt(t) } }), ug.config({ mode: "acyclic" })]) } } }) }, ek = function () { return td.config({ find: st.some }) }, ok = function (t) { return td.config({ find: t.getOpt }) }, rk = function (t) { return td.config({ find: function (n) { return Tr(n.element, t).bind(function (t) { return n.getSystem().getByDom(t).toOptional() }) } }) }, ik = { "colorcustom.rgb.red.label": "R", "colorcustom.rgb.red.description": "Red component", "colorcustom.rgb.green.label": "G", "colorcustom.rgb.green.description": "Green component", "colorcustom.rgb.blue.label": "B", "colorcustom.rgb.blue.description": "Blue component", "colorcustom.rgb.hex.label": "#", "colorcustom.rgb.hex.description": "Hex color code", "colorcustom.rgb.range": "Range 0 to 255", "colorcustom.sb.saturation": "Saturation", "colorcustom.sb.brightness": "Brightness", "colorcustom.sb.picker": "Saturation and Brightness Picker", "colorcustom.sb.palette": "Saturation and Brightness Palette", "colorcustom.sb.instructions": "Use arrow keys to select saturation and brightness, on x and y axes", "colorcustom.hue.hue": "Hue", "colorcustom.hue.slider": "Hue Slider", "colorcustom.hue.palette": "Hue Palette", "colorcustom.hue.instructions": "Use arrow keys to select a hue", "aria.color.picker": "Color Picker", "aria.input.invalid": "Invalid input" }, uk = function (t) { return ik[t] }, ak = tinymce.util.Tools.resolve("tinymce.Resource"), ck = tinymce.util.Tools.resolve("tinymce.util.Tools"), sk = fn([ne("preprocess", ct), ne("postprocess", ct)]), lk = function (t, n, e) { return Nl.config(zt({ store: { mode: "manual", getValue: n, setValue: e } }, t.map(function (t) { return { store: { initialValue: t } } }).getOr({}))) }, fk = function (t, n, e) { return lk(t, function (t) { return n(t.element) }, function (t, n) { return e(t.element, n) }) }, dk = function (r, t) { var i = En("RepresentingConfigs.memento processors", sk, t); return Nl.config({ store: { mode: "manual", getValue: function (t) { var n = r.get(t), e = Nl.getValue(n); return i.postprocess(e) }, setValue: function (t, n) { var e = i.preprocess(n), o = r.get(t); Nl.setValue(o, e) } } }) }, mk = lk, gk = function (t) { return fk(t, Vr, Pr) }, pk = function (t) { return Nl.config({ store: { mode: "memory", initialValue: t } }) }, hk = function (i, u) { var n = function (t, n) { n.stop() }, e = function (t) { return function (n, e) { ft(t, function (t) { t(n, e) }) } }, o = function (t, n) { var e; gv.isDisabled(t) || (e = n.event.raw, a(t, e.dataTransfer.files)) }, r = function (t, n) { var e = n.event.raw.target; a(t, e.files) }, a = function (t, n) { var e, o, r; Nl.setValue(t, (e = n, o = u, r = ck.explode(o.getSetting("images_file_types", "jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp", "string")), H(Q(e), function (n) { return F(r, function (t) { return Se(n.name, "." + t) }) }))), qo(t, ex, { name: i.name }) }, c = gp({ dom: { tag: "input", attributes: { type: "file", accept: "image/*" }, styles: { display: "none" } }, behaviours: ic([dg("input-file-events", [ar(vo()), ar(Eo())])]) }), t = i.label.map(function (t) { return nx(t, u) }), s = Yy.parts.field({ factory: { sketch: function (t) { return { uid: t.uid, dom: { tag: "div", classes: ["tox-dropzone-container"] }, behaviours: ic([pk([]), ek(), gv.config({}), Dg.config({ toggleClass: "dragenter", toggleOnExecute: !1 }), dg("dropzone-events", [er("dragenter", e([n, Dg.toggle])), er("dragleave", e([n, Dg.toggle])), er("dragover", n), er("drop", e([n, o])), er(ho(), r)])]), components: [{ dom: { tag: "div", classes: ["tox-dropzone"], styles: {} }, components: [{ dom: { tag: "p", innerHtml: u.translate("Drop an image here") } }, mp.sketch({ dom: { tag: "button", innerHtml: u.translate("Browse for an image"), styles: { position: "relative" }, classes: ["tox-button", "tox-button--secondary"] }, components: [c.asSpec()], action: function (t) { c.get(t).element.dom.click() }, buttonBehaviours: ic([Jy.config({}), Uv(u.isDisabled), Lv()]) })] }] } } } }); return Qy(t, s, ["tox-form__group--stretched"], []) }, vk = Kr("alloy-fake-before-tabstop"), bk = Kr("alloy-fake-after-tabstop"), yk = function (t) { return { dom: { tag: "div", styles: { width: "1px", height: "1px", outline: "none" }, attributes: { tabindex: "0" }, classes: t }, behaviours: ic([vg.config({ ignore: !0 }), Jy.config({})]) } }, xk = function (t) { return { dom: { tag: "div", classes: ["tox-navobj"] }, components: [yk([vk]), t, yk([bk])], behaviours: ic([rk(1)]) } }, wk = function (t, n) { qo(t, mo(), { raw: { which: 9, shiftKey: n } }) }, Sk = function (t, n) { var e = n.element; Ai(e, vk) ? wk(t, !0) : Ai(e, bk) && wk(t, !1) }, kk = function (t) { return Sy(t, ["." + vk, "." + bk].join(","), c) }, Ck = !(je().browser.isIE() || je().browser.isEdge()), Ok = function (t, n) { var o, r, e = Ck && t.sandboxed, i = ut(ut({}, t.label.map(function (t) { return { title: t } }).getOr({})), e ? { sandbox: "allow-scripts allow-same-origin" } : {}), u = (o = e, r = fe(""), { getValue: function (t) { return r.get() }, setValue: function (t, n) { var e; o ? zr(t.element, "srcdoc", n) : (zr(t.element, "src", "javascript:''"), (e = t.element.dom.contentWindow.document).open(), e.write(n), e.close()), r.set(n) } }), a = t.label.map(function (t) { return nx(t, n) }), c = Yy.parts.field({ factory: { sketch: function (t) { return xk({ uid: t.uid, dom: { tag: "iframe", attributes: i }, behaviours: ic([Jy.config({}), vg.config({}), mk(st.none(), u.getValue, u.setValue)]) }) } } }); return Qy(a, c, ["tox-form__group--stretched"], []) }; function _k(t, n) { return Dk(document.createElement("canvas"), t, n) } function Tk(t) { var n = _k(t.width, t.height); return Ek(n).drawImage(t, 0, 0), n } function Ek(t) { return t.getContext("2d") } function Dk(t, n, e) { return t.width = n, t.height = e, t } function Bk(t) { return t.naturalWidth || t.width } function Ak(t) { return t.naturalHeight || t.height } var Mk, Fk, Ik, Rk, Vk = window.Promise ? window.Promise : (Mk = function (t) { if ("object" != typeof this) throw new TypeError("Promises must be constructed via new"); if ("function" != typeof t) throw new TypeError("not a function"); this._state = null, this._value = null, this._deferreds = [], Uk(t, Pk(zk, this), Pk(Nk, this)) }, Fk = window, Ik = Mk.immediateFn || "function" == typeof Fk.setImmediate && Fk.setImmediate || function (t) { setTimeout(t, 1) }, Rk = Array.isArray || function (t) { return "[object Array]" === Object.prototype.toString.call(t) }, Mk.prototype["catch"] = function (t) { return this.then(null, t) }, Mk.prototype.then = function (e, o) { var r = this; return new Mk(function (t, n) { Hk.call(r, new jk(e, o, t, n)) }) }, Mk.all = function () { for (var t = [], n = 0; n < arguments.length; n++)t[n] = arguments[n]; var c = Array.prototype.slice.call(1 === t.length && Rk(t[0]) ? t[0] : t); return new Mk(function (r, i) { if (0 === c.length) return r([]); for (var u = c.length, t = 0; t < c.length; t++)!function a(n, t) { try { if (t && ("object" == typeof t || "function" == typeof t)) { var e = t.then; if ("function" == typeof e) return void e.call(t, function (t) { a(n, t) }, i) } c[n] = t, 0 == --u && r(c) } catch (o) { i(o) } }(t, c[t]) }) }, Mk.resolve = function (n) { return n && "object" == typeof n && n.constructor === Mk ? n : new Mk(function (t) { t(n) }) }, Mk.reject = function (e) { return new Mk(function (t, n) { n(e) }) }, Mk.race = function (r) { return new Mk(function (t, n) { for (var e = 0, o = r; e < o.length; e++)o[e].then(t, n) }) }, Mk); function Pk(t, n) { return function () { return t.apply(n, arguments) } } function Hk(o) { var r = this; null !== this._state ? Ik(function () { var t, n = r._state ? o.onFulfilled : o.onRejected; if (null !== n) { try { t = n(r._value) } catch (e) { return void o.reject(e) } o.resolve(t) } else (r._state ? o.resolve : o.reject)(r._value) }) : this._deferreds.push(o) } function zk(t) { try { if (t === this) throw new TypeError("A promise cannot be resolved with itself."); if (t && ("object" == typeof t || "function" == typeof t)) { var n = t.then; if ("function" == typeof n) return void Uk(Pk(n, t), Pk(zk, this), Pk(Nk, this)) } this._state = !0, this._value = t, Lk.call(this) } catch (e) { Nk.call(this, e) } } function Nk(t) { this._state = !1, this._value = t, Lk.call(this) } function Lk() { for (var t = 0, n = this._deferreds; t < n.length; t++) { var e = n[t]; Hk.call(this, e) } this._deferreds = [] } function jk(t, n, e, o) { this.onFulfilled = "function" == typeof t ? t : null, this.onRejected = "function" == typeof n ? n : null, this.resolve = e, this.reject = o } function Uk(t, n, e) { var o = !1; try { t(function (t) { o || (o = !0, n(t)) }, function (t) { o || (o = !0, e(t)) }) } catch (r) { if (o) return; o = !0, e(r) } } function Wk(e) { return new Vk(function (t, n) { (function (t) { var n = t.split(","), e = /data:([^;]+)/.exec(n[0]); if (!e) return st.none(); for (var o = e[1], r = n[1], i = atob(r), u = i.length, a = Math.ceil(u / 1024), c = new Array(a), s = 0; s < a; ++s) { for (var l = 1024 * s, f = Math.min(1024 + l, u), d = new Array(f - l), m = l, g = 0; m < f; ++g, ++m)d[g] = i[m].charCodeAt(0); c[s] = new Uint8Array(d) } return st.some(new Blob(c, { type: o })) })(e).fold(function () { n("uri is not base64: " + e) }, t) }) } function Gk(t, o, r) { return o = o || "image/png", _(HTMLCanvasElement.prototype.toBlob) ? new Vk(function (n, e) { t.toBlob(function (t) { t ? n(t) : e() }, o, r) }) : Wk(t.toDataURL(o, r)) } function Xk(t) { return a = t, new Vk(function (t, n) { var e = URL.createObjectURL(a), o = new Image, r = function () { o.removeEventListener("load", i), o.removeEventListener("error", u) }; function i() { r(), t(o) } function u() { r(), n("Unable to load data of type " + a.type + ": " + e) } o.addEventListener("load", i), o.addEventListener("error", u), o.src = e, o.complete && i() }).then(function (t) { var n; n = t, URL.revokeObjectURL(n.src); var e = _k(Bk(t), Ak(t)); return Ek(e).drawImage(t, 0, 0), e }); var a } function Yk(t, n, e) { var o = n.type; function r(o, r) { return t.then(function (t) { return e = r, n = (n = o) || "image/png", t.toDataURL(n, e); var n, e }) } return { getType: at(o), toBlob: function () { return Vk.resolve(n) }, toDataURL: at(e), toBase64: function () { return e.split(",")[1] }, toAdjustedBlob: function (n, e) { return t.then(function (t) { return Gk(t, n, e) }) }, toAdjustedDataURL: r, toAdjustedBase64: function (t, n) { return r(t, n).then(function (t) { return t.split(",")[1] }) }, toCanvas: function () { return t.then(Tk) } } } function qk(n) { return e = n, new Vk(function (t) { var n = new FileReader; n.onloadend = function () { t(n.result) }, n.readAsDataURL(e) }).then(function (t) { return Yk(Xk(n), n, t) }); var e } function Kk(n, t) { return Gk(n, t).then(function (t) { return Yk(Vk.resolve(n), t, n.toDataURL()) }) } var Jk = qk; function $k(t, n, e) { var o = "string" == typeof t ? parseFloat(t) : t; return e < o ? o = e : o < n && (o = n), o } function Qk() { return [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1] } var Zk = [0, .01, .02, .04, .05, .06, .07, .08, .1, .11, .12, .14, .15, .16, .17, .18, .2, .21, .22, .24, .25, .27, .28, .3, .32, .34, .36, .38, .4, .42, .44, .46, .48, .5, .53, .56, .59, .62, .65, .68, .71, .74, .77, .8, .83, .86, .89, .92, .95, .98, 1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36, 1.42, 1.48, 1.54, 1.6, 1.66, 1.72, 1.78, 1.84, 1.9, 1.96, 2, 2.12, 2.25, 2.37, 2.5, 2.62, 2.75, 2.87, 3, 3.2, 3.4, 3.6, 3.8, 4, 4.3, 4.7, 4.9, 5, 5.5, 6, 6.5, 6.8, 7, 7.3, 7.5, 7.8, 8, 8.4, 8.7, 9, 9.4, 9.6, 9.8, 10]; function tC(t, n) { for (var e, o = [], r = new Array(25), i = 0; i < 5; i++) { for (var u = 0; u < 5; u++)o[u] = n[u + 5 * i]; for (u = 0; u < 5; u++) { for (var a = e = 0; a < 5; a++)e += t[u + 5 * a] * o[a]; r[u + 5 * i] = e } } return r } function nC(u, a) { return u.toCanvas().then(function (t) { return n = t, e = u.getType(), o = a, r = Ek(n), i = function (t, n) { for (var e, o, r, i, u = t.data, a = n[0], c = n[1], s = n[2], l = n[3], f = n[4], d = n[5], m = n[6], g = n[7], p = n[8], h = n[9], v = n[10], b = n[11], y = n[12], x = n[13], w = n[14], S = n[15], k = n[16], C = n[17], O = n[18], _ = n[19], T = 0; T < u.length; T += 4)e = u[T], o = u[T + 1], r = u[T + 2], i = u[T + 3], u[T] = e * a + o * c + r * s + i * l + f, u[T + 1] = e * d + o * m + r * g + i * p + h, u[T + 2] = e * v + o * b + r * y + i * x + w, u[T + 3] = e * S + o * k + r * C + i * O + _; return t }(r.getImageData(0, 0, n.width, n.height), o), r.putImageData(i, 0, 0), Kk(n, e); var n, e, o, r, i }) } function eC(a, c) { return a.toCanvas().then(function (t) { return n = t, e = a.getType(), o = c, r = Ek(n), i = r.getImageData(0, 0, n.width, n.height), u = r.getImageData(0, 0, n.width, n.height), u = function (t, n, e) { function o(t, n, e) { return e < t ? t = e : t < n && (t = n), t } for (var r = Math.round(Math.sqrt(e.length)), i = Math.floor(r / 2), u = t.data, a = n.data, c = t.width, s = t.height, l = 0; l < s; l++)for (var f = 0; f < c; f++) { for (var d = 0, m = 0, g = 0, p = 0; p < r; p++)for (var h = 0; h < r; h++) { var v = o(f + h - i, 0, c - 1), b = 4 * (o(l + p - i, 0, s - 1) * c + v), y = e[p * r + h]; d += u[b] * y, m += u[1 + b] * y, g += u[2 + b] * y } var x = 4 * (l * c + f); a[x] = o(d, 0, 255), a[1 + x] = o(m, 0, 255), a[2 + x] = o(g, 0, 255) } return n }(i, u, o), r.putImageData(u, 0, 0), Kk(n, e); var n, e, o, r, i, u }) } function oC(e) { return function (t, n) { return nC(t, e(Qk(), n)) } } var rC, iC, uC, aC, cC = (rC = [-1, 0, 0, 0, 255, 0, -1, 0, 0, 255, 0, 0, -1, 0, 255, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], function (t) { return nC(t, rC) }), sC = oC(function (t, n) { return tC(t, [1, 0, 0, 0, n = $k(255 * n, -255, 255), 0, 1, 0, 0, n, 0, 0, 1, 0, n, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]) }), lC = oC(function (t, n) { var e; return n = $k(n, -1, 1), tC(t, [(e = (n *= 100) < 0 ? 127 + n / 100 * 127 : 127 * (e = 0 === (e = n % 1) ? Zk[n] : Zk[Math.floor(n)] * (1 - e) + Zk[Math.floor(n) + 1] * e) + 127) / 127, 0, 0, 0, .5 * (127 - e), 0, e / 127, 0, 0, .5 * (127 - e), 0, 0, e / 127, 0, .5 * (127 - e), 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]) }), fC = (iC = [0, -1, 0, -1, 5, -1, 0, -1, 0], function (t) { return eC(t, iC) }), dC = (uC = function (t, n) { return 255 * Math.pow(t / 255, 1 - n) }, aC = function (t, n, e) { var o = Ek(t), r = new Array(256); for (var i = 0; i < r.length; i++)r[i] = uC(i, e); var u = function (t, n) { for (var e = t.data, o = 0; o < e.length; o += 4)e[o] = n[e[o]], e[o + 1] = n[e[o + 1]], e[o + 2] = n[e[o + 2]]; return t }(o.getImageData(0, 0, t.width, t.height), r); return o.putImageData(u, 0, 0), Kk(t, n) }, function (n, e) { return n.toCanvas().then(function (t) { return aC(t, n.getType(), e) }) }); function mC(t, n, e) { var o = Bk(t), r = Ak(t), i = n / o, u = e / r, a = !1; (i < .5 || 2 < i) && (i = i < .5 ? .5 : 2, a = !0), (u < .5 || 2 < u) && (u = u < .5 ? .5 : 2, a = !0); var c, s, l, f = (c = t, s = i, l = u, new Vk(function (t) { var n = Bk(c), e = Ak(c), o = Math.floor(n * s), r = Math.floor(e * l), i = _k(o, r); Ek(i).drawImage(c, 0, 0, n, e, 0, 0, o, r), t(i) })); return a ? f.then(function (t) { return mC(t, n, e) }) : f } function gC(n, e) { return n.toCanvas().then(function (t) { return function (t, n, e) { var o = _k(t.width, t.height), r = Ek(o), i = 0, u = 0; 90 !== (e = e < 0 ? 360 + e : e) && 270 !== e || Dk(o, o.height, o.width); 90 !== e && 180 !== e || (i = o.width); 270 !== e && 180 !== e || (u = o.height); return r.translate(i, u), r.rotate(e * Math.PI / 180), r.drawImage(t, 0, 0), Kk(o, n) }(t, n.getType(), e) }) } function pC(n, e) { return n.toCanvas().then(function (t) { return function (t, n, e) { var o = _k(t.width, t.height), r = Ek(o); "v" === e ? (r.scale(1, -1), r.drawImage(t, 0, -o.height)) : (r.scale(-1, 1), r.drawImage(t, -o.width, 0)); return Kk(o, n) }(t, n.getType(), e) }) } function hC(u, a, c, s, l) { return u.toCanvas().then(function (t) { return n = t, e = u.getType(), o = a, r = c, Ek(i = _k(s, l)).drawImage(n, -o, -r), Kk(i, e); var n, e, o, r, i }) } var vC, bC = function (t) { return cC(t) }, yC = function (t) { return fC(t) }, xC = function (t, n) { return dC(t, n) }, wC = function (t, n, e, o) { return nC(t, (r = Qk(), i = e, u = o, tC(r, [$k(n, 0, 2), 0, 0, 0, 0, 0, i = $k(i, 0, 2), 0, 0, 0, 0, 0, u = $k(u, 0, 2), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]))); var r, i, u }, SC = function (t, n) { return sC(t, n) }, kC = function (t, n) { return lC(t, n) }, CC = pC, OC = hC, _C = function (t, n, e) { return r = n, i = e, (o = t).toCanvas().then(function (t) { return mC(t, r, i).then(function (t) { return Kk(t, o.getType()) }) }); var o, r, i }, TC = gC, EC = function (t, n) { return ut({ dom: { tag: "span", innerHtml: t, classes: ["tox-icon", "tox-tbtn__icon-wrap"] } }, n) }, DC = function (t, n) { return EC(hp(t, n), {}) }, BC = function (t, n) { return EC(hp(t, n), { behaviours: ic([fg.config({})]) }) }, AC = function (t, n, e) { return { dom: { tag: "span", innerHtml: e.translate(t), classes: [n + "__select-label"] }, behaviours: ic([fg.config({})]) } }, MC = Kr("toolbar.button.execute"), FC = ((vC = {})[_o()] = ["disabling", "alloy.base.behaviour", "toggling", "toolbar-button-events"], vC), IC = Kr("update-menu-text"), RC = Kr("update-menu-icon"), VC = function (n, e, o) { var t = fe($), r = n.text.map(function (t) { return gp(AC(t, e, o.providers)) }), i = n.icon.map(function (t) { return gp(BC(t, o.providers.icons)) }), u = function (t, n) { var e = Nl.getValue(t); return vg.focus(e), qo(e, "keydown", { raw: n.event.raw }), tw.close(e), st.some(!0) }, a = n.role.fold(function () { return {} }, function (t) { return { role: t } }), c = n.tooltip.fold(function () { return {} }, function (t) { var n = o.providers.translate(t); return { title: n, "aria-label": n } }); return gp(tw.sketch(ut(ut(ut({}, n.uid ? { uid: n.uid } : {}), a), { dom: { tag: "button", classes: [e, e + "--select"].concat(V(n.classes, function (t) { return e + "--" + t })), attributes: ut({}, c) }, components: Jv([i.map(function (t) { return t.asSpec() }), r.map(function (t) { return t.asSpec() }), st.some({ dom: { tag: "div", classes: [e + "__select-chevron"], innerHtml: hp("chevron-down", o.providers.icons) } })]), matchWidth: !0, useMinWidth: !0, dropdownBehaviours: ic(S(n.dropdownBehaviours, [Uv(function () { return n.disabled || o.providers.isDisabled() }), Lv(), nw.config({}), fg.config({}), dg("dropdown-events", [Yv(n, t), qv(n, t)]), dg("menubutton-update-display-text", [er(IC, function (n, e) { r.bind(function (t) { return t.getOpt(n) }).each(function (t) { fg.set(t, [fu(o.providers.translate(e.event.text))]) }) }), er(RC, function (n, e) { i.bind(function (t) { return t.getOpt(n) }).each(function (t) { fg.set(t, [BC(e.event.icon, o.providers.icons)]) }) })])])), eventOrder: zt(FC, { mousedown: ["focusing", "alloy.base.behaviour", "item-type-events", "normal-dropdown-events"] }), sandboxBehaviours: ic([ug.config({ mode: "special", onLeft: u, onRight: u })]), lazySink: o.getSink, toggleClass: e + "--active", parts: { menu: wh(0, n.columns, n.presets) }, fetch: function (t) { return Ox(y(n.fetch, t)) } }))).asSpec() }, PC = function (t) { return "separator" === t.type }, HC = { type: "separator" }, zC = function (t, e) { var n = N(t, function (t, n) { return k(n) ? "" === n ? t : "|" === n ? 0 < t.length && !PC(t[t.length - 1]) ? t.concat([HC]) : t : It(e, n.toLowerCase()) ? t.concat([e[n.toLowerCase()]]) : t : t.concat([n]) }, []); return 0 < n.length && PC(n[n.length - 1]) && n.pop(), n }, NC = function (t, n) { return It(t, "getSubmenuItems") ? (o = n, r = (e = t).getSubmenuItems(), i = LC(r, o), { item: e, menus: zt(i.menus, Jt(e.value, i.items)), expansions: zt(i.expansions, Jt(e.value, e.value)) }) : { item: t, menus: {}, expansions: {} }; var e, o, r, i }, LC = function (t, r) { var n = zC(k(t) ? t.split(" ") : t, r); return z(n, function (t, n) { var e = function (t) { if (PC(t)) return t; var n = Ft(t, "value").getOrThunk(function () { return Kr("generated-menu-item") }); return zt({ value: n }, t) }(n), o = NC(e, r); return { menus: zt(t.menus, o.menus), items: [o.item].concat(t.items), expansions: zt(t.expansions, o.expansions) } }, { menus: {}, expansions: {}, items: [] }) }, jC = function (t, e, o, n) { var r = Kr("primary-menu"), i = LC(t, o.shared.providers.menuItems()); if (0 === i.items.length) return st.none(); var u = py(r, i.items, e, o, n), a = Tt(i.menus, function (t, n) { return py(n, t, e, o, !1) }), c = zt(a, Jt(r, u)); return st.from(Zg.tieredData(r, c, i.expansions)) }, UC = function (e) { return { isDisabled: function () { return gv.isDisabled(e) }, setDisabled: function (t) { return gv.set(e, t) }, setActive: function (t) { var n = e.element; t ? (Ei(n, "tox-tbtn--enabled"), zr(n, "aria-pressed", !0)) : (Bi(n, "tox-tbtn--enabled"), Ur(n, "aria-pressed")) }, isActive: function () { return Ai(e.element, "tox-tbtn--enabled") } } }, WC = function (e, t, o, n) { return VC({ text: e.text, icon: e.icon, tooltip: e.tooltip, role: n, fetch: function (t, n) { e.fetch(function (t) { n(jC(t, uh.CLOSE_ON_EXECUTE, o, !1)) }) }, onSetup: e.onSetup, getApi: UC, columns: 1, presets: "normal", classes: [], dropdownBehaviours: [Jy.config({})] }, t, o.shared) }, GC = function (n, r, i) { return function (t) { t(V(n, function (t) { var n, e, o = t.text.fold(function () { return {} }, function (t) { return { text: t } }); return ut(ut({ type: t.type, active: !1 }, o), { onAction: function (t) { var n = !t.isActive(); t.setActive(n), e.storage.set(n), i.shared.getSink().each(function (t) { r().getOpt(t).each(function (t) { mc(t.element), qo(t, ix, { name: e.name, value: e.storage.get() }) }) }) }, onSetup: (n = e = t, function (t) { t.setActive(n.storage.get()) }) }) })) } }, XC = function (t, n, e, o, r, i) { void 0 === e && (e = []); var u = n.fold(function () { return {} }, function (t) { return { action: t } }), a = ut({ buttonBehaviours: ic([Uv(function () { return t.disabled || i.isDisabled() }), Lv(), Jy.config({}), dg("button press", [nr("click"), nr("mousedown")])].concat(e)), eventOrder: { click: ["button press", "alloy.base.behaviour"], mousedown: ["button press", "alloy.base.behaviour"] } }, u), c = zt(a, { dom: o }); return zt(c, { components: r }) }, YC = function (t, n, e, o) { void 0 === o && (o = []); var r = { tag: "button", classes: ["tox-tbtn"], attributes: t.tooltip.map(function (t) { return { "aria-label": e.translate(t), title: e.translate(t) } }).getOr({}) }, i = t.icon.map(function (t) { return DC(t, e.icons) }), u = Jv([i]); return XC(t, n, o, r, u, e) }, qC = function (t, n, e, o) { void 0 === o && (o = []); var r = YC(t, st.some(n), e, o); return mp.sketch(r) }, KC = function (t, n, e, o, r) { void 0 === o && (o = []), void 0 === r && (r = []); var i = e.translate(t.text), u = t.icon ? t.icon.map(function (t) { return DC(t, e.icons) }) : st.none(), a = u.isSome() ? Jv([u]) : [], c = u.isSome() ? {} : { innerHtml: i }, s = S(t.primary || t.borderless ? ["tox-button"] : ["tox-button", "tox-button--secondary"], u.isSome() ? ["tox-button--icon"] : [], t.borderless ? ["tox-button--naked"] : [], r), l = ut(ut({ tag: "button", classes: s }, c), { attributes: { title: i } }); return XC(t, n, o, l, a, e) }, JC = function (t, n, e, o, r) { void 0 === o && (o = []), void 0 === r && (r = []); var i = KC(t, st.some(n), e, o, r); return mp.sketch(i) }, $C = function (n, e) { return function (t) { "custom" === e ? qo(t, ix, { name: n, value: {} }) : "submit" === e ? Yo(t, ux) : "cancel" === e ? Yo(t, rx) : console.error("Unknown button type: ", e) } }, QC = function (n, t, e) { if ("menu" === t) { var o = n, r = ut(ut({}, n), { onSetup: function (t) { return t.setDisabled(n.disabled), $ }, fetch: GC(o.items, function () { return i }, e) }), i = gp(WC(r, "tox-tbtn", e, st.none())); return i.asSpec() } if ("custom" === (c = t) || "cancel" === c || "submit" === c) { var u = $C(n.name, t), a = ut(ut({}, n), { borderless: !1 }); return JC(a, u, e.shared.providers, []) } var c; console.error("Unknown footer button type: ", t) }, ZC = function (t, n) { var e, o, r = $C(t.name, "custom"); return e = st.none(), o = Yy.parts.field(ut({ factory: mp }, KC(t, st.some(r), n, [pk(""), ek()]))), Qy(e, o, [], []) }, tO = at([ne("field1Name", "field1"), ne("field2Name", "field2"), ha("onLockedChange"), da(["lockClass"]), ne("locked", !1), Wl("coupledFieldBehaviours", [td, Nl])]), nO = function (t, n) { return vf({ factory: Yy, name: t, overrides: function (o) { return { fieldBehaviours: ic([dg("coupled-input-behaviour", [er(po(), function (e) { Af(e, o, n).bind(td.getCurrent).each(function (n) { Af(e, o, "lock").each(function (t) { Dg.isOn(t) && o.onLockedChange(e, n, t) }) }) })])]) } } }) }, eO = at([nO("field1", "field2"), nO("field2", "field1"), vf({ factory: mp, schema: [Ln("dom")], name: "lock", overrides: function (t) { return { buttonBehaviours: ic([Dg.config({ selected: t.locked, toggleClass: t.markers.lockClass, aria: { mode: "pressed" } })]) } } })]), oO = qf({ name: "FormCoupledInputs", configFields: tO(), partFields: eO(), factory: function (o, t, n, e) { return { uid: o.uid, dom: o.dom, components: t, behaviours: Gl(o.coupledFieldBehaviours, [td.config({ find: st.some }), Nl.config({ store: { mode: "manual", getValue: function (t) { var n = Vf(t, o, ["field1", "field2"]), e = {}; return e[o.field1Name] = Nl.getValue(n.field1()), e[o.field2Name] = Nl.getValue(n.field2()), e }, setValue: function (t, n) { var e = Vf(t, o, ["field1", "field2"]); Rt(n, o.field1Name) && Nl.setValue(e.field1(), n[o.field1Name]), Rt(n, o.field2Name) && Nl.setValue(e.field2(), n[o.field2Name]) } } })]), apis: { getField1: function (t) { return Af(t, o, "field1") }, getField2: function (t) { return Af(t, o, "field2") }, getLock: function (t) { return Af(t, o, "lock") } } } }, apis: { getField1: function (t, n) { return t.getField1(n) }, getField2: function (t, n) { return t.getField2(n) }, getLock: function (t, n) { return t.getLock(n) } } }), rO = function (t) { var n = /^\s*(\d+(?:\.\d+)?)\s*(|cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|%)\s*$/.exec(t); if (null === n) return mt.error(t); var e = parseFloat(n[1]), o = n[2]; return mt.value({ value: e, unit: o }) }, iO = function (t, n) { var e = { "": 96, px: 96, pt: 72, cm: 2.54, pc: 12, mm: 25.4, "in": 1 }, o = function (t) { return Object.prototype.hasOwnProperty.call(e, t) }; return t.unit === n ? st.some(t.value) : o(t.unit) && o(n) ? e[t.unit] === e[n] ? st.some(t.value) : st.some(t.value / e[t.unit] * e[n]) : st.none() }, uO = function (t) { return st.none() }, aO = function (t, n) { var e, o, r, i = rO(t).toOptional(), u = rO(n).toOptional(); return o = u, r = function (t, o) { return iO(t, o.unit).map(function (t) { return o.value / t }).map(function (t) { return n = t, e = o.unit, function (t) { return iO(t, e).map(function (t) { return { value: t * n, unit: e } }) }; var n, e }).getOr(uO) }, ((e = i).isSome() && o.isSome() ? st.some(r(e.getOrDie(), o.getOrDie())) : st.none()).getOr(uO) }, cO = function (o, n) { var a = uO, r = Kr("ratio-event"), t = oO.parts.lock({ dom: { tag: "button", classes: ["tox-lock", "tox-button", "tox-button--naked", "tox-button--icon"], attributes: { title: n.translate(o.label.getOr("Constrain proportions")) } }, components: [{ dom: { tag: "span", classes: ["tox-icon", "tox-lock-icon__lock"], innerHtml: hp("lock", n.icons) } }, { dom: { tag: "span", classes: ["tox-icon", "tox-lock-icon__unlock"], innerHtml: hp("unlock", n.icons) } }], buttonBehaviours: ic([gv.config({ disabled: function () { return o.disabled || n.isDisabled() } }), Lv(), Jy.config({})]) }), e = function (t) { return { dom: { tag: "div", classes: ["tox-form__group"] }, components: t } }, i = function (e) { return Yy.parts.field({ factory: px, inputClasses: ["tox-textfield"], inputBehaviours: ic([gv.config({ disabled: function () { return o.disabled || n.isDisabled() } }), Lv(), Jy.config({}), dg("size-input-events", [er(lo(), function (t, n) { qo(t, r, { isField1: e }) }), er(ho(), function (t, n) { qo(t, ex, { name: o.name }) })])]), selectOnFocus: !1 }) }, u = function (t) { return { dom: { tag: "label", classes: ["tox-label"], innerHtml: n.translate(t) } } }, c = oO.parts.field1(e([Yy.parts.label(u("Width")), i(!0)])), s = oO.parts.field2(e([Yy.parts.label(u("Height")), i(!1)])); return oO.sketch({ dom: { tag: "div", classes: ["tox-form__group"] }, components: [{ dom: { tag: "div", classes: ["tox-form__controls-h-stack"] }, components: [c, s, e([u(" "), t])] }], field1Name: "width", field2Name: "height", locked: !0, markers: { lockClass: "tox-locked" }, onLockedChange: function (t, i, n) { rO(Nl.getValue(t)).each(function (t) { a(t).each(function (t) { var n, e, o, r; Nl.setValue(i, (o = { "": 0, px: 0, pt: 1, mm: 1, pc: 2, ex: 2, em: 2, ch: 2, rem: 2, cm: 3, "in": 4, "%": 4 }, -1 !== (r = (n = t).value.toFixed((e = n.unit) in o ? o[e] : 1)).indexOf(".") && (r = r.replace(/\.?0*$/, "")), r + n.unit)) }) }) }, coupledFieldBehaviours: ic([gv.config({ disabled: function () { return o.disabled || n.isDisabled() }, onDisabled: function (t) { oO.getField1(t).bind(Yy.getField).each(gv.disable), oO.getField2(t).bind(Yy.getField).each(gv.disable), oO.getLock(t).each(gv.disable) }, onEnabled: function (t) { oO.getField1(t).bind(Yy.getField).each(gv.enable), oO.getField2(t).bind(Yy.getField).each(gv.enable), oO.getLock(t).each(gv.enable) } }), Lv(), dg("size-input-events2", [er(r, function (t, n) { var e = n.event.isField1, o = e ? oO.getField1(t) : oO.getField2(t), r = e ? oO.getField2(t) : oO.getField1(t), i = o.map(Nl.getValue).getOr(""), u = r.map(Nl.getValue).getOr(""); a = aO(i, u) })])]) }) }, sO = { undo: at(Kr("undo")), redo: at(Kr("redo")), zoom: at(Kr("zoom")), back: at(Kr("back")), apply: at(Kr("apply")), swap: at(Kr("swap")), transform: at(Kr("transform")), tempTransform: at(Kr("temp-transform")), transformApply: at(Kr("transform-apply")) }, lO = at("save-state"), fO = at("disable"), dO = at("enable"), mO = { formActionEvent: ix, saveState: lO, disable: fO, enable: dO }, gO = function (r, c) { var t = function (t, n, e, o) { return gp(JC({ name: t, text: t, disabled: e, primary: o, icon: st.none(), borderless: !1 }, n, c)) }, n = function (t, n, e, o) { return gp(qC({ name: t, icon: st.some(t), tooltip: st.some(n), disabled: o, primary: !1, borderless: !1 }, e, c)) }, u = function (t, e) { t.map(function (t) { var n = t.get(e); n.hasConfigured(gv) && gv.disable(n) }) }, a = function (t, e) { t.map(function (t) { var n = t.get(e); n.hasConfigured(gv) && gv.enable(n) }) }, s = { tag: "div", classes: ["tox-image-tools__toolbar", "tox-image-tools-edit-panel"] }, e = $, i = function (t, n, e) { qo(t, n, e) }, l = function (t) { return Yo(t, mO.disable()) }, f = function (t) { return Yo(t, mO.enable()) }, d = function (t, n) { l(t), i(t, sO.transform(), { transform: n }), f(t) }, o = function (t) { return function () { J.getOpt(t).each(function (t) { fg.set(t, [q]) }) } }, m = function (t, n) { l(t), i(t, sO.transformApply(), { transform: n, swap: o(t) }), f(t) }, g = function () { return t("Back", function (t) { return i(t, sO.back(), { swap: o(t) }) }, !1, !1) }, p = function () { return gp({ dom: { tag: "div", classes: ["tox-spacer"] }, behaviours: ic([gv.config({})]) }) }, h = function () { return t("Apply", function (t) { return i(t, sO.apply(), { swap: o(t) }) }, !0, !0) }, v = [g(), p(), t("Apply", function (t) { m(t, function (t) { var n = r.getRect(); return OC(t, n.x, n.y, n.w, n.h) }), r.hideCrop() }, !1, !0)], b = Uy.sketch({ dom: s, components: v.map(function (t) { return t.asSpec() }), containerBehaviours: ic([dg("image-tools-crop-buttons-events", [er(mO.disable(), function (t, n) { u(v, t) }), er(mO.enable(), function (t, n) { a(v, t) })])]) }), y = gp(cO({ name: "size", label: st.none(), constrain: !0, disabled: !1 }, c)), x = [g(), p(), y, p(), t("Apply", function (a) { y.getOpt(a).each(function (t) { var n, e, o = Nl.getValue(t), r = parseInt(o.width, 10), i = parseInt(o.height, 10), u = (n = r, e = i, function (t) { return _C(t, n, e) }); m(a, u) }) }, !1, !0)], w = Uy.sketch({ dom: s, components: x.map(function (t) { return t.asSpec() }), containerBehaviours: ic([dg("image-tools-resize-buttons-events", [er(mO.disable(), function (t, n) { u(x, t) }), er(mO.enable(), function (t, n) { a(x, t) })])]) }), S = function (n, e) { return function (t) { return n(t, e) } }, k = S(CC, "h"), C = S(CC, "v"), O = S(TC, -90), _ = S(TC, 90), T = function (t, n) { var e, o; o = n, l(e = t), i(e, sO.tempTransform(), { transform: o }), f(e) }, E = [g(), p(), n("flip-horizontally", "Flip horizontally", function (t) { T(t, k) }, !1), n("flip-vertically", "Flip vertically", function (t) { T(t, C) }, !1), n("rotate-left", "Rotate counterclockwise", function (t) { T(t, O) }, !1), n("rotate-right", "Rotate clockwise", function (t) { T(t, _) }, !1), p(), h()], D = Uy.sketch({ dom: s, components: E.map(function (t) { return t.asSpec() }), containerBehaviours: ic([dg("image-tools-fliprotate-buttons-events", [er(mO.disable(), function (t, n) { u(E, t) }), er(mO.enable(), function (t, n) { a(E, t) })])]) }), B = function (t, n, e, o, r) { var i = WS.parts.label({ dom: { tag: "label", classes: ["tox-label"], innerHtml: c.translate(t) } }), u = WS.parts.spectrum({ dom: { tag: "div", classes: ["tox-slider__rail"], attributes: { role: "presentation" } } }), a = WS.parts.thumb({ dom: { tag: "div", classes: ["tox-slider__handle"], attributes: { role: "presentation" } } }); return gp(WS.sketch({ dom: { tag: "div", classes: ["tox-slider"], attributes: { role: "presentation" } }, model: { mode: "x", minX: e, maxX: r, getInitialValue: at({ x: o }) }, components: [i, u, a], sliderBehaviours: ic([vg.config({})]), onChoose: n })) }, A = function (t, n, e, o, r) { return [g(), (i = n, B(t, function (t, n, e) { var o = S(i, e.x / 100); d(t, o) }, e, o, r)), h()]; var i }, M = function (t, n, e, o, r) { var i = A(t, n, e, o, r); return Uy.sketch({ dom: s, components: i.map(function (t) { return t.asSpec() }), containerBehaviours: ic([dg("image-tools-filter-panel-buttons-events", [er(mO.disable(), function (t, n) { u(i, t) }), er(mO.enable(), function (t, n) { a(i, t) })])]) }) }, F = [g(), p(), h()], I = Uy.sketch({ dom: s, components: F.map(function (t) { return t.asSpec() }) }), R = M("Brightness", SC, -100, 0, 100), V = M("Contrast", kC, -100, 0, 100), P = M("Gamma", xC, -100, 0, 100), H = function (t) { return B(t, function (l, t, n) { var e = z.getOpt(l), o = L.getOpt(l), r = N.getOpt(l); e.each(function (s) { o.each(function (c) { r.each(function (t) { var n, e, o, r = Nl.getValue(s).x / 100, i = Nl.getValue(t).x / 100, u = Nl.getValue(c).x / 100, a = (n = r, e = i, o = u, function (t) { return wC(t, n, e, o) }); d(l, a) }) }) }) }, 0, 100, 200) }, z = H("R"), N = H("G"), L = H("B"), j = [g(), z, N, L, h()], U = Uy.sketch({ dom: s, components: j.map(function (t) { return t.asSpec() }) }), W = function (n, e, o) { return function (t) { i(t, sO.swap(), { transform: e, swap: function () { J.getOpt(t).each(function (t) { fg.set(t, [n]), o(t) }) } }) } }, G = st.some(yC), X = st.some(bC), Y = [n("crop", "Crop", W(b, st.none(), function (t) { r.showCrop() }), !1), n("resize", "Resize", W(w, st.none(), function (t) { y.getOpt(t).each(function (t) { var n = r.getMeasurements(), e = n.width, o = n.height; Nl.setValue(t, { width: e, height: o }) }) }), !1), n("orientation", "Orientation", W(D, st.none(), e), !1), n("brightness", "Brightness", W(R, st.none(), e), !1), n("sharpen", "Sharpen", W(I, G, e), !1), n("contrast", "Contrast", W(V, st.none(), e), !1), n("color-levels", "Color levels", W(U, st.none(), e), !1), n("gamma", "Gamma", W(P, st.none(), e), !1), n("invert", "Invert", W(I, X, e), !1)], q = Uy.sketch({ dom: s, components: Y.map(function (t) { return t.asSpec() }) }), K = Uy.sketch({ dom: { tag: "div" }, components: [q], containerBehaviours: ic([fg.config({})]) }), J = gp(K); return { memContainer: J, getApplyButton: function (t) { return J.getOpt(t).map(function (t) { var n = t.components()[0]; return n.components()[n.components().length - 1] }) } } }, pO = tinymce.util.Tools.resolve("tinymce.geom.Rect"), hO = tinymce.util.Tools.resolve("tinymce.dom.DomQuery"), vO = tinymce.util.Tools.resolve("tinymce.util.Observable"), bO = tinymce.util.Tools.resolve("tinymce.util.VK"); function yO(t) { var n, e; if (t.changedTouches) for (n = "screenX screenY pageX pageY clientX clientY".split(" "), e = 0; e < n.length; e++)t[n[e]] = t.changedTouches[0][n[e]] } function xO(t, m) { var g, p, h, v, b = m.document || document, y = b.getElementById(m.handle || t), x = function (t) { if (yO(t), t.button !== p) return w(t); t.deltaX = t.screenX - h, t.deltaY = t.screenY - v, t.preventDefault(), m.drag(t) }, w = function (t) { yO(t), hO(b).off("mousemove touchmove", x).off("mouseup touchend", w), g.remove(), m.stop && m.stop(t) }; this.destroy = function () { hO(y).off() }, hO(y).on("mousedown touchstart", function (t) { var n, e, o, r, i, u, a, c, s, l, f = (n = b, e = Math.max, o = n.documentElement, r = n.body, i = e(o.scrollWidth, r.scrollWidth), u = e(o.clientWidth, r.clientWidth), a = e(o.offsetWidth, r.offsetWidth), c = e(o.scrollHeight, r.scrollHeight), s = e(o.clientHeight, r.clientHeight), { width: i < a ? u : i, height: c < e(o.offsetHeight, r.offsetHeight) ? s : c }); yO(t), t.preventDefault(), p = t.button; var d = y; h = t.screenX, v = t.screenY, l = window.getComputedStyle ? window.getComputedStyle(d, null).getPropertyValue("cursor") : d.runtimeStyle.cursor, g = hO("
").css({ position: "absolute", top: 0, left: 0, width: f.width, height: f.height, zIndex: 2147483647, opacity: 1e-4, cursor: l }).appendTo(b.body), hO(b).on("mousemove touchmove", x).on("mouseup touchend", w), m.start(t) }) } var wO = 0, SO = function (s, e, l, o, r) { var t, n = "tox-", u = "tox-crid-" + wO++, a = [{ name: "move", xMul: 0, yMul: 0, deltaX: 1, deltaY: 1, deltaW: 0, deltaH: 0, label: "Crop Mask" }, { name: "nw", xMul: 0, yMul: 0, deltaX: 1, deltaY: 1, deltaW: -1, deltaH: -1, label: "Top Left Crop Handle" }, { name: "ne", xMul: 1, yMul: 0, deltaX: 0, deltaY: 1, deltaW: 1, deltaH: -1, label: "Top Right Crop Handle" }, { name: "sw", xMul: 0, yMul: 1, deltaX: 1, deltaY: 0, deltaW: -1, deltaH: 1, label: "Bottom Left Crop Handle" }, { name: "se", xMul: 1, yMul: 1, deltaX: 0, deltaY: 0, deltaW: 1, deltaH: 1, label: "Bottom Right Crop Handle" }], i = ["top", "right", "bottom", "left"], c = function (t, n) { return { x: n.x + t.x, y: n.y + t.y, w: n.w, h: n.h } }, f = function (t, n) { return { x: n.x - t.x, y: n.y - t.y, w: n.w, h: n.h } }; function d(t, n, e, o) { var r, i = n.x, u = n.y, a = n.w, c = n.h; i += e * t.deltaX, u += o * t.deltaY, (a += e * t.deltaW) < 20 && (a = 20), (c += o * t.deltaH) < 20 && (c = 20), r = s = pO.clamp({ x: i, y: u, w: a, h: c }, l, "move" === t.name), r = f(l, r), h.fire("updateRect", { rect: r }), p(r) } function m(n) { function t(t, n) { n.h < 0 && (n.h = 0), n.w < 0 && (n.w = 0), hO("#" + u + "-" + t, o).css({ left: n.x, top: n.y, width: n.w, height: n.h }) } ck.each(a, function (t) { hO("#" + u + "-" + t.name, o).css({ left: n.w * t.xMul + n.x, top: n.h * t.yMul + n.y }) }), t("top", { x: e.x, y: e.y, w: e.w, h: n.y - e.y }), t("right", { x: n.x + n.w, y: n.y, w: e.w - n.x - n.w + e.x, h: n.h }), t("bottom", { x: e.x, y: n.y + n.h, w: e.w, h: e.h - n.y - n.h + e.y }), t("left", { x: e.x, y: n.y, w: n.x - e.x, h: n.h }), t("move", n) } function g(t) { m(s = t) } function p(t) { g(c(l, t)) } hO('
').appendTo(o), ck.each(i, function (t) { hO("#" + u, o).append('