frColorPicker 拾色器专供Font Rendering使用。
สคริปต์นี้ไม่ควรถูกติดตั้งโดยตรง มันเป็นคลังสำหรับสคริปต์อื่น ๆ เพื่อบรรจุด้วยคำสั่งเมทา // @require https://update.greasyfork.org/scripts/437214/1555936/frColorPicker.js
// ==UserScript== // @name frColorPicker // @version 7.1.0 // @author F9y4ng // @license GPL-3.0-only // @description ColorPicker for Font Rendering (Customized) // ==/UserScript== (function (p, A) { "object" === typeof module && "object" === typeof module.exports ? (module.exports = function (y) { if (!y.document) throw Error("No Document!"); return A(y); }) : A(p); })("undefined" !== typeof window ? window : this, function (p) { var A = (function () { var y = function (b) { var d = Math.random().toString(36).slice(2); return d.slice(0, b - 4).padEnd(b - 3, Math.random().toString(36).slice(2)) + "." + d.slice(-3); }, C = y(9), E = y(8), F = y(12), G = y(8), H = y(7), B; a: { try { p.addEventListener("testPassive", null, { passive: !0 }), p.removeEventListener("testPassive", null, { passive: !0 }); } catch (b) { y = !1; break a; } y = !0; } var a = { initialized: !1, instances: [], readyQueue: [], register: function () { "undefined" !== typeof p && p.document && ("loading" === p.document.readyState ? p.document.addEventListener("DOMContentLoaded", a.pub.init, !1) : p.document.documentElement ? a.pub.init() : p.addEventListener("load", a.pub.init, !1)); }, getInstances: function () { for (var b = [], d = 0; d < a.instances.length; d += 1) a.instances[d] && a.instances[d].targetElement && b.push(a.instances[d]); return b; }, createEl: function (b) { b = p.document.createElement(b); a.setData(b, "gui", !0); return b; }, node: function (b) { if (!b) return null; if ("string" === typeof b) { var d = null; try { d = p.document.querySelector(b) || B.querySelector(b); } catch (e) { return null; } return d; } return a.isNode(b) ? b : null; }, isNode: function (b) { return "object" === typeof Node ? b instanceof Node : b && "object" === typeof b && "number" === typeof b.nodeType && "string" === typeof b.nodeName; }, nodeName: function (b) { return b && b.nodeName ? b.nodeName.toLowerCase() : !1; }, isTextInput: function (b) { return b && "input" === a.nodeName(b) && "text" === b.type.toLowerCase(); }, isPassiveEventSupported: y, hOP: Object.prototype.hasOwnProperty, dataProp: "_data_fr_colorpicker_", setData: function () { var b = arguments[0]; if (3 === arguments.length) { b = a.hOP.call(b, a.dataProp) ? b[a.dataProp] : (b[a.dataProp] = {}); var d = arguments[1]; b[d] = arguments[2]; return !0; } if (2 === arguments.length && "object" === typeof arguments[1]) { b = a.hOP.call(b, a.dataProp) ? b[a.dataProp] : (b[a.dataProp] = {}); var e = arguments[1]; for (d in e) a.hOP.call(e, d) && (b[d] = e[d]); return !0; } throw Error("Invalid arguments"); }, getData: function (b, d, e) { if (!a.hOP.call(b, a.dataProp)) if ("undefined" !== typeof e) b[a.dataProp] = {}; else return; b = b[a.dataProp]; a.hOP.call(b, d) || "undefined" === typeof e || (b[d] = e); return b[d]; }, setDataAttr: function (b, d, e) { b.setAttribute("data-" + d, e); }, _attachedGroupEvents: {}, attachGroupEvent: function (b, d, e, g) { a.hOP.call(a._attachedGroupEvents, b) || (a._attachedGroupEvents[b] = []); a._attachedGroupEvents[b].push([d, e, g]); d.addEventListener(e, g, !1); }, detachGroupEvents: function (b) { if (a.hOP.call(a._attachedGroupEvents, b)) { for (var d = 0; d < a._attachedGroupEvents[b].length; d += 1) { var e = a._attachedGroupEvents[b][d]; e[0].removeEventListener(e[1], e[2], !1); } delete a._attachedGroupEvents[b]; } }, preventDefault: function (b) { b.preventDefault && b.preventDefault(); b.returnValue = !1; }, triggerEvent: function (b, d, e, g) { if (b) { if ("function" === typeof Event) var l = new Event(d, { bubbles: e, cancelable: g }); else (l = p.document.createEvent("Event")), l.initEvent(d, e, g); if (!l) return !1; a.setData(l, "internal", !0); b.dispatchEvent(l); return !0; } }, triggerInputEvent: function (b, d, e, g) { b && a.isTextInput(b) && a.triggerEvent(b, d, e, g); }, strList: function (b) { return b ? b.replace(/^\s+|\s+$/g, "").split(/\s+/) : []; }, hasClass: function (b, d) { return d ? ("undefined" !== typeof b.classList ? b.classList.contains(d) : -1 != (" " + b.className.replace(/\s+/g, " ") + " ").indexOf(" " + d + " ")) : !1; }, addClass: function (b, d) { d = a.strList(d); if ("undefined" !== typeof b.classList) for (var e = 0; e < d.length; e += 1) b.classList.add(d[e]); else for (e = 0; e < d.length; e += 1) a.hasClass(b, d[e]) || (b.className += (b.className ? " " : "") + d[e]); }, removeClass: function (b, d) { d = a.strList(d); if ("undefined" !== typeof b.classList) for (var e = 0; e < d.length; e += 1) b.classList.remove(d[e]); else for (e = 0; e < d.length; e += 1) b.className = b.className.replace(new RegExp("^\\s*" + d[e] + "\\s*|\\s*" + d[e] + "\\s*$|\\s+" + d[e] + "(\\s+)", "g"), "$1"); }, getCompStyle: function (b) { return b instanceof ShadowRoot ? {} : (b = p.getComputedStyle ? p.getComputedStyle(b) : b.currentStyle) ? b : {}; }, setStyle: function (b, d, e, g) { e = e ? "important" : ""; var l = null, k; for (k in d) if (a.hOP.call(d, k)) { var n = null; null === d[k] ? (l || (l = a.getData(b, "origStyle")), l && a.hOP.call(l, k) && (n = l[k])) : (g && (l || (l = a.getData(b, "origStyle", {})), a.hOP.call(l, k) || (l[k] = b.style[k])), (n = d[k])); null !== n && b.style.setProperty(k, n, e); } }, hexColor: function (b, d, e) { return "#" + (("0" + Math.round(b).toString(16)).slice(-2) + ("0" + Math.round(d).toString(16)).slice(-2) + ("0" + Math.round(e).toString(16)).slice(-2)).toUpperCase(); }, hexaColor: function (b, d, e, g) { return ( "#" + ( ("0" + Math.round(b).toString(16)).slice(-2) + ("0" + Math.round(d).toString(16)).slice(-2) + ("0" + Math.round(e).toString(16)).slice(-2) + ("0" + Math.round(255 * g).toString(16)).slice(-2) ).toUpperCase() ); }, rgbColor: function (b, d, e) { return "rgb(" + Math.round(b) + "," + Math.round(d) + "," + Math.round(e) + ")"; }, rgbaColor: function (b, d, e, g) { return "rgba(" + Math.round(b) + "," + Math.round(d) + "," + Math.round(e) + "," + Math.round(100 * ("undefined" === typeof g || null === g ? 1 : g)) / 100 + ")"; }, setBorderRadius: function (b, d) { a.setStyle(b, { "border-radius": d || "0" }); }, getElementPos: function (b, d) { var e = p.frDOMRects; "undefined" === typeof e && (e = { toggle: !1, cur: 1, prev: 1 }); e = e.toggle ? e.cur : 1; var g = b.getBoundingClientRect(); b = g.left * e; g = g.top * e; d || ((d = a.getViewPos()), (b += d[0] * e), (g += d[1] * e)); return [b, g]; }, getElementSize: function (b) { return [b.offsetWidth, b.offsetHeight]; }, getAbsPointerPos: function (b) { var d = p.frDOMRects; "undefined" === typeof d && (d = { toggle: !1, cur: 1, prev: 1 }); var e = 0, g = 0; "undefined" !== typeof b.changedTouches && b.changedTouches.length ? ((e = b.changedTouches[0].x * d.cur), (g = b.changedTouches[0].y * d.cur)) : "number" === typeof b.x && ((e = b.x * d.cur), (g = b.y * d.cur)); return { x: e, y: g }; }, getRelPointerPos: function (b) { var d = p.frDOMRects; "undefined" === typeof d && (d = { toggle: !1, cur: 1, prev: 1 }); var e = (b.target || b.srcElement).getBoundingClientRect(), g = d.toggle ? d.cur : 1, l = 0, k = 0; "undefined" !== typeof b.changedTouches && b.changedTouches.length ? ((l = b.changedTouches[0].x * d.cur), (k = b.changedTouches[0].y * d.cur)) : "number" === typeof b.x && ((l = b.x * d.cur), (k = b.y * d.cur)); return { x: l - e.left * g, y: k - e.top * g }; }, getViewPos: function () { var b = p.document.documentElement; return [(p.pageXOffset || b.scrollLeft) - (b.clientLeft || 0), (p.pageYOffset || b.scrollTop) - (b.clientTop || 0)]; }, getViewSize: function () { var b = p.document.documentElement; return [p.innerWidth || b.clientWidth, p.innerHeight || b.clientHeight]; }, RGB_HSV: function (b, d, e) { b /= 255; d /= 255; e /= 255; var g = Math.min(Math.min(b, d), e), l = Math.max(Math.max(b, d), e), k = l - g; if (0 === k) return [null, 0, 100 * l]; b = b === g ? 3 + (e - d) / k : d === g ? 5 + (b - e) / k : 1 + (d - b) / k; return [60 * (6 === b ? 0 : b), (k / l) * 100, 100 * l]; }, HSV_RGB: function (b, d, e) { e = (e / 100) * 255; if (null === b) return [e, e, e]; b /= 60; d /= 100; var g = Math.floor(b), l = e * (1 - d); b = e * (1 - d * (g % 2 ? b - g : 1 - (b - g))); switch (g) { case 6: case 0: return [e, b, l]; case 1: return [b, e, l]; case 2: return [l, e, b]; case 3: return [l, b, e]; case 4: return [b, l, e]; case 5: return [e, l, b]; } }, parseColorString: function (b) { var d = { rgba: null, format: null }, e; if ((e = b.match(/^\W*([0-9A-F]{3,8})\W*$|^currentcolor$/i))) { if ("currentcolor" === e[0].toLowerCase()) return (d.format = "hexa"), (d.rgba = [255, 255, 255, 255]), d; if (8 === e[1].length) (d.format = "hexa"), (d.rgba = [parseInt(e[1].slice(0, 2), 16), parseInt(e[1].slice(2, 4), 16), parseInt(e[1].slice(4, 6), 16), parseInt(e[1].slice(6, 8), 16) / 255]); else if (6 === e[1].length) (d.format = "hex"), (d.rgba = [parseInt(e[1].slice(0, 2), 16), parseInt(e[1].slice(2, 4), 16), parseInt(e[1].slice(4, 6), 16), 1]); else if (3 === e[1].length) (d.format = "hex"), (d.rgba = [parseInt(e[1].charAt(0) + e[1].charAt(0), 16), parseInt(e[1].charAt(1) + e[1].charAt(1), 16), parseInt(e[1].charAt(2) + e[1].charAt(2), 16), 1]); else return !1; return d; } if ((e = b.match(/^\W*rgba?\(([^)]*)\)\W*$/i))) { b = e[1].split(","); e = /^\s*(\d+|\d*\.\d+|\d+\.\d*)\s*$/; var g, l, k, n; if (3 <= b.length && (g = b[0].match(e)) && (l = b[1].match(e)) && (k = b[2].match(e))) return ( (d.format = "rgb"), (d.rgba = [parseFloat(g[1]) || 0, parseFloat(l[1]) || 0, parseFloat(k[1]) || 0, 1]), 4 <= b.length && (n = b[3].match(e)) && ((d.format = "rgba"), (d.rgba[3] = parseFloat(n[1]) || 0)), d ); } return !1; }, isAlphaFormat: function (b) { switch (b.toLowerCase()) { case "hexa": case "rgba": return !0; } return !1; }, scaleCanvasForHighDPR: function (b) { var d = p.devicePixelRatio || 1; b.width *= d; b.height *= d; b.getContext("2d").scale(d, d); }, genColorPreviewCanvas: function (b, d, e, g) { var l = Math.round(a.pub.previewSeparator.length), k = a.pub.chessboardSize, n = a.pub.chessboardColor1, q = a.pub.chessboardColor2; e = e ? e : 2 * k; var t = 2 * k, u = a.createEl("canvas"), v = u.getContext("2d"); u.width = e; u.height = t; g && a.scaleCanvasForHighDPR(u); v.fillStyle = n; v.fillRect(0, 0, e, t); v.fillStyle = q; for (g = 0; g < e; g += 2 * k) v.fillRect(g, 0, k, k), v.fillRect(g + k, k, k, k); b && ((v.fillStyle = b), v.fillRect(0, 0, e, t)); b = null; switch (d) { case "left": b = 0; v.clearRect(0, 0, l / 2, t); break; case "right": (b = e - l), v.clearRect(e - l / 2, 0, l / 2, t); } if (null !== b) for (v.lineWidth = 1, d = 0; d < a.pub.previewSeparator.length; d += 1) v.beginPath(), (v.strokeStyle = a.pub.previewSeparator[d]), v.moveTo(0.5 + b + d, 0), v.lineTo(0.5 + b + d, t), v.stroke(); return { canvas: u, width: e, height: t }; }, redrawPosition: function () { if (a.picker && a.picker.owner) { var b = a.picker.owner; if (b.fixed) { var d = a.getElementPos(b.targetElement, !0); var e = [0, 0]; } else (d = a.getElementPos(b.targetElement)), (e = a.getViewPos()); var g = a.getElementSize(b.targetElement), l = a.getViewSize(), k = a.getPickerDims(b), n = [k.borderW, k.borderH]; switch (b.position.toLowerCase()) { case "left": k = 1; var q = 0; var t = -1; break; case "right": k = 1; q = 0; t = 1; break; case "top": k = 0; q = 1; t = -1; break; default: (k = 0), (t = q = 1); } var u = (g[q] + n[q]) / 2; d = b.smartPosition ? [ -e[k] + d[k] + n[k] > l[k] ? (-e[k] + d[k] + g[k] / 2 > l[k] / 2 && 0 <= d[k] + g[k] - n[k] ? d[k] + g[k] - n[k] : d[k]) : d[k], -e[q] + d[q] + g[q] + n[q] - u + u * t > l[q] ? -e[q] + d[q] + g[q] / 2 > l[q] / 2 && 0 <= d[q] + g[q] - u - u * t ? d[q] + g[q] - u - u * t - 4 : d[q] + g[q] - u + u * t + 4 : 0 <= d[q] + g[q] - u + u * t ? d[q] + g[q] - u + u * t - 4 : d[q] + g[q] - u - u * t + 4, ] : [d[k], d[q] + g[q] - u + u * t - 4]; a._drawPosition(d[k], d[q], b.fixed ? "fixed" : "absolute"); } }, _drawPosition: function (b, d, e) { a.picker.wrap.style.left = b + "px"; a.picker.wrap.style.top = d + "px"; a.picker.wrap.style.position = e; }, getPickerDims: function (b) { var d = 2 * b.controlBorderWidth + b.width, e = 2 * b.controlBorderWidth + b.height, g = 2 * b.controlBorderWidth + 2 * a.getControlPadding(b) + b.sliderSize; a.getSliderChannel(b) && (d += g); b.hasAlphaChannel() && (d += g); g = d + 2 * b.padding; var l = e + 2 * b.padding; return { contentW: d, contentH: e, paddedW: g, paddedH: l, borderW: g + 2 * b.borderWidth, borderH: l + 2 * b.borderWidth, }; }, getControlPadding: function (b) { return Math.max(b.padding / 2, 2 * b.pointerBorderWidth + b.pointerThickness - b.controlBorderWidth); }, getPadYChannel: function (b) { switch (b.mode.charAt(1).toLowerCase()) { case "v": return "v"; } return "s"; }, getSliderChannel: function (b) { if (2 < b.mode.length) switch (b.mode.charAt(2).toLowerCase()) { case "s": return "s"; case "v": return "v"; } return null; }, triggerCallback: function (b, d) { if (b[d]) { var e = null; if ("string" === typeof b[d]) try { e = new Function(b[d]); } catch (g) { console.error(g); } else e = b[d]; e && e.call(b); } }, triggerGlobal: function (b) { for (var d = a.getInstances(), e = 0; e < d.length; e += 1) d[e].trigger(b); }, _pointerMoveEvent: { mouse: "mousemove", touch: "touchmove" }, _pointerEndEvent: { mouse: "mouseup", touch: "touchend" }, _pointerOrigin: null, onWindowResize: function (b) { a.redrawPosition(); }, onWindowScroll: function (b) { a.redrawPosition(); }, onConfigIfMouseDown: function (b) { b = b.composedPath()[0] || b.target || b.srcElement; b.frcp && b.frcp instanceof a.pub ? b.frcp.showOnClick && !b.disabled && (a.picker && a.picker.owner ? a.picker.owner.tryHide() : b.frcp.show()) : a.picker && a.picker.owner && a.picker.owner.tryHide(); }, onDocumentMouseDown: function (b) { if (!b.target || !b.target.nodeName || "fr-configure" !== b.target.nodeName.toLowerCase()) { var d = b.target || b.srcElement; if (a.getData(d, "gui")) { if (a.getData(d, "control")) a.onControlPointerStart(b, d, a.getData(d, "control"), "mouse"); } else a.picker && a.picker.owner && a.picker.owner.tryHide(); } }, onPickerTouchStart: function (b) { var d = b.target || b.srcElement; if (a.getData(d, "control")) a.onControlPointerStart(b, d, a.getData(d, "control"), "touch"); }, onControlPointerStart: function (b, d, e, g) { var l = a.getData(d, "instance"); a.preventDefault(b); var k = function (t, u) { a.attachGroupEvent("drag", t, a._pointerMoveEvent[g], a.onDocumentPointerMove(b, d, e, g, u)); a.attachGroupEvent("drag", t, a._pointerEndEvent[g], a.onDocumentPointerEnd(b, d, e, g)); }; k(p.document, [0, 0]); if (p.parent && p.frameElement) { var n = p.frDOMRects; "undefined" === typeof n && (n = { toggle: !1, cur: 1, prev: 1 }); n = n.toggle ? n.cur : 1; var q = p.frameElement.getBoundingClientRect(); k(p.parent.window.document, [-q.left * n, -q.top * n]); } k = a.getAbsPointerPos(b); n = a.getRelPointerPos(b); a._pointerOrigin = { x: k.x - n.x, y: k.y - n.y }; switch (e) { case "pad": "v" === a.getSliderChannel(l) && 0 === l.channels.v && l.fromHSVA(null, null, 100, null); a.setPad(l, b, 0, 0); break; case "sld": a.setSld(l, b, 0); break; case "asld": a.setASld(l, b, 0); } l.trigger("input"); }, onDocumentPointerMove: function (b, d, e, g, l) { return function (k) { var n = a.getData(d, "instance"); switch (e) { case "pad": a.setPad(n, k, l[0], l[1]); break; case "sld": a.setSld(n, k, l[1]); break; case "asld": a.setASld(n, k, l[1]); } n.trigger("input"); }; }, onDocumentPointerEnd: function (b, d, e, g) { return function (l) { l = a.getData(d, "instance"); a.detachGroupEvents("drag"); l.trigger("input"); l.trigger("change"); }; }, setPad: function (b, d, e, g) { d = a.getAbsPointerPos(d); e = (360 / (b.width - 1)) * (e + d.x - a._pointerOrigin.x - b.padding - b.controlBorderWidth); g = 100 - (100 / (b.height - 1)) * (g + d.y - a._pointerOrigin.y - b.padding - b.controlBorderWidth); switch (a.getPadYChannel(b)) { case "s": b.fromHSVA(e, g, null, null); break; case "v": b.fromHSVA(e, null, g, null); } }, setSld: function (b, d, e) { d = a.getAbsPointerPos(d); e = 100 - (100 / (b.height - 1)) * (e + d.y - a._pointerOrigin.y - b.padding - b.controlBorderWidth); switch (a.getSliderChannel(b)) { case "s": b.fromHSVA(null, e, null, null); break; case "v": b.fromHSVA(null, null, e, null); } }, setASld: function (b, d, e) { d = a.getAbsPointerPos(d); e = 1 - (1 / (b.height - 1)) * (e + d.y - a._pointerOrigin.y - b.padding - b.controlBorderWidth); 1 > e && ((d = b.getFormat()), "any" !== b.format.toLowerCase() || a.isAlphaFormat(d) || b._setFormat("hex" === d ? "hexa" : "rgba")); b.fromHSVA(null, null, null, e); }, createPadCanvas: function () { var b = { elm: null, draw: null }, d = a.createEl("canvas"), e = d.getContext("2d"); b.elm = d; b.draw = function (g, l, k) { d.width = g; d.height = l; e.clearRect(0, 0, d.width, d.height); g = e.createLinearGradient(0, 0, d.width, 0); g.addColorStop(0, "#F00"); g.addColorStop(1 / 6, "#FF0"); g.addColorStop(2 / 6, "#0F0"); g.addColorStop(0.5, "#0FF"); g.addColorStop(4 / 6, "#00F"); g.addColorStop(5 / 6, "#F0F"); g.addColorStop(1, "#F00"); e.fillStyle = g; e.fillRect(0, 0, d.width, d.height); g = e.createLinearGradient(0, 0, 0, d.height); switch (k.toLowerCase()) { case "s": g.addColorStop(0, "rgba(255,255,255,0)"); g.addColorStop(1, "rgba(255,255,255,1)"); break; case "v": g.addColorStop(0, "rgba(0,0,0,0)"), g.addColorStop(1, "rgba(0,0,0,1)"); } e.fillStyle = g; e.fillRect(0, 0, d.width, d.height); }; return b; }, createSliderGradient: function () { var b = { elm: null, draw: null }, d = a.createEl("canvas"), e = d.getContext("2d"); b.elm = d; b.draw = function (g, l, k, n) { d.width = g; d.height = l; e.clearRect(0, 0, d.width, d.height); g = e.createLinearGradient(0, 0, 0, d.height); g.addColorStop(0, k); g.addColorStop(1, n); e.fillStyle = g; e.fillRect(0, 0, d.width, d.height); }; return b; }, createASliderGradient: function () { var b = { elm: null, draw: null }, d = a.createEl("canvas"), e = d.getContext("2d"); b.elm = d; b.draw = function (g, l, k) { d.width = g; d.height = l; e.clearRect(0, 0, d.width, d.height); g = d.width / 2; l = a.pub.chessboardColor2; e.fillStyle = a.pub.chessboardColor1; e.fillRect(0, 0, d.width, d.height); if (0 < g) for (var n = 0; n < d.height; n += 2 * g) (e.fillStyle = l), e.fillRect(0, n, g, g), e.fillRect(g, n + g, g, g); g = e.createLinearGradient(0, 0, 0, d.height); g.addColorStop(0, k); g.addColorStop(1, "rgba(0,0,0,0)"); e.fillStyle = g; e.fillRect(0, 0, d.width, d.height); }; return b; }, flags: { leaveValue: 1, leaveAlpha: 2, leavePreview: 4 }, enumOpts: { format: "auto any hex hexa rgb rgba".split(" "), previewPosition: ["left", "right"], mode: ["hsv", "hvs", "hs", "hv"], position: ["left", "right", "top", "bottom"], alphaChannel: ["auto", !0, !1], }, pub: function (b, d, e) { function g(c, h) { if ("string" !== typeof c) throw Error("Invalid value for option name: " + c); if (a.hOP.call(a.enumOpts, c) && ("string" === typeof h && (h = h.toLowerCase()), -1 === a.enumOpts[c].indexOf(h))) throw Error("Option '" + c + "' has invalid value: " + h); var m = "set__" + c; if ("function" === typeof f[m]) return f[m](h), !0; if (c in f) return (f[c] = h), !0; throw Error("Unrecognized configuration option: " + c); } function l() { f._processParentElementsInDOM(); a.picker || ((a.picker = { owner: null, wrap: a.createEl("fr-colorpicker"), box: a.createEl("div"), boxB: a.createEl("div"), pad: a.createEl("div"), padB: a.createEl("div"), padM: a.createEl("div"), padCanvas: a.createPadCanvas(), cross: a.createEl("div"), crossBY: a.createEl("div"), crossBX: a.createEl("div"), crossLY: a.createEl("div"), crossLX: a.createEl("div"), sld: a.createEl("div"), sldB: a.createEl("div"), sldM: a.createEl("div"), sldGrad: a.createSliderGradient(), sldPtrS: a.createEl("div"), sldPtrIB: a.createEl("div"), sldPtrMB: a.createEl("div"), sldPtrOB: a.createEl("div"), asld: a.createEl("div"), asldB: a.createEl("div"), asldM: a.createEl("div"), asldGrad: a.createASliderGradient(), asldPtrS: a.createEl("div"), asldPtrIB: a.createEl("div"), asldPtrMB: a.createEl("div"), asldPtrOB: a.createEl("div"), }), a.picker.pad.appendChild(a.picker.padCanvas.elm), a.picker.padB.appendChild(a.picker.pad), a.picker.cross.appendChild(a.picker.crossBY), a.picker.cross.appendChild(a.picker.crossBX), a.picker.cross.appendChild(a.picker.crossLY), a.picker.cross.appendChild(a.picker.crossLX), a.picker.padB.appendChild(a.picker.cross), a.picker.box.appendChild(a.picker.padB), a.picker.box.appendChild(a.picker.padM), a.picker.sld.appendChild(a.picker.sldGrad.elm), a.picker.sldB.appendChild(a.picker.sld), a.picker.sldB.appendChild(a.picker.sldPtrOB), a.picker.sldPtrOB.appendChild(a.picker.sldPtrMB), a.picker.sldPtrMB.appendChild(a.picker.sldPtrIB), a.picker.sldPtrIB.appendChild(a.picker.sldPtrS), a.picker.box.appendChild(a.picker.sldB), a.picker.box.appendChild(a.picker.sldM), a.picker.asld.appendChild(a.picker.asldGrad.elm), a.picker.asldB.appendChild(a.picker.asld), a.picker.asldB.appendChild(a.picker.asldPtrOB), a.picker.asldPtrOB.appendChild(a.picker.asldPtrMB), a.picker.asldPtrMB.appendChild(a.picker.asldPtrIB), a.picker.asldPtrIB.appendChild(a.picker.asldPtrS), a.picker.box.appendChild(a.picker.asldB), a.picker.box.appendChild(a.picker.asldM), a.picker.boxB.appendChild(a.picker.box), a.picker.wrap.appendChild(a.picker.boxB), a.picker.wrap.addEventListener("touchstart", a.onPickerTouchStart, a.isPassiveEventSupported ? { passive: !1 } : !1)); var c = a.picker, h = !!a.getSliderChannel(f), m = f.hasAlphaChannel(), r = a.getPickerDims(f), w = 2 * f.pointerBorderWidth + f.pointerThickness + 2 * f.crossSize, x = a.getControlPadding(f), I = Math.min(f.borderRadius, Math.round(f.padding * Math.PI)), D = f.padding + f.width + 2 * f.controlBorderWidth + x + (h ? f.sliderSize + 2 * x + 2 * f.controlBorderWidth : 0); c.wrap.className = F; c.wrap.style.clear = "both"; c.wrap.style.display = "block"; c.wrap.style.visibility = "visible"; c.wrap.style.opacity = "1"; c.wrap.style.width = r.borderW + "px"; c.wrap.style.height = r.borderH + "px"; c.wrap.style.zIndex = f.zIndex; c.box.className = G; c.box.style.width = r.paddedW + "px"; c.box.style.height = r.paddedH + "px"; c.box.style.position = "relative"; c.boxB.className = H; c.boxB.style.position = "relative"; c.boxB.style.setProperty("border", f.borderWidth + "px solid " + f.borderColor, "important"); c.boxB.style.setProperty("background", f.backgroundColor, "important"); a.setBorderRadius(c.boxB, I + "px"); c.padM.style.background = "rgba(255,0,0,.2)"; c.sldM.style.background = "rgba(0,255,0,.2)"; c.asldM.style.background = "rgba(0,0,255,.2)"; c.padM.style.opacity = c.sldM.style.opacity = c.asldM.style.opacity = "0"; c.pad.style.position = "relative"; c.pad.style.width = f.width + "px"; c.pad.style.height = f.height + "px"; c.padCanvas.draw(f.width, f.height, a.getPadYChannel(f)); c.padB.style.position = "absolute"; c.padB.style.left = f.padding + "px"; c.padB.style.top = f.padding + "px"; c.padB.style.border = f.controlBorderWidth + "px solid"; c.padB.style.setProperty("border-color", f.controlBorderColor, "important"); c.padM.style.position = "absolute"; c.padM.style.left = "0px"; c.padM.style.top = "0px"; c.padM.style.width = f.padding + 2 * f.controlBorderWidth + f.width + x + "px"; c.padM.style.height = 2 * f.controlBorderWidth + 2 * f.padding + f.height + "px"; c.padM.style.cursor = "crosshair"; a.setData(c.padM, { instance: f, control: "pad" }); c.cross.style.position = "absolute"; c.cross.style.left = c.cross.style.top = "0"; c.cross.style.width = c.cross.style.height = w + "px"; c.crossBY.style.position = c.crossBX.style.position = "absolute"; c.crossBY.style.setProperty("background", f.pointerBorderColor, "important"); c.crossBX.style.setProperty("background", f.pointerBorderColor, "important"); c.crossBY.style.width = c.crossBX.style.height = 2 * f.pointerBorderWidth + f.pointerThickness + "px"; c.crossBY.style.height = c.crossBX.style.width = w + "px"; c.crossBY.style.left = c.crossBX.style.top = Math.floor(w / 2) - Math.floor(f.pointerThickness / 2) - f.pointerBorderWidth + "px"; c.crossBY.style.top = c.crossBX.style.left = "0"; c.crossLY.style.position = c.crossLX.style.position = "absolute"; c.crossLY.style.setProperty("background", f.pointerColor, "important"); c.crossLX.style.setProperty("background", f.pointerColor, "important"); c.crossLY.style.height = c.crossLX.style.width = w - 2 * f.pointerBorderWidth + "px"; c.crossLY.style.width = c.crossLX.style.height = f.pointerThickness + "px"; c.crossLY.style.left = c.crossLX.style.top = Math.floor(w / 2) - Math.floor(f.pointerThickness / 2) + "px"; c.crossLY.style.top = c.crossLX.style.left = f.pointerBorderWidth + "px"; c.sld.style.overflow = "hidden"; c.sld.style.width = f.sliderSize + "px"; c.sld.style.height = f.height + "px"; c.sldGrad.draw(f.sliderSize, f.height, "#000", "#000"); c.sldB.style.display = h ? "block" : "none"; c.sldB.style.position = "absolute"; c.sldB.style.left = f.padding + f.width + 2 * f.controlBorderWidth + 2 * x + "px"; c.sldB.style.top = f.padding + "px"; c.sldB.style.setProperty("border", f.controlBorderWidth + "px solid " + f.controlBorderColor, "important"); c.sldM.style.display = h ? "block" : "none"; c.sldM.style.position = "absolute"; c.sldM.style.left = f.padding + f.width + 2 * f.controlBorderWidth + x + "px"; c.sldM.style.top = "0px"; c.sldM.style.width = f.sliderSize + 2 * x + 2 * f.controlBorderWidth + (m ? 0 : Math.max(0, f.padding - x)) + "px"; c.sldM.style.height = 2 * f.controlBorderWidth + 2 * f.padding + f.height + "px"; c.sldM.style.cursor = "default"; a.setData(c.sldM, { instance: f, control: "sld" }); c.sldPtrIB.style.setProperty("border", f.pointerBorderWidth + "px solid " + f.pointerBorderColor, "important"); c.sldPtrOB.style.setProperty("border", f.pointerBorderWidth + "px solid " + f.pointerBorderColor, "important"); c.sldPtrOB.style.position = "absolute"; c.sldPtrOB.style.left = -(2 * f.pointerBorderWidth + f.pointerThickness) + "px"; c.sldPtrOB.style.top = "0"; c.sldPtrMB.style.setProperty("border", f.pointerThickness + "px solid " + f.pointerColor, "important"); c.sldPtrS.style.width = f.sliderSize + "px"; c.sldPtrS.style.height = a.pub.sliderInnerSpace + "px"; c.asld.style.overflow = "hidden"; c.asld.style.width = f.sliderSize + "px"; c.asld.style.height = f.height + "px"; c.asldGrad.draw(f.sliderSize, f.height, "#000"); c.asldB.style.display = m ? "block" : "none"; c.asldB.style.position = "absolute"; c.asldB.style.left = D + "px"; c.asldB.style.top = f.padding + "px"; c.asldB.style.border = f.controlBorderWidth + "px solid"; c.asldB.style.setProperty("border-color", f.controlBorderColor, "important"); c.asldM.style.display = m ? "block" : "none"; c.asldM.style.position = "absolute"; c.asldM.style.left = D + "px"; c.asldM.style.top = "0px"; c.asldM.style.width = f.sliderSize + 2 * x + 2 * f.controlBorderWidth + Math.max(0, f.padding - x) + "px"; c.asldM.style.height = 2 * f.controlBorderWidth + 2 * f.padding + f.height + "px"; c.asldM.style.cursor = "default"; a.setData(c.asldM, { instance: f, control: "asld" }); c.asldPtrIB.style.setProperty("border", f.pointerBorderWidth + "px solid " + f.pointerBorderColor, "important"); c.asldPtrOB.style.setProperty("border", f.pointerBorderWidth + "px solid " + f.pointerBorderColor, "important"); c.asldPtrOB.style.position = "absolute"; c.asldPtrOB.style.left = -(2 * f.pointerBorderWidth + f.pointerThickness) + "px"; c.asldPtrOB.style.top = "0"; c.asldPtrMB.style.setProperty("border", f.pointerThickness + "px solid " + f.pointerColor, "important"); c.asldPtrS.style.width = f.sliderSize + "px"; c.asldPtrS.style.height = a.pub.sliderInnerSpace + "px"; k(); n(); q(); a.picker.owner && a.picker.owner !== f && a.removeClass(a.picker.owner.targetElement, a.pub.activeClassName); a.picker.owner = f; f.container === p.document.documentElement ? a.redrawPosition() : a._drawPosition(f, 0, 0, "relative", !1); c.wrap.parentNode !== f.container && (h = a.node("dialog[id^='fr-dialog-']")) && (h.appendChild(c.wrap), h.hasAttribute("open") && h.close && h.close(), (h.inert = !0), h.showModal && h.showModal(), h.removeAttribute("inert"), h.focus()); a.addClass(f.targetElement, a.pub.activeClassName); } function k() { var c = a.getPadYChannel(f); c = Math.round((1 - f.channels[c] / 100) * (f.height - 1)); var h = -Math.floor((2 * f.pointerBorderWidth + f.pointerThickness + 2 * f.crossSize) / 2); a.picker.cross.style.left = Math.round((f.channels.h / 360) * (f.width - 1)) + h + "px"; a.picker.cross.style.top = c + h + "px"; switch (a.getSliderChannel(f)) { case "s": h = a.HSV_RGB(f.channels.h, 100, f.channels.v); c = a.HSV_RGB(f.channels.h, 0, f.channels.v); h = "rgb(" + Math.round(h[0]) + "," + Math.round(h[1]) + "," + Math.round(h[2]) + ")"; a.picker.sldGrad.draw(f.sliderSize, f.height, h, "rgb(" + Math.round(c[0]) + "," + Math.round(c[1]) + "," + Math.round(c[2]) + ")"); break; case "v": (c = a.HSV_RGB(f.channels.h, f.channels.s, 100)), (h = "rgb(" + Math.round(c[0]) + "," + Math.round(c[1]) + "," + Math.round(c[2]) + ")"), a.picker.sldGrad.draw(f.sliderSize, f.height, h, "#000"); } a.picker.asldGrad.draw(f.sliderSize, f.height, f.toHEXString()); } function n() { var c = a.getSliderChannel(f); c && (a.picker.sldPtrOB.style.top = Math.round((1 - f.channels[c] / 100) * (f.height - 1)) - (2 * f.pointerBorderWidth + f.pointerThickness) - Math.floor(a.pub.sliderInnerSpace / 2) + "px"); a.picker.asldGrad.draw(f.sliderSize, f.height, f.toHEXString()); } function q() { a.picker.asldPtrOB.style.top = Math.round((1 - f.channels.a) * (f.height - 1)) - (2 * f.pointerBorderWidth + f.pointerThickness) - Math.floor(a.pub.sliderInnerSpace / 2) + "px"; } function t() { return a.picker && a.picker.owner === f; } function u(c) { a.getData(c, "internal") || ((c = f.valueElement.value), f.processValueInput(f.valueElement.value), a.triggerCallback(f, "onChange"), f.valueElement.value !== c && a.triggerInputEvent(f.valueElement, "change", !0, !0)); } function v(c) { a.getData(c, "internal") || (f.valueElement && f.fromString(f.valueElement.value, a.flags.leaveValue), a.triggerCallback(f, "onInput")); } B = d; B.addEventListener("click", a.onConfigIfMouseDown, !1); var f = this; e || (e = {}); this.channels = { r: 255, g: 255, b: 255, h: 0, s: 0, v: 100, a: 1 }; this.format = "auto"; this.previewElement = this.alphaElement = this.valueElement = this.onInput = this.onChange = this.alpha = this.value = void 0; this.previewPosition = "left"; this.previewSize = 35; this.previewPadding = 8; this.forceStyle = this.uppercase = this.hash = this.required = !0; this.width = 186; this.height = 210; this.mode = "HSV"; this.alphaChannel = "auto"; this.position = "top"; this.hideOnLeave = this.showOnClick = this.smartPosition = !0; this.sliderSize = 12; this.padding = this.crossSize = 8; this.backgroundColor = "rgba(206,226,237,0.91)"; this.borderWidth = 1; this.borderColor = "rgba(187,187,187,1)"; this.borderRadius = 4; this.controlBorderWidth = 1; this.controlBorderColor = "rgba(187,187,187,0.7)"; this.pointerColor = "rgba(76,76,76,1)"; this.pointerBorderWidth = 1; this.pointerBorderColor = "rgba(255,255,255,0.6)"; this.pointerThickness = 2; this.zIndex = 2147483646; this.container = void 0; this.minS = 0; this.maxS = 100; this.minV = 0; this.maxV = 100; this.minA = 0; this.maxA = 1; this.option = function () { if (!arguments.length) throw Error("No option specified"); if (1 === arguments.length && "string" === typeof arguments[0]) try { var c = arguments[0]; if ("string" !== typeof c) throw Error("Invalid value for option name: " + c); var h = "get__" + c; if ("function" === typeof f[h]) var m = f[h](value); else if (c in f) m = f[c]; else throw Error("Unrecognized configuration option: " + c); return m; } catch (r) { return !1; } else { if (2 <= arguments.length && "string" === typeof arguments[0]) { try { if (!g(arguments[0], arguments[1])) return !1; } catch (r) { return !1; } this.redraw(); this.exposeColor(); return !0; } if (1 === arguments.length && "object" === typeof arguments[0]) { m = arguments[0]; c = !0; for (h in m) if (a.hOP.call(m, h)) try { g(h, m[h]) || (c = !1); } catch (r) { c = !1; } this.redraw(); this.exposeColor(); return c; } } throw Error("Invalid arguments"); }; this.channel = function (c, h) { if ("string" !== typeof c) throw Error("Invalid value for channel name: " + c); if ("undefined" === typeof h) return a.hOP.call(this.channels, c.toLowerCase()) ? this.channels[c.toLowerCase()] : !1; switch (c.toLowerCase()) { case "r": c = this.fromRGBA(h, null, null, null); break; case "g": c = this.fromRGBA(null, h, null, null); break; case "b": c = this.fromRGBA(null, null, h, null); break; case "h": c = this.fromHSVA(h, null, null, null); break; case "s": c = this.fromHSVA(null, h, null, null); break; case "v": c = this.fromHSVA(null, null, h, null); break; case "a": c = this.fromHSVA(null, null, null, h); break; default: return !1; } return c ? (this.redraw(), !0) : !1; }; this.trigger = function (c) { c = a.strList(c); for (var h = 0; h < c.length; h += 1) { var m = c[h].toLowerCase(), r = null; switch (m) { case "input": r = "onInput"; break; case "change": r = "onChange"; } r && a.triggerCallback(this, r); a.triggerInputEvent(this.valueElement, m, !0, !0); } }; this.fromHSVA = function (c, h, m, r, w) { "undefined" === typeof c && (c = null); "undefined" === typeof h && (h = null); "undefined" === typeof m && (m = null); "undefined" === typeof r && (r = null); if (null !== c) { if (isNaN(c)) return !1; this.channels.h = Math.max(0, Math.min(360, c)); } if (null !== h) { if (isNaN(h)) return !1; this.channels.s = Math.max(0, Math.min(100, this.maxS, h), this.minS); } if (null !== m) { if (isNaN(m)) return !1; this.channels.v = Math.max(0, Math.min(100, this.maxV, m), this.minV); } if (null !== r) { if (isNaN(r)) return !1; this.channels.a = this.hasAlphaChannel() ? Math.max(0, Math.min(1, this.maxA, r), this.minA) : 1; } c = a.HSV_RGB(this.channels.h, this.channels.s, this.channels.v); this.channels.r = c[0]; this.channels.g = c[1]; this.channels.b = c[2]; this.exposeColor(w); return !0; }; this.fromRGBA = function (c, h, m, r, w) { "undefined" === typeof c && (c = null); "undefined" === typeof h && (h = null); "undefined" === typeof m && (m = null); "undefined" === typeof r && (r = null); if (null !== c) { if (isNaN(c)) return !1; c = Math.max(0, Math.min(255, c)); } if (null !== h) { if (isNaN(h)) return !1; h = Math.max(0, Math.min(255, h)); } if (null !== m) { if (isNaN(m)) return !1; m = Math.max(0, Math.min(255, m)); } if (null !== r) { if (isNaN(r)) return !1; this.channels.a = this.hasAlphaChannel() ? Math.max(0, Math.min(1, this.maxA, r), this.minA) : 1; } c = a.RGB_HSV(null === c ? this.channels.r : c, null === h ? this.channels.g : h, null === m ? this.channels.b : m); null !== c[0] && (this.channels.h = Math.max(0, Math.min(360, c[0]))); 0 !== c[2] && (this.channels.s = Math.max(0, this.minS, Math.min(100, this.maxS, c[1]))); this.channels.v = Math.max(0, this.minV, Math.min(100, this.maxV, c[2])); c = a.HSV_RGB(this.channels.h, this.channels.s, this.channels.v); this.channels.r = c[0]; this.channels.g = c[1]; this.channels.b = c[2]; this.exposeColor(w); return !0; }; this.fromHSV = function (c, h, m, r) { return this.fromHSVA(c, h, m, null, r); }; this.fromRGB = function (c, h, m, r) { return this.fromRGBA(c, h, m, null, r); }; this.fromString = function (c, h) { if (!this.required && "" === c.trim()) return this.setPreviewElementBg(null), this.setValueElementValue(""), !0; c = a.parseColorString(c); if (!c) return !1; "any" === this.format.toLowerCase() && (this._setFormat(c.format), a.isAlphaFormat(this.getFormat()) || (c.rgba[3] = 1)); this.fromRGBA(c.rgba[0], c.rgba[1], c.rgba[2], c.rgba[3], h); return !0; }; this.toString = function (c) { "undefined" === typeof c && (c = this.getFormat()); switch (c.toLowerCase()) { case "hex": return this.toHEXString(); case "hexa": return this.toHEXAString(); case "rgb": return this.toRGBString(); case "rgba": return this.toRGBAString(); } return !1; }; this.toHEXString = function () { return a.hexColor(this.channels.r, this.channels.g, this.channels.b); }; this.toHEXAString = function () { return a.hexaColor(this.channels.r, this.channels.g, this.channels.b, this.channels.a); }; this.toRGBString = function () { return a.rgbColor(this.channels.r, this.channels.g, this.channels.b); }; this.toRGBAString = function () { return a.rgbaColor(this.channels.r, this.channels.g, this.channels.b, this.channels.a); }; this.hide = function () { t() && (a.removeClass(f.targetElement, a.pub.activeClassName), a.picker.wrap && a.picker.wrap.parentNode && a.picker.wrap.parentNode.removeChild(a.picker.wrap), delete a.picker.owner); }; this.show = function () { l(); }; this.redraw = function () { t() && l(); }; this.getFormat = function () { return this._currentFormat; }; this._setFormat = function (c) { this._currentFormat = c.toLowerCase(); }; this.hasAlphaChannel = function () { return "auto" === this.alphaChannel ? "any" === this.format.toLowerCase() || a.isAlphaFormat(this.getFormat()) || "undefined" !== typeof this.alpha || "undefined" !== typeof this.alphaElement : this.alphaChannel; }; this.processValueInput = function (c) { this.fromString(c) || this.exposeColor(); }; this.processAlphaInput = function (c) { this.fromHSVA(null, null, null, parseFloat(c)) || this.exposeColor(); }; this.exposeColor = function (c) { var h = this.toString(), m = this.getFormat(); a.setDataAttr(this.targetElement, "current-color", h); if (!(c & a.flags.leaveValue) && this.valueElement) { if ("hex" === m || "hexa" === m) this.uppercase || (h = h.toLowerCase()), this.hash || (h = h.replace(/^#/, "")); this.setValueElementValue(h); } c & a.flags.leaveAlpha || !this.alphaElement || this.setAlphaElementValue(Math.round(100 * this.channels.a) / 100); c & a.flags.leavePreview || !this.previewElement || this.setPreviewElementBg(this.toRGBAString()); t() && (k(), n(), q()); }; this.setPreviewElementBg = function (c) { if (this.previewElement) { var h = null, m = null; a.isTextInput(this.previewElement) && ((h = this.previewPosition), (m = this.previewSize)); var r = []; r.push({ size: "auto" }); if (c) { var w = a.genColorPreviewCanvas("rgba(0,0,0,0)", h ? { left: "right", right: "left" }[h] : null, m, !0); r.push({ size: w.width + "px " + w.height + "px" }); } w = []; for (var x = 0; x < r.length; x += 1) w.push(r[x].size); c = { "--fr-input-color": c, "--fr-input-color-edge": m + "px", "--fr-input-color-edge2": m + 1 + "px", "--fr-input-gb-size": w.join(", "), }; a.setStyle(this.previewElement, c, !this.forceStyle); c = { left: null, right: null }; h && (c[h] = this.previewSize + this.previewPadding + "px"); c = { "--fr-input-padding-left": c.left }; a.setStyle(this.previewElement, c, !this.forceStyle, !0); } }; this.setValueElementValue = function (c) { this.valueElement && ("input" === a.nodeName(this.valueElement) ? (this.valueElement.value = c) : (this.valueElement.textContent = c)); }; this._processParentElementsInDOM = function () { if (!this._parentElementsProcessed) { this._parentElementsProcessed = !0; var c = this.targetElement; do { var h = a.getCompStyle(c); c instanceof ShadowRoot && (this.fixed = !0); h.position && "fixed" === h.position.toLowerCase() && (this.fixed = !0); } while ((c = c.parentNode) && "body" !== a.nodeName(c)); } }; this.tryHide = function () { this.hideOnLeave && this.hide(); }; if (a.pub.options) for (var z in a.pub.options) if (a.hOP.call(a.pub.options, z)) try { g(z, a.pub.options[z]); } catch (c) { console.error(c); } for (z in e) if (a.hOP.call(e, z) && -1 === ["preset"].indexOf(z)) try { g(z, e[z]); } catch (c) { console.error(c); } this.container = "undefined" === typeof this.container ? p.document.documentElement : a.node(this.container); if (!this.container) throw Error("No container element"); this.targetElement = a.node(b); if (!this.targetElement) throw Error("No target element"); if (this.targetElement.frcp && this.targetElement.frcp instanceof a.pub) throw Error("Redundant Fr-Color-picker"); this.targetElement.frcp = this; a.addClass(this.targetElement, a.pub.className); a.instances.push(this); "undefined" === typeof this.valueElement ? a.isTextInput(this.targetElement) && (this.valueElement = this.targetElement) : null !== this.valueElement && (this.valueElement = a.node(this.valueElement)); "undefined" === typeof this.previewElement ? (this.previewElement = this.targetElement) : null !== this.previewElement && (this.previewElement = a.node(this.previewElement)); this.valueElement && a.isTextInput(this.valueElement) && ((b = this.valueElement.oninput), (this.valueElement.oninput = null), this.valueElement.addEventListener("change", u, !1), this.valueElement.addEventListener("input", v, !1), b && this.valueElement.addEventListener("input", b, !1), this.valueElement.setAttribute("autocomplete", "off"), this.valueElement.setAttribute("autocorrect", "off"), this.valueElement.setAttribute("autocapitalize", "off"), this.valueElement.setAttribute("spellcheck", !1)); b = "FFFFFF"; "undefined" !== typeof this.value ? (b = this.value) : this.valueElement && "undefined" !== typeof this.valueElement.value && (b = this.valueElement.value); d = void 0; "undefined" !== typeof this.alpha && (d = "" + this.alpha); this._currentFormat = null; -1 < ["auto", "any"].indexOf(this.format.toLowerCase()) ? (this._currentFormat = (e = a.parseColorString(b)) ? e.format : "hex") : (this._currentFormat = this.format.toLowerCase()); this.processValueInput(b); "undefined" !== typeof d && this.processAlphaInput(d); }, }; a.pub.className = C; a.pub.activeClassName = E; a.pub.looseJSON = !0; a.pub.sliderInnerSpace = 3; a.pub.chessboardSize = 8; a.pub.chessboardColor1 = "#666666"; a.pub.chessboardColor2 = "#999999"; a.pub.previewSeparator = []; a.pub.init = function () { if (!a.initialized) { p.document.addEventListener("mousedown", a.onDocumentMouseDown, !1); p.addEventListener("resize", a.onWindowResize, !1); p.addEventListener("scroll", a.onWindowScroll, !1); a.initialized = !0; for (var b; (b = a.readyQueue.shift()); ) b(); } }; a.pub.ready = function (b) { if ("function" !== typeof b) return !1; a.initialized ? b() : a.readyQueue.push(b); return !0; }; a.pub.trigger = function (b) { var d = function () { a.triggerGlobal(b); }; a.initialized ? d() : a.pub.ready(d); }; a.pub.hide = function () { a.picker && a.picker.owner && a.picker.owner.hide(); }; a.pub.options = {}; a.pub.lookupClass = C; a.pub.installByClassName = function () { return !1; }; a.register(); return a.pub; })(); "undefined" === typeof p.FRColorPicker && (p.FRColorPicker = A); return A; });