!function(a,b){"use strict";return"object"==typeof module&&"object"==typeof module.exports?(module.exports=a.document?b(a):function(a){if(!a.document)throw new Error("jscolor needs a window with document");return b(a)},void 0):(b(a),void 0)}("undefined"!=typeof window?window:this,function(a){"use strict";var b=function(){var b={initialized:!1,instances:[],readyQueue:[],register:function(){"undefined"!=typeof a&&a.document&&a.document.addEventListener("DOMContentLoaded",b.pub.init,!1)},installBySelector:function(c,d){var e,f,g,h,i,j,k,l;if(d=d?b.node(d):a.document,!d)throw new Error("Missing root node");for(e=d.querySelectorAll(c),f=new RegExp("(^|\\s)("+b.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),g=0;g-1},isButtonEmpty:function(a){switch(b.nodeName(a)){case"input":return!a.value||""===a.value.trim();case"button":return""===a.textContent.trim()}return null},isPassiveEventSupported:function(){var c,b=!1;try{c=Object.defineProperty({},"passive",{get:function(){b=!0}}),a.addEventListener("testPassive",null,c),a.removeEventListener("testPassive",null,c)}catch(d){}return b}(),isColorAttrSupported:function(){var b=a.document.createElement("input");return b.setAttribute&&(b.setAttribute("type","color"),"color"==b.type.toLowerCase())?!0:!1}(),dataProp:"_data_jscolor",setData:function(){var c,d,e,f,a=arguments[0];if(3===arguments.length)return c=a.hasOwnProperty(b.dataProp)?a[b.dataProp]:a[b.dataProp]={},d=arguments[1],e=arguments[2],c[d]=e,!0;if(2===arguments.length&&"object"==typeof arguments[1]){c=a.hasOwnProperty(b.dataProp)?a[b.dataProp]:a[b.dataProp]={},f=arguments[1];for(d in f)f.hasOwnProperty(d)&&(c[d]=f[d]);return!0}throw new Error("Invalid arguments")},removeData:function(){var c,d,a=arguments[0];if(!a.hasOwnProperty(b.dataProp))return!0;for(c=1;c=3&&(f=d[0].match(e))&&(g=d[1].match(e))&&(h=d[2].match(e)))?(b.format="rgb",b.rgba=[parseFloat(f[1])||0,parseFloat(g[1])||0,parseFloat(h[1])||0,null],d.length>=4&&(i=d[3].match(e))&&(b.format="rgba",b.rgba[3]=parseFloat(i[1])||0),b):!1},parsePaletteValue:function(a){var d,e,f,c=[];for("string"==typeof a?a.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,function(a){c.push(a)}):Array.isArray(a)&&(c=a),d=[],e=0;ec)return!0;return!1},isAlphaFormat:function(a){switch(a.toLowerCase()){case"hexa":case"rgba":return!0}return!1},scaleCanvasForHighDPR:function(b){var d,c=a.devicePixelRatio||1;b.width*=c,b.height*=c,d=b.getContext("2d"),d.scale(c,c)},genColorPreviewCanvas:function(a,c,d,e){var n,o,p,f=Math.round(b.pub.previewSeparator.length),g=b.pub.chessboardSize,h=b.pub.chessboardColor1,i=b.pub.chessboardColor2,j=d?d:2*g,k=2*g,l=b.createEl("canvas"),m=l.getContext("2d");for(l.width=j,l.height=k,e&&b.scaleCanvasForHighDPR(l),m.fillStyle=h,m.fillRect(0,0,j,k),m.fillStyle=i,n=0;j>n;n+=2*g)m.fillRect(n,0,g,g),m.fillRect(n+g,g,g,g);switch(a&&(m.fillStyle=a,m.fillRect(0,0,j,k)),o=null,c){case"left":o=0,m.clearRect(0,0,f/2,k);break;case"right":o=j-f,m.clearRect(j-f/2,0,f/2,k)}if(null!==o)for(m.lineWidth=1,p=0;pf[i]?-d[i]+c[i]+e[i]/2>f[i]/2&&c[i]+e[i]-h[i]>=0?c[i]+e[i]-h[i]:c[i]:c[i],-d[j]+c[j]+e[j]+h[j]-l+l*k>f[j]?-d[j]+c[j]+e[j]/2>f[j]/2&&c[j]+e[j]-l-l*k>=0?c[j]+e[j]-l-l*k:c[j]+e[j]-l+l*k:c[j]+e[j]-l+l*k>=0?c[j]+e[j]-l+l*k:c[j]+e[j]-l-l*k]:[c[i],c[j]+e[j]-l+l*k],n=m[i],o=m[j],p=a.fixed?"fixed":"absolute",q=(m[0]+h[0]>c[0]||m[0]0?Math.ceil(h/c):0,e=Math.max(1,Math.floor((b-(c-1)*a.paletteSpacing)/c)),f=a.paletteHeight?Math.min(a.paletteHeight,e):e),d&&(g=d*f+(d-1)*a.paletteSpacing),{cols:c,rows:d,cellW:e,cellH:f,width:b,height:g}},getControlPadding:function(a){return Math.max(a.padding/2,2*a.pointerBorderWidth+a.pointerThickness-a.controlBorderWidth)},getPadYChannel:function(a){switch(a.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(a){if(a.mode.length>2)switch(a.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(a,b){if(a[b]){var c=null;if("string"==typeof a[b])try{c=new Function(a[b])}catch(d){console.error(d)}else c=a[b];c&&c.call(a)}},triggerGlobal:function(a){var d,c=b.getInstances();for(d=0;dg&&(h=a.getFormat(),"any"!==a.format.toLowerCase()||b.isAlphaFormat(h)||a._setFormat("hex"===h?"hexa":"rgba")),a.fromHSVA(null,null,null,g)},createPadCanvas:function(){var a={elm:null,draw:null},c=b.createEl("canvas"),d=c.getContext("2d"),e=function(a,b,e){var f,g;switch(c.width=a,c.height=b,d.clearRect(0,0,c.width,c.height),f=d.createLinearGradient(0,0,c.width,0),f.addColorStop(0,"#F00"),f.addColorStop(1/6,"#FF0"),f.addColorStop(2/6,"#0F0"),f.addColorStop(.5,"#0FF"),f.addColorStop(4/6,"#00F"),f.addColorStop(5/6,"#F0F"),f.addColorStop(1,"#F00"),d.fillStyle=f,d.fillRect(0,0,c.width,c.height),g=d.createLinearGradient(0,0,0,c.height),e.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)")}d.fillStyle=g,d.fillRect(0,0,c.width,c.height)};return a.elm=c,a.draw=e,a},createSliderGradient:function(){var a={elm:null,draw:null},c=b.createEl("canvas"),d=c.getContext("2d"),e=function(a,b,e,f){c.width=a,c.height=b,d.clearRect(0,0,c.width,c.height);var g=d.createLinearGradient(0,0,0,c.height);g.addColorStop(0,e),g.addColorStop(1,f),d.fillStyle=g,d.fillRect(0,0,c.width,c.height)};return a.elm=c,a.draw=e,a},createASliderGradient:function(){var a={elm:null,draw:null},c=b.createEl("canvas"),d=c.getContext("2d"),e=function(a,e,f){var g,h,i,j,k;if(c.width=a,c.height=e,d.clearRect(0,0,c.width,c.height),g=c.width/2,h=b.pub.chessboardColor1,i=b.pub.chessboardColor2,d.fillStyle=h,d.fillRect(0,0,c.width,c.height),g>0)for(j=0;j=2&&"string"==typeof arguments[0]){try{if(!f(arguments[0],arguments[1]))return!1}catch(a){return console.warn(a),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){b=arguments[0],c=!0;for(d in b)if(b.hasOwnProperty(d))try{f(d,b[d])||(c=!1)}catch(a){console.warn(a),c=!1}return this.redraw(),this.exposeColor(),c}throw new Error("Invalid arguments")},this.channel=function(a,b){if("string"!=typeof a)throw new Error("Invalid value for channel name: "+a);if(void 0===b)return this.channels.hasOwnProperty(a.toLowerCase())?this.channels[a.toLowerCase()]:(console.warn("Getting unknown channel: "+a),!1);var c=!1;switch(a.toLowerCase()){case"r":c=this.fromRGBA(b,null,null,null);break;case"g":c=this.fromRGBA(null,b,null,null);break;case"b":c=this.fromRGBA(null,null,b,null);break;case"h":c=this.fromHSVA(b,null,null,null);break;case"s":c=this.fromHSVA(null,b,null,null);break;case"v":c=this.fromHSVA(null,null,b,null);break;case"a":c=this.fromHSVA(null,null,null,b);break;default:return console.warn("Setting unknown channel: "+a),!1}return c?(this.redraw(),!0):!1},this.trigger=function(a){var d,e,f,c=b.strList(a);for(d=0;d127.5},this.hide=function(){m()&&h()},this.show=function(){i()},this.redraw=function(){m()&&i()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(a){this._currentFormat=a.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||b.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(a){this.fromString(a)||this.exposeColor()},this.processAlphaInput=function(a){this.fromHSVA(null,null,null,parseFloat(a))||this.exposeColor()},this.exposeColor=function(a){var e,f,c=this.toString(),d=this.getFormat();b.setDataAttr(this.targetElement,"current-color",c),a&b.flags.leaveValue||!this.valueElement||(("hex"===d||"hexa"===d)&&(this.uppercase||(c=c.toLowerCase()),this.hash||(c=c.replace(/^#/,""))),this.setValueElementValue(c)),a&b.flags.leaveAlpha||!this.alphaElement||(e=Math.round(100*this.channels.a)/100,this.setAlphaElementValue(e)),a&b.flags.leavePreview||!this.previewElement||(f=null,(b.isTextInput(this.previewElement)||b.isButton(this.previewElement)&&!b.isButtonEmpty(this.previewElement))&&(f=this.previewPosition),this.setPreviewElementBg(this.toRGBAString())),m()&&(j(),k(),l())},this.setPreviewElementBg=function(a){var c,d,e,f,g,h,i,j;if(this.previewElement){for(c=null,d=null,(b.isTextInput(this.previewElement)||b.isButton(this.previewElement)&&!b.isButtonEmpty(this.previewElement))&&(c=this.previewPosition,d=this.previewSize),e=[],a?(e.push({image:b.genColorPreviewGradient(a,c,d?d-b.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:c?"repeat-y":"repeat",origin:"padding-box"}),f=b.genColorPreviewCanvas("rgba(0,0,0,0)",c?{left:"right",right:"left"}[c]:null,d,!0),e.push({image:"url('"+f.canvas.toDataURL()+"')",position:(c||"left")+" top",size:f.width+"px "+f.height+"px",repeat:c?"repeat-y":"repeat",origin:"padding-box"})):e.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"}),g={image:[],position:[],size:[],repeat:[],origin:[]},h=0;h=0;w-=1)if(x=v[w])if(b.pub.presets.hasOwnProperty(x)){for(t in b.pub.presets[x])if(b.pub.presets[x].hasOwnProperty(t))try{f(t,b.pub.presets[x][t])}catch(u){console.warn(u)}}else console.warn("Unknown preset: %s",x);y=["preset"];for(t in d)if(d.hasOwnProperty(t)&&-1===y.indexOf(t))try{f(t,d[t])}catch(u){console.warn(u)}if(this.container=void 0===this.container?a.document.body:b.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=b.node(c),!this.targetElement){if("string"==typeof c&&/^[a-zA-Z][\w:.-]*$/.test(c))throw z=c,new Error("If '"+z+"' is supposed to be an ID, please use '#"+z+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof b.pub)throw new Error("Color picker already installed on this element");this.targetElement.jscolor=this,b.addClass(this.targetElement,b.pub.className),b.instances.push(this),b.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),b.isButtonEmpty(this.targetElement)&&(b.removeChildren(this.targetElement),this.targetElement.appendChild(a.document.createTextNode(" ")),A=b.getCompStyle(this.targetElement),B=parseFloat(A["min-width"])||0,B-1?(F=b.parseColorString(D),this._currentFormat=F?F.format:"hex"):this._currentFormat=this.format.toLowerCase(),this.processValueInput(D),void 0!==E&&this.processAlphaInput(E),this.random&&this.randomize.apply(this,Array.isArray(this.random)?this.random:[])}};return b.pub.className="jscolor",b.pub.activeClassName="jscolor-active",b.pub.looseJSON=!0,b.pub.presets={},b.pub.presets["default"]={},b.pub.presets["light"]={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},b.pub.presets["dark"]={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},b.pub.presets["small"]={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},b.pub.presets["medium"]={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},b.pub.presets["large"]={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},b.pub.presets["thin"]={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},b.pub.presets["thick"]={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},b.pub.sliderInnerSpace=3,b.pub.chessboardSize=8,b.pub.chessboardColor1="#666666",b.pub.chessboardColor2="#999999",b.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],b.pub.init=function(){if(!b.initialized)for(a.document.addEventListener("mousedown",b.onDocumentMouseDown,!1),a.document.addEventListener("keyup",b.onDocumentKeyUp,!1),a.addEventListener("resize",b.onWindowResize,!1),a.addEventListener("scroll",b.onWindowScroll,!1),b.pub.install(),b.initialized=!0;b.readyQueue.length;){var c=b.readyQueue.shift();c()}},b.pub.install=function(a){var c=!0;try{b.installBySelector("[data-jscolor]",a)}catch(d){c=!1,console.warn(d)}if(b.pub.lookupClass)try{b.installBySelector("input."+b.pub.lookupClass+", "+"button."+b.pub.lookupClass,a)}catch(d){}return c},b.pub.ready=function(a){return"function"!=typeof a?(console.warn("Passed value is not a function"),!1):(b.initialized?a():b.readyQueue.push(a),!0)},b.pub.trigger=function(a){var c=function(){b.triggerGlobal(a)};b.initialized?c():b.pub.ready(c)},b.pub.hide=function(){b.picker&&b.picker.owner&&b.picker.owner.hide()},b.pub.chessboard=function(a){a||(a="rgba(0,0,0,0)");var c=b.genColorPreviewCanvas(a);return c.canvas.toDataURL()},b.pub.background=function(a){var d,c=[];return c.push(b.genColorPreviewGradient(a)),d=b.genColorPreviewCanvas(),c.push(["url('"+d.canvas.toDataURL()+"')","left top","repeat"].join(" ")),c.join(", ")},b.pub.options={},b.pub.lookupClass="jscolor",b.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+b.docsRef),!1},b.register(),b.pub}();return"undefined"==typeof a.jscolor&&(a.jscolor=a.JSColor=b),b});