cadviewer
Version:
CADViewer - JavaScript CAD Viewer Library for FrameWorks (ReactJS, Angular, VueJS, etc.)
2 lines • 3.51 MB
JavaScript
/*! For license information please see cadviewer_11.7.14.min.js.LICENSE.txt */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cadviewer=t():e.cadviewer=t()}(self,(()=>(()=>{var e,t,a,r,s={6877:function(e){!function(t,n){"use strict";"object"!=typeof e.exports?n(t):e.exports=t.document?n(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return n(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,n,i,o,a=(o={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&("loading"!==e.document.readyState?o.pub.init():e.document.addEventListener("DOMContentLoaded",o.pub.init,!1))},installBySelector:function(t,n){if(!(n=n?o.node(n):e.document))throw new Error("Missing root node");for(var i=n.querySelectorAll(t),a=new RegExp("(^|\\s)("+o.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r<i.length;r+=1){var s,l;if(!(i[r].jscolor&&i[r].jscolor instanceof o.pub)&&(void 0===i[r].type||"color"!=i[r].type.toLowerCase()||!o.isColorAttrSupported)&&(null!==(s=o.getDataAttr(i[r],"jscolor"))||i[r].className&&(l=i[r].className.match(a)))){var c=i[r],d="";null!==s?d=s:l&&(console.warn('Installation using class name is DEPRECATED. Use data-jscolor="" attribute instead.'+o.docsRef),l[4]&&(d=l[4]));var u=null;if(d.trim())try{u=o.parseOptionsStr(d)}catch(e){console.warn(e+"\n"+d)}try{new o.pub(c,u)}catch(e){console.warn(e)}}}},parseOptionsStr:function(e){var t=null;try{t=JSON.parse(e)}catch(n){if(!o.pub.looseJSON)throw new Error("Could not parse jscolor options as JSON: "+n);try{t=new Function("var opts = ("+e+'); return typeof opts === "object" ? opts : {};')()}catch(e){throw new Error("Could not evaluate jscolor options: "+e)}}return t},getInstances:function(){for(var e=[],t=0;t<o.instances.length;t+=1)o.instances[t]&&o.instances[t].targetElement&&e.push(o.instances[t]);return e},createEl:function(t){var n=e.document.createElement(t);return o.setData(n,"gui",!0),n},node:function(t){if(!t)return null;if("string"==typeof t){var n=t,i=null;try{i=e.document.querySelector(n)}catch(e){return console.warn(e),null}return i||console.warn("No element matches the selector: %s",n),i}return o.isNode(t)?t:(console.warn("Invalid node of type %s: %s",typeof t,t),null)},isNode:function(e){return"object"==typeof Node?e instanceof Node:e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},nodeName:function(e){return!(!e||!e.nodeName)&&e.nodeName.toLowerCase()},removeChildren:function(e){for(;e.firstChild;)e.removeChild(e.firstChild)},isTextInput:function(e){return e&&"input"===o.nodeName(e)&&"text"===e.type.toLowerCase()},isButton:function(e){if(!e)return!1;var t=o.nodeName(e);return"button"===t||"input"===t&&["button","submit","reset"].indexOf(e.type.toLowerCase())>-1},isButtonEmpty:function(e){switch(o.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var n=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,n),e.removeEventListener("testPassive",null,n)}catch(e){}return t}(),isColorAttrSupported:(i=e.document.createElement("input"),!(!i.setAttribute||(i.setAttribute("type","color"),"color"!=i.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(o.dataProp)?e[o.dataProp]:e[o.dataProp]={},n=arguments[2];return t[a=arguments[1]]=n,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(o.dataProp)?e[o.dataProp]:e[o.dataProp]={};var i=arguments[1];for(var a in i)i.hasOwnProperty(a)&&(t[a]=i[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(o.dataProp))return!0;for(var t=1;t<arguments.length;t+=1){var n=arguments[t];delete e[o.dataProp][n]}return!0},getData:function(e,t,n){if(!e.hasOwnProperty(o.dataProp)){if(void 0===n)return;e[o.dataProp]={}}var i=e[o.dataProp];return i.hasOwnProperty(t)||void 0===n||(i[t]=n),i[t]},getDataAttr:function(e,t){var n="data-"+t;return e.getAttribute(n)},setDataAttr:function(e,t,n){var i="data-"+t;e.setAttribute(i,n)},_attachedGroupEvents:{},attachGroupEvent:function(e,t,n,i){o._attachedGroupEvents.hasOwnProperty(e)||(o._attachedGroupEvents[e]=[]),o._attachedGroupEvents[e].push([t,n,i]),t.addEventListener(n,i,!1)},detachGroupEvents:function(e){if(o._attachedGroupEvents.hasOwnProperty(e)){for(var t=0;t<o._attachedGroupEvents[e].length;t+=1){var n=o._attachedGroupEvents[e][t];n[0].removeEventListener(n[1],n[2],!1)}delete o._attachedGroupEvents[e]}},preventDefault:function(e){e.preventDefault&&e.preventDefault(),e.returnValue=!1},triggerEvent:function(t,n,i,a){if(t){var r=null;return"function"==typeof Event?r=new Event(n,{bubbles:i,cancelable:a}):(r=e.document.createEvent("Event")).initEvent(n,i,a),!!r&&(o.setData(r,"internal",!0),t.dispatchEvent(r),!0)}},triggerInputEvent:function(e,t,n,i){e&&o.isTextInput(e)&&o.triggerEvent(e,t,n,i)},eventKey:function(e){var t={9:"Tab",13:"Enter",27:"Escape"};return"string"==typeof e.code?e.code:void 0!==e.keyCode&&t.hasOwnProperty(e.keyCode)?t[e.keyCode]:null},strList:function(e){return e?e.replace(/^\s+|\s+$/g,"").split(/\s+/):[]},hasClass:function(e,t){return!!t&&(void 0!==e.classList?e.classList.contains(t):-1!=(" "+e.className.replace(/\s+/g," ")+" ").indexOf(" "+t+" "))},addClass:function(e,t){var n=o.strList(t);if(void 0===e.classList)for(i=0;i<n.length;i+=1)o.hasClass(e,n[i])||(e.className+=(e.className?" ":"")+n[i]);else for(var i=0;i<n.length;i+=1)e.classList.add(n[i])},removeClass:function(e,t){var n=o.strList(t);if(void 0===e.classList)for(a=0;a<n.length;a+=1){var i=new RegExp("^\\s*"+n[a]+"\\s*|\\s*"+n[a]+"\\s*$|\\s+"+n[a]+"(\\s+)","g");e.className=e.className.replace(i,"$1")}else for(var a=0;a<n.length;a+=1)e.classList.remove(n[a])},getCompStyle:function(t){return(e.getComputedStyle?e.getComputedStyle(t):t.currentStyle)||{}},setStyle:function(e,t,n,i){var a=n?"important":"",r=null;for(var s in t)if(t.hasOwnProperty(s)){var l=null;null===t[s]?(r||(r=o.getData(e,"origStyle")),r&&r.hasOwnProperty(s)&&(l=r[s])):(i&&(r||(r=o.getData(e,"origStyle",{})),r.hasOwnProperty(s)||(r[s]=e.style[s])),l=t[s]),null!==l&&e.style.setProperty(s,l,a)}},appendCss:function(e){var t=document.querySelector("head"),n=document.createElement("style");n.innerText=e,t.appendChild(n)},appendDefaultCss:function(e){o.appendCss([".jscolor-wrap, .jscolor-wrap div, .jscolor-wrap canvas { position:static; display:block; visibility:visible; overflow:visible; margin:0; padding:0; border:none; border-radius:0; outline:none; z-index:auto; float:none; width:auto; height:auto; left:auto; right:auto; top:auto; bottom:auto; min-width:0; min-height:0; max-width:none; max-height:none; background:none; clip:auto; opacity:1; transform:none; box-shadow:none; box-sizing:content-box; }",".jscolor-wrap { clear:both; }",".jscolor-wrap .jscolor-picker { position:relative; }",".jscolor-wrap .jscolor-shadow { position:absolute; left:0; top:0; width:100%; height:100%; }",".jscolor-wrap .jscolor-border { position:relative; }",".jscolor-wrap .jscolor-palette { position:absolute; }",".jscolor-wrap .jscolor-palette-sw { position:absolute; display:block; cursor:pointer; }",".jscolor-wrap .jscolor-btn { position:absolute; overflow:hidden; white-space:nowrap; font:13px sans-serif; text-align:center; cursor:pointer; }"].join("\n"))},hexColor:function(e,t,n){return"#"+(("0"+Math.round(e).toString(16)).slice(-2)+("0"+Math.round(t).toString(16)).slice(-2)+("0"+Math.round(n).toString(16)).slice(-2)).toUpperCase()},hexaColor:function(e,t,n,i){return"#"+(("0"+Math.round(e).toString(16)).slice(-2)+("0"+Math.round(t).toString(16)).slice(-2)+("0"+Math.round(n).toString(16)).slice(-2)+("0"+Math.round(255*i).toString(16)).slice(-2)).toUpperCase()},rgbColor:function(e,t,n){return"rgb("+Math.round(e)+","+Math.round(t)+","+Math.round(n)+")"},rgbaColor:function(e,t,n,i){return"rgba("+Math.round(e)+","+Math.round(t)+","+Math.round(n)+","+Math.round(100*(null==i?1:i))/100+")"},linearGradient:(n=function(){for(var t="linear-gradient",n=["","-webkit-","-moz-","-o-","-ms-"],i=e.document.createElement("div"),o=0;o<n.length;o+=1){var a=n[o]+t,r=a+"(to right, rgba(0,0,0,0), rgba(0,0,0,0))";if(i.style.background=r,i.style.background)return a}return t}(),function(){return n+"("+Array.prototype.join.call(arguments,", ")+")"}),setBorderRadius:function(e,t){o.setStyle(e,{"border-radius":t||"0"})},setBoxShadow:function(e,t){o.setStyle(e,{"box-shadow":t||"none"})},getElementPos:function(e,t){var n=0,i=0,a=e.getBoundingClientRect();if(n=a.left,i=a.top,!t){var r=o.getViewPos();n+=r[0],i+=r[1]}return[n,i]},getElementSize:function(e){return[e.offsetWidth,e.offsetHeight]},getAbsPointerPos:function(e){var t=0,n=0;return void 0!==e.changedTouches&&e.changedTouches.length?(t=e.changedTouches[0].clientX,n=e.changedTouches[0].clientY):"number"==typeof e.clientX&&(t=e.clientX,n=e.clientY),{x:t,y:n}},getRelPointerPos:function(e){var t=(e.target||e.srcElement).getBoundingClientRect(),n=0,i=0;return void 0!==e.changedTouches&&e.changedTouches.length?(n=e.changedTouches[0].clientX,i=e.changedTouches[0].clientY):"number"==typeof e.clientX&&(n=e.clientX,i=e.clientY),{x:n-t.left,y:i-t.top}},getViewPos:function(){var t=e.document.documentElement;return[(e.pageXOffset||t.scrollLeft)-(t.clientLeft||0),(e.pageYOffset||t.scrollTop)-(t.clientTop||0)]},getViewSize:function(){var t=e.document.documentElement;return[e.innerWidth||t.clientWidth,e.innerHeight||t.clientHeight]},RGB_HSV:function(e,t,n){e/=255,t/=255,n/=255;var i=Math.min(Math.min(e,t),n),o=Math.max(Math.max(e,t),n),a=o-i;if(0===a)return[null,0,100*o];var r=e===i?3+(n-t)/a:t===i?5+(e-n)/a:1+(t-e)/a;return[60*(6===r?0:r),a/o*100,100*o]},HSV_RGB:function(e,t,n){var i=n/100*255;if(null===e)return[i,i,i];e/=60,t/=100;var o=Math.floor(e),a=i*(1-t),r=i*(1-t*(o%2?e-o:1-(e-o)));switch(o){case 6:case 0:return[i,r,a];case 1:return[r,i,a];case 2:return[a,i,r];case 3:return[a,r,i];case 4:return[r,a,i];case 5:return[i,a,r]}},parseColorString:function(e){var t,n={rgba:null,format:null};if(t=e.match(/^\W*([0-9A-F]{3,8})\W*$/i)){if(8===t[1].length)n.format="hexa",n.rgba=[parseInt(t[1].slice(0,2),16),parseInt(t[1].slice(2,4),16),parseInt(t[1].slice(4,6),16),parseInt(t[1].slice(6,8),16)/255];else if(6===t[1].length)n.format="hex",n.rgba=[parseInt(t[1].slice(0,2),16),parseInt(t[1].slice(2,4),16),parseInt(t[1].slice(4,6),16),null];else{if(3!==t[1].length)return!1;n.format="hex",n.rgba=[parseInt(t[1].charAt(0)+t[1].charAt(0),16),parseInt(t[1].charAt(1)+t[1].charAt(1),16),parseInt(t[1].charAt(2)+t[1].charAt(2),16),null]}return n}if(t=e.match(/^\W*rgba?\(([^)]*)\)\W*$/i)){var i,o,a,r,s=t[1].split(","),l=/^\s*(\d+|\d*\.\d+|\d+\.\d*)\s*$/;if(s.length>=3&&(i=s[0].match(l))&&(o=s[1].match(l))&&(a=s[2].match(l)))return n.format="rgb",n.rgba=[parseFloat(i[1])||0,parseFloat(o[1])||0,parseFloat(a[1])||0,null],s.length>=4&&(r=s[3].match(l))&&(n.format="rgba",n.rgba[3]=parseFloat(r[1])||0),n}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}\b|#[0-9A-F]{6}([0-9A-F]{2})?\b|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var n=[],i=0;i<t.length;i++){var a=o.parseColorString(t[i]);a&&n.push(a)}return n},containsTranparentColor:function(e){for(var t=0;t<e.length;t++){var n=e[t].rgba[3];if(null!==n&&n<1)return!0}return!1},isAlphaFormat:function(e){switch(e.toLowerCase()){case"hexa":case"rgba":return!0}return!1},scaleCanvasForHighDPR:function(t){var n=e.devicePixelRatio||1;t.width*=n,t.height*=n,t.getContext("2d").scale(n,n)},genColorPreviewCanvas:function(e,t,n,i){var a=Math.round(o.pub.previewSeparator.length),r=o.pub.chessboardSize,s=o.pub.chessboardColor1,l=o.pub.chessboardColor2,c=n||2*r,d=2*r,u=o.createEl("canvas"),p=u.getContext("2d");u.width=c,u.height=d,i&&o.scaleCanvasForHighDPR(u),p.fillStyle=s,p.fillRect(0,0,c,d),p.fillStyle=l;for(var h=0;h<c;h+=2*r)p.fillRect(h,0,r,r),p.fillRect(h+r,r,r,r);e&&(p.fillStyle=e,p.fillRect(0,0,c,d));var f=null;switch(t){case"left":f=0,p.clearRect(0,0,a/2,d);break;case"right":f=c-a,p.clearRect(c-a/2,0,a/2,d)}if(null!==f){p.lineWidth=1;for(var g=0;g<o.pub.previewSeparator.length;g+=1)p.beginPath(),p.strokeStyle=o.pub.previewSeparator[g],p.moveTo(.5+f+g,0),p.lineTo(.5+f+g,d),p.stroke()}return{canvas:u,width:c,height:d}},genColorPreviewGradient:function(e,t,n){var i;return i=t&&n?["to "+{left:"right",right:"left"}[t],e+" 0%",e+" "+n+"px","rgba(0,0,0,0) "+(n+1)+"px","rgba(0,0,0,0) 100%"]:["to right",e+" 0%",e+" 100%"],o.linearGradient.apply(this,i)},redrawPosition:function(){if(o.picker&&o.picker.owner){var t=o.picker.owner;if(t.container!==e.document.body)o._drawPosition(t,0,0,"relative",!1);else{var n,i;t.fixed?(n=o.getElementPos(t.targetElement,!0),i=[0,0]):(n=o.getElementPos(t.targetElement),i=o.getViewPos());var a,r,s,l=o.getElementSize(t.targetElement),c=o.getViewSize(),d=o.getPickerDims(t),u=[d.borderW,d.borderH];switch(t.position.toLowerCase()){case"left":a=1,r=0,s=-1;break;case"right":a=1,r=0,s=1;break;case"top":a=0,r=1,s=-1;break;default:a=0,r=1,s=1}var p=(l[r]+u[r])/2;if(t.smartPosition)h=[-i[a]+n[a]+u[a]>c[a]&&-i[a]+n[a]+l[a]/2>c[a]/2&&n[a]+l[a]-u[a]>=0?n[a]+l[a]-u[a]:n[a],-i[r]+n[r]+l[r]+u[r]-p+p*s>c[r]?-i[r]+n[r]+l[r]/2>c[r]/2&&n[r]+l[r]-p-p*s>=0?n[r]+l[r]-p-p*s:n[r]+l[r]-p+p*s:n[r]+l[r]-p+p*s>=0?n[r]+l[r]-p+p*s:n[r]+l[r]-p-p*s];else var h=[n[a],n[r]+l[r]-p+p*s];var f=h[a],g=h[r],m=t.fixed?"fixed":"absolute",v=(h[0]+u[0]>n[0]||h[0]<n[0]+l[0])&&h[1]+u[1]<n[1]+l[1];o._drawPosition(t,f,g,m,v)}}},_drawPosition:function(e,t,n,i,a){var r=a?0:e.shadowBlur;o.picker.wrap.style.position=i,Math.round(parseFloat(o.picker.wrap.style.left))===Math.round(t)&&Math.round(parseFloat(o.picker.wrap.style.top))===Math.round(n)||(o.picker.wrap.style.left=t+"px",o.picker.wrap.style.top=n+"px"),o.setBoxShadow(o.picker.boxS,e.shadow?new o.BoxShadow(0,r,e.shadowBlur,0,e.shadowColor):null)},getPickerDims:function(e){var t=2*e.controlBorderWidth+e.width,n=2*e.controlBorderWidth+e.height,i=2*e.controlBorderWidth+2*o.getControlPadding(e)+e.sliderSize;o.getSliderChannel(e)&&(t+=i),e.hasAlphaChannel()&&(t+=i);var a=o.getPaletteDims(e,t);a.height&&(n+=a.height+e.padding),e.closeButton&&(n+=2*e.controlBorderWidth+e.padding+e.buttonHeight);var r=t+2*e.padding,s=n+2*e.padding;return{contentW:t,contentH:n,paddedW:r,paddedH:s,borderW:r+2*e.borderWidth,borderH:s+2*e.borderWidth,palette:a}},getPaletteDims:function(e,t){var n=0,i=0,o=0,a=0,r=0,s=e._palette?e._palette.length:0;return s&&(i=(n=e.paletteCols)>0?Math.ceil(s/n):0,o=Math.max(1,Math.floor((t-(n-1)*e.paletteSpacing)/n)),a=e.paletteHeight?Math.min(e.paletteHeight,o):o),i&&(r=i*a+(i-1)*e.paletteSpacing),{cols:n,rows:i,cellW:o,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){return"v"===e.mode.charAt(1).toLowerCase()?"v":"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var n=null;if("string"==typeof e[t])try{n=new Function(e[t])}catch(e){console.error(e)}else n=e[t];n&&n.call(e)}},triggerGlobal:function(e){for(var t=o.getInstances(),n=0;n<t.length;n+=1)t[n].trigger(e)},_pointerMoveEvent:{mouse:"mousemove",touch:"touchmove"},_pointerEndEvent:{mouse:"mouseup",touch:"touchend"},_pointerOrigin:null,onDocumentKeyUp:function(e){-1!==["Tab","Escape"].indexOf(o.eventKey(e))&&o.picker&&o.picker.owner&&o.picker.owner.tryHide()},onWindowResize:function(e){o.redrawPosition()},onWindowScroll:function(e){o.redrawPosition()},onParentScroll:function(e){o.picker&&o.picker.owner&&o.picker.owner.tryHide()},onDocumentMouseDown:function(e){var t=e.target||e.srcElement;t.jscolor&&t.jscolor instanceof o.pub?t.jscolor.showOnClick&&!t.disabled&&t.jscolor.show():o.getData(t,"gui")?o.getData(t,"control")&&o.onControlPointerStart(e,t,o.getData(t,"control"),"mouse"):o.picker&&o.picker.owner&&o.picker.owner.tryHide()},onPickerTouchStart:function(e){var t=e.target||e.srcElement;o.getData(t,"control")&&o.onControlPointerStart(e,t,o.getData(t,"control"),"touch")},onControlPointerStart:function(t,n,i,a){var r=o.getData(n,"instance");o.preventDefault(t);var s=function(e,r){o.attachGroupEvent("drag",e,o._pointerMoveEvent[a],o.onDocumentPointerMove(t,n,i,a,r)),o.attachGroupEvent("drag",e,o._pointerEndEvent[a],o.onDocumentPointerEnd(t,n,i,a))};if(s(e.document,[0,0]),e.parent&&e.frameElement){var l=e.frameElement.getBoundingClientRect(),c=[-l.left,-l.top];s(e.parent.window.document,c)}var d=o.getAbsPointerPos(t),u=o.getRelPointerPos(t);switch(o._pointerOrigin={x:d.x-u.x,y:d.y-u.y},i){case"pad":"v"===o.getSliderChannel(r)&&0===r.channels.v&&r.fromHSVA(null,null,100,null),o.setPad(r,t,0,0);break;case"sld":o.setSld(r,t,0);break;case"asld":o.setASld(r,t,0)}r.trigger("input")},onDocumentPointerMove:function(e,t,n,i,a){return function(e){var i=o.getData(t,"instance");switch(n){case"pad":o.setPad(i,e,a[0],a[1]);break;case"sld":o.setSld(i,e,a[1]);break;case"asld":o.setASld(i,e,a[1])}i.trigger("input")}},onDocumentPointerEnd:function(e,t,n,i){return function(e){var n=o.getData(t,"instance");o.detachGroupEvents("drag"),n.trigger("input"),n.trigger("change")}},onPaletteSampleClick:function(e){var t=e.currentTarget,n=o.getData(t,"instance"),i=o.getData(t,"color");"any"===n.format.toLowerCase()&&(n._setFormat(i.format),o.isAlphaFormat(n.getFormat())||(i.rgba[3]=1)),null===i.rgba[3]&&(!0===n.paletteSetsAlpha||"auto"===n.paletteSetsAlpha&&n._paletteHasTransparency)&&(i.rgba[3]=1),n.fromRGBA.apply(n,i.rgba),n.trigger("input"),n.trigger("change"),n.hideOnPaletteClick&&n.hide()},setPad:function(e,t,n,i){var a=o.getAbsPointerPos(t),r=n+a.x-o._pointerOrigin.x-e.padding-e.controlBorderWidth,s=i+a.y-o._pointerOrigin.y-e.padding-e.controlBorderWidth,l=r*(360/(e.width-1)),c=100-s*(100/(e.height-1));switch(o.getPadYChannel(e)){case"s":e.fromHSVA(l,c,null,null);break;case"v":e.fromHSVA(l,null,c,null)}},setSld:function(e,t,n){var i=100-(n+o.getAbsPointerPos(t).y-o._pointerOrigin.y-e.padding-e.controlBorderWidth)*(100/(e.height-1));switch(o.getSliderChannel(e)){case"s":e.fromHSVA(null,i,null,null);break;case"v":e.fromHSVA(null,null,i,null)}},setASld:function(e,t,n){var i=1-(n+o.getAbsPointerPos(t).y-o._pointerOrigin.y-e.padding-e.controlBorderWidth)*(1/(e.height-1));if(i<1){var a=e.getFormat();"any"!==e.format.toLowerCase()||o.isAlphaFormat(a)||e._setFormat("hex"===a?"hexa":"rgba")}e.fromHSVA(null,null,null,i)},createPadCanvas:function(){var e={elm:null,draw:null},t=o.createEl("canvas"),n=t.getContext("2d");return e.elm=t,e.draw=function(e,i,o){t.width=e,t.height=i,n.clearRect(0,0,t.width,t.height);var a=n.createLinearGradient(0,0,t.width,0);a.addColorStop(0,"#F00"),a.addColorStop(1/6,"#FF0"),a.addColorStop(2/6,"#0F0"),a.addColorStop(.5,"#0FF"),a.addColorStop(4/6,"#00F"),a.addColorStop(5/6,"#F0F"),a.addColorStop(1,"#F00"),n.fillStyle=a,n.fillRect(0,0,t.width,t.height);var r=n.createLinearGradient(0,0,0,t.height);switch(o.toLowerCase()){case"s":r.addColorStop(0,"rgba(255,255,255,0)"),r.addColorStop(1,"rgba(255,255,255,1)");break;case"v":r.addColorStop(0,"rgba(0,0,0,0)"),r.addColorStop(1,"rgba(0,0,0,1)")}n.fillStyle=r,n.fillRect(0,0,t.width,t.height)},e},createSliderGradient:function(){var e={elm:null,draw:null},t=o.createEl("canvas"),n=t.getContext("2d");return e.elm=t,e.draw=function(e,i,o,a){t.width=e,t.height=i,n.clearRect(0,0,t.width,t.height);var r=n.createLinearGradient(0,0,0,t.height);r.addColorStop(0,o),r.addColorStop(1,a),n.fillStyle=r,n.fillRect(0,0,t.width,t.height)},e},createASliderGradient:function(){var e={elm:null,draw:null},t=o.createEl("canvas"),n=t.getContext("2d");return e.elm=t,e.draw=function(e,i,a){t.width=e,t.height=i,n.clearRect(0,0,t.width,t.height);var r=t.width/2,s=o.pub.chessboardColor1,l=o.pub.chessboardColor2;if(n.fillStyle=s,n.fillRect(0,0,t.width,t.height),r>0)for(var c=0;c<t.height;c+=2*r)n.fillStyle=l,n.fillRect(0,c,r,r),n.fillRect(r,c+r,r,r);var d=n.createLinearGradient(0,0,0,t.height);d.addColorStop(0,a),d.addColorStop(1,"rgba(0,0,0,0)"),n.fillStyle=d,n.fillRect(0,0,t.width,t.height)},e},BoxShadow:(t=function(e,t,n,i,o,a){this.hShadow=e,this.vShadow=t,this.blur=n,this.spread=i,this.color=o,this.inset=!!a},t.prototype.toString=function(){var e=[Math.round(this.hShadow)+"px",Math.round(this.vShadow)+"px",Math.round(this.blur)+"px",Math.round(this.spread)+"px",this.color];return this.inset&&e.push("inset"),e.join(" ")},t),flags:{leaveValue:1,leaveAlpha:2,leavePreview:4},enumOpts:{format:["auto","any","hex","hexa","rgb","rgba"],previewPosition:["left","right"],mode:["hsv","hvs","hs","hv"],position:["left","right","top","bottom"],alphaChannel:["auto",!0,!1],paletteSetsAlpha:["auto",!0,!1]},deprecatedOpts:{styleElement:"previewElement",onFineChange:"onInput",overwriteImportant:"forceStyle",closable:"closeButton",insetWidth:"controlBorderWidth",insetColor:"controlBorderColor",refine:null},docsRef:" See https://jscolor.com/docs/",pub:function(t,n){var i=this;function a(e,t){if("string"!=typeof e)throw new Error("Invalid value for option name: "+e);if(o.enumOpts.hasOwnProperty(e)&&("string"==typeof t&&(t=t.toLowerCase()),-1===o.enumOpts[e].indexOf(t)))throw new Error("Option '"+e+"' has invalid value: "+t);if(o.deprecatedOpts.hasOwnProperty(e)){var n=e,a=o.deprecatedOpts[e];if(!a)throw new Error("Option '"+e+"' is DEPRECATED");console.warn("Option '%s' is DEPRECATED, using '%s' instead."+o.docsRef,n,a),e=a}var r="set__"+e;if("function"==typeof i[r])return i[r](t),!0;if(e in i)return i[e]=t,!0;throw new Error("Unrecognized configuration option: "+e)}function r(){i._processParentElementsInDOM(),o.picker||(o.picker={owner:null,wrap:o.createEl("div"),box:o.createEl("div"),boxS:o.createEl("div"),boxB:o.createEl("div"),pad:o.createEl("div"),padB:o.createEl("div"),padM:o.createEl("div"),padCanvas:o.createPadCanvas(),cross:o.createEl("div"),crossBY:o.createEl("div"),crossBX:o.createEl("div"),crossLY:o.createEl("div"),crossLX:o.createEl("div"),sld:o.createEl("div"),sldB:o.createEl("div"),sldM:o.createEl("div"),sldGrad:o.createSliderGradient(),sldPtrS:o.createEl("div"),sldPtrIB:o.createEl("div"),sldPtrMB:o.createEl("div"),sldPtrOB:o.createEl("div"),asld:o.createEl("div"),asldB:o.createEl("div"),asldM:o.createEl("div"),asldGrad:o.createASliderGradient(),asldPtrS:o.createEl("div"),asldPtrIB:o.createEl("div"),asldPtrMB:o.createEl("div"),asldPtrOB:o.createEl("div"),pal:o.createEl("div"),btn:o.createEl("div"),btnT:o.createEl("div")},o.picker.pad.appendChild(o.picker.padCanvas.elm),o.picker.padB.appendChild(o.picker.pad),o.picker.cross.appendChild(o.picker.crossBY),o.picker.cross.appendChild(o.picker.crossBX),o.picker.cross.appendChild(o.picker.crossLY),o.picker.cross.appendChild(o.picker.crossLX),o.picker.padB.appendChild(o.picker.cross),o.picker.box.appendChild(o.picker.padB),o.picker.box.appendChild(o.picker.padM),o.picker.sld.appendChild(o.picker.sldGrad.elm),o.picker.sldB.appendChild(o.picker.sld),o.picker.sldB.appendChild(o.picker.sldPtrOB),o.picker.sldPtrOB.appendChild(o.picker.sldPtrMB),o.picker.sldPtrMB.appendChild(o.picker.sldPtrIB),o.picker.sldPtrIB.appendChild(o.picker.sldPtrS),o.picker.box.appendChild(o.picker.sldB),o.picker.box.appendChild(o.picker.sldM),o.picker.asld.appendChild(o.picker.asldGrad.elm),o.picker.asldB.appendChild(o.picker.asld),o.picker.asldB.appendChild(o.picker.asldPtrOB),o.picker.asldPtrOB.appendChild(o.picker.asldPtrMB),o.picker.asldPtrMB.appendChild(o.picker.asldPtrIB),o.picker.asldPtrIB.appendChild(o.picker.asldPtrS),o.picker.box.appendChild(o.picker.asldB),o.picker.box.appendChild(o.picker.asldM),o.picker.box.appendChild(o.picker.pal),o.picker.btn.appendChild(o.picker.btnT),o.picker.box.appendChild(o.picker.btn),o.picker.boxB.appendChild(o.picker.box),o.picker.wrap.appendChild(o.picker.boxS),o.picker.wrap.appendChild(o.picker.boxB),o.picker.wrap.addEventListener("touchstart",o.onPickerTouchStart,!!o.isPassiveEventSupported&&{passive:!1}));var e,t,n=o.picker,a=!!o.getSliderChannel(i),r=i.hasAlphaChannel(),d=o.getPickerDims(i),u=2*i.pointerBorderWidth+i.pointerThickness+2*i.crossSize,p=o.getControlPadding(i),h=Math.min(i.borderRadius,Math.round(i.padding*Math.PI));n.wrap.className="jscolor-wrap",n.wrap.style.width=d.borderW+"px",n.wrap.style.height=d.borderH+"px",n.wrap.style.zIndex=i.zIndex,n.box.className="jscolor-picker",n.box.style.width=d.paddedW+"px",n.box.style.height=d.paddedH+"px",n.boxS.className="jscolor-shadow",o.setBorderRadius(n.boxS,h+"px"),n.boxB.className="jscolor-border",n.boxB.style.border=i.borderWidth+"px solid",n.boxB.style.borderColor=i.borderColor,n.boxB.style.background=i.backgroundColor,o.setBorderRadius(n.boxB,h+"px"),n.padM.style.background="rgba(255,0,0,.2)",n.sldM.style.background="rgba(0,255,0,.2)",n.asldM.style.background="rgba(0,0,255,.2)",n.padM.style.opacity=n.sldM.style.opacity=n.asldM.style.opacity="0",n.pad.style.position="relative",n.pad.style.width=i.width+"px",n.pad.style.height=i.height+"px",n.padCanvas.draw(i.width,i.height,o.getPadYChannel(i)),n.padB.style.position="absolute",n.padB.style.left=i.padding+"px",n.padB.style.top=i.padding+"px",n.padB.style.border=i.controlBorderWidth+"px solid",n.padB.style.borderColor=i.controlBorderColor,n.padM.style.position="absolute",n.padM.style.left="0px",n.padM.style.top="0px",n.padM.style.width=i.padding+2*i.controlBorderWidth+i.width+p+"px",n.padM.style.height=2*i.controlBorderWidth+2*i.padding+i.height+"px",n.padM.style.cursor="crosshair",o.setData(n.padM,{instance:i,control:"pad"}),n.cross.style.position="absolute",n.cross.style.left=n.cross.style.top="0",n.cross.style.width=n.cross.style.height=u+"px",n.crossBY.style.position=n.crossBX.style.position="absolute",n.crossBY.style.background=n.crossBX.style.background=i.pointerBorderColor,n.crossBY.style.width=n.crossBX.style.height=2*i.pointerBorderWidth+i.pointerThickness+"px",n.crossBY.style.height=n.crossBX.style.width=u+"px",n.crossBY.style.left=n.crossBX.style.top=Math.floor(u/2)-Math.floor(i.pointerThickness/2)-i.pointerBorderWidth+"px",n.crossBY.style.top=n.crossBX.style.left="0",n.crossLY.style.position=n.crossLX.style.position="absolute",n.crossLY.style.background=n.crossLX.style.background=i.pointerColor,n.crossLY.style.height=n.crossLX.style.width=u-2*i.pointerBorderWidth+"px",n.crossLY.style.width=n.crossLX.style.height=i.pointerThickness+"px",n.crossLY.style.left=n.crossLX.style.top=Math.floor(u/2)-Math.floor(i.pointerThickness/2)+"px",n.crossLY.style.top=n.crossLX.style.left=i.pointerBorderWidth+"px",n.sld.style.overflow="hidden",n.sld.style.width=i.sliderSize+"px",n.sld.style.height=i.height+"px",n.sldGrad.draw(i.sliderSize,i.height,"#000","#000"),n.sldB.style.display=a?"block":"none",n.sldB.style.position="absolute",n.sldB.style.left=i.padding+i.width+2*i.controlBorderWidth+2*p+"px",n.sldB.style.top=i.padding+"px",n.sldB.style.border=i.controlBorderWidth+"px solid",n.sldB.style.borderColor=i.controlBorderColor,n.sldM.style.display=a?"block":"none",n.sldM.style.position="absolute",n.sldM.style.left=i.padding+i.width+2*i.controlBorderWidth+p+"px",n.sldM.style.top="0px",n.sldM.style.width=i.sliderSize+2*p+2*i.controlBorderWidth+(r?0:Math.max(0,i.padding-p))+"px",n.sldM.style.height=2*i.controlBorderWidth+2*i.padding+i.height+"px",n.sldM.style.cursor="default",o.setData(n.sldM,{instance:i,control:"sld"}),n.sldPtrIB.style.border=n.sldPtrOB.style.border=i.pointerBorderWidth+"px solid "+i.pointerBorderColor,n.sldPtrOB.style.position="absolute",n.sldPtrOB.style.left=-(2*i.pointerBorderWidth+i.pointerThickness)+"px",n.sldPtrOB.style.top="0",n.sldPtrMB.style.border=i.pointerThickness+"px solid "+i.pointerColor,n.sldPtrS.style.width=i.sliderSize+"px",n.sldPtrS.style.height=o.pub.sliderInnerSpace+"px",n.asld.style.overflow="hidden",n.asld.style.width=i.sliderSize+"px",n.asld.style.height=i.height+"px",n.asldGrad.draw(i.sliderSize,i.height,"#000"),n.asldB.style.display=r?"block":"none",n.asldB.style.position="absolute",n.asldB.style.left=i.padding+i.width+2*i.controlBorderWidth+p+(a?i.sliderSize+3*p+2*i.controlBorderWidth:0)+"px",n.asldB.style.top=i.padding+"px",n.asldB.style.border=i.controlBorderWidth+"px solid",n.asldB.style.borderColor=i.controlBorderColor,n.asldM.style.display=r?"block":"none",n.asldM.style.position="absolute",n.asldM.style.left=i.padding+i.width+2*i.controlBorderWidth+p+(a?i.sliderSize+2*p+2*i.controlBorderWidth:0)+"px",n.asldM.style.top="0px",n.asldM.style.width=i.sliderSize+2*p+2*i.controlBorderWidth+Math.max(0,i.padding-p)+"px",n.asldM.style.height=2*i.controlBorderWidth+2*i.padding+i.height+"px",n.asldM.style.cursor="default",o.setData(n.asldM,{instance:i,control:"asld"}),n.asldPtrIB.style.border=n.asldPtrOB.style.border=i.pointerBorderWidth+"px solid "+i.pointerBorderColor,n.asldPtrOB.style.position="absolute",n.asldPtrOB.style.left=-(2*i.pointerBorderWidth+i.pointerThickness)+"px",n.asldPtrOB.style.top="0",n.asldPtrMB.style.border=i.pointerThickness+"px solid "+i.pointerColor,n.asldPtrS.style.width=i.sliderSize+"px",n.asldPtrS.style.height=o.pub.sliderInnerSpace+"px",n.pal.className="jscolor-palette",n.pal.style.display=d.palette.rows?"block":"none",n.pal.style.left=i.padding+"px",n.pal.style.top=2*i.controlBorderWidth+2*i.padding+i.height+"px",n.pal.innerHTML="";for(var f=o.genColorPreviewCanvas("rgba(0,0,0,0)"),g=0,m=0;m<d.palette.rows;m++)for(var v=0;v<d.palette.cols&&g<i._palette.length;v++,g++){var _=i._palette[g],b=o.rgbaColor.apply(null,_.rgba),x=o.createEl("div");x.style.width=d.palette.cellW-2*i.controlBorderWidth+"px",x.style.height=d.palette.cellH-2*i.controlBorderWidth+"px",x.style.backgroundColor=b;var y=o.createEl("div");y.className="jscolor-palette-sw",y.style.left=(d.palette.cols<=1?0:Math.round(v*((d.contentW-d.palette.cellW)/(d.palette.cols-1))*10)/10)+"px",y.style.top=m*(d.palette.cellH+i.paletteSpacing)+"px",y.style.border=i.controlBorderWidth+"px solid",y.style.borderColor=i.controlBorderColor,null!==_.rgba[3]&&_.rgba[3]<1&&(y.style.backgroundImage="url('"+f.canvas.toDataURL()+"')",y.style.backgroundRepeat="repeat",y.style.backgroundPosition="center center"),o.setData(y,{instance:i,control:"palette-sw",color:_}),y.addEventListener("click",o.onPaletteSampleClick,!1),y.appendChild(x),n.pal.appendChild(y)}n.btn.className="jscolor-btn jscolor-btn-close",n.btn.style.display=i.closeButton?"block":"none",n.btn.style.left=i.padding+"px",n.btn.style.bottom=i.padding+"px",n.btn.style.padding="0 15px",n.btn.style.maxWidth=d.contentW-2*i.controlBorderWidth-30+"px",n.btn.style.height=i.buttonHeight+"px",n.btn.style.border=i.controlBorderWidth+"px solid",t=(e=i.controlBorderColor.split(/\s+/)).length<2?e[0]:e[1]+" "+e[0]+" "+e[0]+" "+e[1],n.btn.style.borderColor=t,n.btn.style.color=i.buttonColor,n.btn.onmousedown=function(){i.hide()},n.btnT.style.display="inline",n.btnT.style.lineHeight=i.buttonHeight+"px",n.btnT.innerText=i.closeText,s(),l(),c(),o.picker.owner&&o.picker.owner!==i&&o.removeClass(o.picker.owner.targetElement,o.pub.activeClassName),o.picker.owner=i,o.redrawPosition(),n.wrap.parentNode!==i.container&&i.container.appendChild(n.wrap),o.addClass(i.targetElement,o.pub.activeClassName)}function s(){var e=o.getPadYChannel(i),t=Math.round(i.channels.h/360*(i.width-1)),n=Math.round((1-i.channels[e]/100)*(i.height-1)),a=2*i.pointerBorderWidth+i.pointerThickness+2*i.crossSize,r=-Math.floor(a/2);switch(o.picker.cross.style.left=t+r+"px",o.picker.cross.style.top=n+r+"px",o.getSliderChannel(i)){case"s":var s=o.HSV_RGB(i.channels.h,100,i.channels.v),l=o.HSV_RGB(i.channels.h,0,i.channels.v),c="rgb("+Math.round(s[0])+","+Math.round(s[1])+","+Math.round(s[2])+")",d="rgb("+Math.round(l[0])+","+Math.round(l[1])+","+Math.round(l[2])+")";o.picker.sldGrad.draw(i.sliderSize,i.height,c,d);break;case"v":var u=o.HSV_RGB(i.channels.h,i.channels.s,100);c="rgb("+Math.round(u[0])+","+Math.round(u[1])+","+Math.round(u[2])+")",d="#000",o.picker.sldGrad.draw(i.sliderSize,i.height,c,d)}o.picker.asldGrad.draw(i.sliderSize,i.height,i.toHEXString())}function l(){var e=o.getSliderChannel(i);if(e){var t=Math.round((1-i.channels[e]/100)*(i.height-1));o.picker.sldPtrOB.style.top=t-(2*i.pointerBorderWidth+i.pointerThickness)-Math.floor(o.pub.sliderInnerSpace/2)+"px"}o.picker.asldGrad.draw(i.sliderSize,i.height,i.toHEXString())}function c(){var e=Math.round((1-i.channels.a)*(i.height-1));o.picker.asldPtrOB.style.top=e-(2*i.pointerBorderWidth+i.pointerThickness)-Math.floor(o.pub.sliderInnerSpace/2)+"px"}function d(){return o.picker&&o.picker.owner===i}if(n||(n={}),this.channels={r:255,g:255,b:255,h:0,s:0,v:100,a:1},this.format="auto",this.value=void 0,this.alpha=void 0,this.random=!1,this.onChange=void 0,this.onInput=void 0,this.valueElement=void 0,this.alphaElement=void 0,this.previewElement=void 0,this.previewPosition="left",this.previewSize=32,this.previewPadding=8,this.required=!0,this.hash=!0,this.uppercase=!0,this.forceStyle=!0,this.width=181,this.height=101,this.mode="HSV",this.alphaChannel="auto",this.position="bottom",this.smartPosition=!0,this.showOnClick=!0,this.hideOnLeave=!0,this.palette=[],this.paletteCols=10,this.paletteSetsAlpha="auto",this.paletteHeight=16,this.paletteSpacing=4,this.hideOnPaletteClick=!1,this.sliderSize=16,this.crossSize=8,this.closeButton=!1,this.closeText="Close",this.buttonColor="rgba(0,0,0,1)",this.buttonHeight=18,this.padding=12,this.backgroundColor="rgba(255,255,255,1)",this.borderWidth=1,this.borderColor="rgba(187,187,187,1)",this.borderRadius=8,this.controlBorderWidth=1,this.controlBorderColor="rgba(187,187,187,1)",this.shadow=!0,this.shadowBlur=15,this.shadowColor="rgba(0,0,0,0.2)",this.pointerColor="rgba(76,76,76,1)",this.pointerBorderWidth=1,this.pointerBorderColor="rgba(255,255,255,1)",this.pointerThickness=2,this.zIndex=5e3,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 new Error("No option specified");if(1===arguments.length&&"string"==typeof arguments[0]){try{return function(e){if("string"!=typeof e)throw new Error("Invalid value for option name: "+e);if(o.deprecatedOpts.hasOwnProperty(e)){var t=e,n=o.deprecatedOpts[e];if(!n)throw new Error("Option '"+e+"' is DEPRECATED");console.warn("Option '%s' is DEPRECATED, using '%s' instead."+o.docsRef,t,n),e=n}var a="get__"+e;if("function"==typeof i[a])return i[a](value);if(e in i)return i[e];throw new Error("Unrecognized configuration option: "+e)}(arguments[0])}catch(e){console.warn(e)}return!1}if(arguments.length>=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var n in e)if(e.hasOwnProperty(n))try{a(n,e[n])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var n=!1;switch(e.toLowerCase()){case"r":n=this.fromRGBA(t,null,null,null);break;case"g":n=this.fromRGBA(null,t,null,null);break;case"b":n=this.fromRGBA(null,null,t,null);break;case"h":n=this.fromHSVA(t,null,null,null);break;case"s":n=this.fromHSVA(null,t,null,null);break;case"v":n=this.fromHSVA(null,null,t,null);break;case"a":n=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!n&&(this.redraw(),!0)},this.trigger=function(e){for(var t=o.strList(e),n=0;n<t.length;n+=1){var i=t[n].toLowerCase(),a=null;switch(i){case"input":a="onInput";break;case"change":a="onChange"}a&&o.triggerCallback(this,a),o.triggerInputEvent(this.valueElement,i,!0,!0)}},this.fromHSVA=function(e,t,n,i,a){if(void 0===e&&(e=null),void 0===t&&(t=null),void 0===n&&(n=null),void 0===i&&(i=null),null!==e){if(isNaN(e))return!1;this.channels.h=Math.max(0,Math.min(360,e))}if(null!==t){if(isNaN(t))return!1;this.channels.s=Math.max(0,Math.min(100,this.maxS,t),this.minS)}if(null!==n){if(isNaN(n))return!1;this.channels.v=Math.max(0,Math.min(100,this.maxV,n),this.minV)}if(null!==i){if(isNaN(i))return!1;this.channels.a=this.hasAlphaChannel()?Math.max(0,Math.min(1,this.maxA,i),this.minA):1}var r=o.HSV_RGB(this.channels.h,this.channels.s,this.channels.v);return this.channels.r=r[0],this.channels.g=r[1],this.channels.b=r[2],this.exposeColor(a),!0},this.fromRGBA=function(e,t,n,i,a){if(void 0===e&&(e=null),void 0===t&&(t=null),void 0===n&&(n=null),void 0===i&&(i=null),null!==e){if(isNaN(e))return!1;e=Math.max(0,Math.min(255,e))}if(null!==t){if(isNaN(t))return!1;t=Math.max(0,Math.min(255,t))}if(null!==n){if(isNaN(n))return!1;n=Math.max(0,Math.min(255,n))}if(null!==i){if(isNaN(i))return!1;this.channels.a=this.hasAlphaChannel()?Math.max(0,Math.min(1,this.maxA,i),this.minA):1}var r=o.RGB_HSV(null===e?this.channels.r:e,null===t?this.channels.g:t,null===n?this.channels.b:n);null!==r[0]&&(this.channels.h=Math.max(0,Math.min(360,r[0]))),0!==r[2]&&(this.channels.s=Math.max(0,this.minS,Math.min(100,this.maxS,r[1]))),this.channels.v=Math.max(0,this.minV,Math.min(100,this.maxV,r[2]));var s=o.HSV_RGB(this.channels.h,this.channels.s,this.channels.v);return this.channels.r=s[0],this.channels.g=s[1],this.channels.b=s[2],this.exposeColor(a),!0},this.fromHSV=function(e,t,n,i){return console.warn("fromHSV() method is DEPRECATED. Using fromHSVA() instead."+o.docsRef),this.fromHSVA(e,t,n,null,i)},this.fromRGB=function(e,t,n,i){return console.warn("fromRGB() method is DEPRECATED. Using fromRGBA() instead."+o.docsRef),this.fromRGBA(e,t,n,null,i)},this.fromString=function(e,t){if(!this.required&&""===e.trim())return this.setPreviewElementBg(null),this.setValueElementValue(""),!0;var n=o.parseColorString(e);return!!n&&("any"===this.format.toLowerCase()&&(this._setFormat(n.format),o.isAlphaFormat(this.getFormat())||(n.rgba[3]=1)),this.fromRGBA(n.rgba[0],n.rgba[1],n.rgba[2],n.rgba[3],t),!0)},this.randomize=function(e,t,n,i,o,a,r,s){void 0===e&&(e=0),void 0===t&&(t=100),void 0===n&&(n=0),void 0===i&&(i=100),void 0===o&&(o=0),void 0===a&&(a=359),void 0===r&&(r=1),void 0===s&&(s=1),this.fromHSVA(o+Math.floor(Math.random()*(a-o+1)),n+Math.floor(Math.random()*(i-n+1)),e+Math.floor(Math.random()*(t-e+1)),(100*r+Math.floor(Math.random()*(100*(s-r)+1)))/100)},this.toString=function(e){switch(void 0===e&&(e=this.getFormat()),e.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 o.hexColor(this.channels.r,this.channels.g,this.channels.b)},this.toHEXAString=function(){return o.hexaColor(this.channels.r,this.channels.g,this.channels.b,this.channels.a)},this.toRGBString=function(){return o.rgbColor(this.channels.r,this.channels.g,this.channels.b)},this.toRGBAString=function(){return o.rgbaColor(this.channels.r,this.channels.g,this.channels.b,this.channels.a)},this.toGrayscale=function(){return.213*this.channels.r+.715*this.channels.g+.072*this.channels.b},this.toCanvas=function(){return o.genColorPreviewCanvas(this.toRGBAString()).canvas},this.toDataURL=function(){return this.toCanvas().toDataURL()},this.toBackground=function(){return o.pub.background(this.toRGBAString())},this.isLight=function(){return this.toGrayscale()>127.5},this.hide=function(){d()&&(o.removeClass(i.targetElement,o.pub.activeClassName),o.picker.wrap.parentNode.removeChild(o.picker.wrap),delete o.picker.owner)},this.show=function(){r()},this.redraw=function(){d()&&r()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||o.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),n=this.getFormat();if(o.setDataAttr(this.targetElement,"current-color",t),e&o.flags.leaveValue||!this.valueElement||("hex"!==n&&"hexa"!==n||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&o.flags.leaveAlpha)&&this.alphaElement){var i=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(i)}e&o.flags.leavePreview||!this.previewElement||((o.isTextInput(this.previewElement)||o.isButton(this.previewElement)&&!o.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),d()&&(s(),l(),c())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,n=null;(o.isTextInput(this.previewElement)||o.isButton(this.previewElement)&&!o.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,n=this.previewSize);var i=[];if(e){i.push({image:o.genColorPreviewGradient(e,t,n?n-o.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=o.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,n,!0);i.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else i.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},s=0;s<i.length;s+=1)r.image.push(i[s].image),r.position.push(i[s].position),r.size.push(i[s].size),r.repeat.push(i[s].repeat),r.origin.push(i[s].origin);var l={"background-image":r.image.join(", "),"background-position":r.position.join(", "),"background-size":r.size.join(", "),"background-repeat":r.repeat.join(", "),"background-origin":r.origin.join(", ")};o.setStyle(this.previewElement,l,this.forceStyle);var c={left:null,right:null};t&&(c[t]=this.previewSize+this.previewPadding+"px"),l={"padding-left":c.left,"padding-right":c.right},o.setStyle(this.previewElement,l,this.forceStyle,!0)}},this.setValueElementValue=function(e){this.valueElement&&("input"===o.nodeName(this.valueElement)?this.valueElement.value=e:this.valueElement.innerHTML=e)},this.setAlphaElementValue=function(e){this.alphaElement&&("input"===o.nodeName(this.alphaElement)?this.alphaElement.value=e:this.alphaElement.innerHTML=e)},this._processParentElementsInDOM=function(){if(!this._parentElementsProcessed){this._parentElementsProcessed=!0;var e=this.targetElement;do{var t=o.getCompStyle(e);t.position&&"fixed"===t.position.toLowerCase()&&(this.fixed=!0),e!==this.targetElement&&(o.getData(e,"hasScrollListener")||(e.addEventListener("scroll",o.onParentScroll,!1),o.setData(e,"hasScrollListener",!0)))}while((e=e.parentNode)&&"body"!==o.nodeName(e))}},this.tryHide=function(){this.hideOnLeave&&this.hide()},this.set__palette=function(e){this.palette=e,this._palette=o.parsePaletteValue(e),this._paletteHasTransparency=o.containsTranparentColor(this._palette)},o.pub.options)for(var u in o.pub.options)if(o.pub.options.hasOwnProperty(u))try{a(u,o.pub.options[u])}catch(e){console.warn(e)}var p=[];n.preset&&("string"==typeof n.preset?p=n.preset.split(/\s+/):Array.isArray(n.preset)?p=n.preset.slice():console.warn("Unrecognized preset value")),-1===p.indexOf("default")&&p.push("default");for(var h=p.length-1;h>=0;h-=1){var f=p[h];if(f)if(o.pub.presets.hasOwnProperty(f)){for(var u in o.pub.presets[f])if(o.pub.presets[f].hasOwnProperty(u))try{a(u,o.pub.presets[f][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",f)}var g=["preset"];for(var u in n)if(n.hasOwnProperty(u)&&-1===g.indexOf(u))try{a(u,n[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=o.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=o.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof o.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,o.addClass(this.targetElement,o.pub.className),o.instances.push(this),o.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),o.isButtonEmpty(this.targetElement))){o.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var m=o.getCompStyle(this.targetElement);(parseFloat(m["min-width"])||0)<this.previewSize&&o.setStyle(this.targetElement,{"min-width":this.previewSize+"px"},this.forceStyle)}if(void 0===this.valueElement?o.isTextInput(this.targetElement)&&(this.valueElement=this.targetElement):null===this.valueElement||(this.valueElement=o.node(this.valueElement)),this.alphaElement&&(this.alphaElement=o.node(this.alphaElement)),void 0===this.previewElement?this.previewElement=this.targetElement:null===this.previewElement||(this.previewElement=o.node(this.previewElement)),this.valueElement&&o.isTextInput(this.valueElement)){var v={onInput:this.valueElement.oninput};this.valueElement.oninput=null,this.valueElement.addEventListener("keydown",(function(e){"Enter"===o.eventKey(e)&&(i.valueElement&&i.processValueInput(i.valueElement.value),i.tryHide())}),!1),this.valueElement.addEventListener("change",(function(e){if(!o.getData(e,"internal")){var t=i.valueElement.value;i.processValueInput(i.valueElement.value),o.triggerCallback(i,"onChange"),i.valueElement.value!==t&&o.triggerInputEvent(i.valueElement,"change",!0,!0)}}),!1),this.valueElement.addEventListener("input",(function(e){o.getData(e,"internal")||(i.valueElement&&i.fromString(i.valueElement.value,o.flags.leaveValue),o.triggerCallback(i,"onInput"))}),!1),v.onInput&&this.valueElement.addEventListener("input",v.onInput,!1),this.valueElement.setAttribute("autocomplete","off"),this.valueElement.setAttribute("autocorrect","off"),this.valueElement.setAttribute("autocapitalize","off"),this.valueElement.setAttribute("spellcheck",!1)}this.alphaElement&&o.isTextInput(this.alphaElement)&&(this.alphaElement.addEventListener("keydown",(function(e){"Enter"===o.eventKey(e)&&(i.alphaElement&&i.processAlphaInput(i.alphaElement.value),i.tryHide())}),!1),this.alphaElement.addEventListener("change",(function(e){if(!o.getData(e,"internal")){var t=i.alphaElement.value;i.processAlphaInput(i.alphaElement.value),o.triggerCallback(i,"onChange"),o.triggerInputEvent(i.valueElement,"change",!0,!0),i.alphaElement.value!==t&&o.triggerInputEvent(i.alphaElement,"change",!0,!0)}}),!1),this.alphaElement.addEventListener("input",(function(e){o.getData(e,"internal")||(i.alphaElement&&i.fromHSVA(null,null,null,parseFloat(i.alphaElement.value),o.flags.leaveAlpha),o.triggerCallback(i,"onInput"),o.triggerInputEvent(i.valueElement,"input",!0,!0))}),!1),this.alphaElement.setAttribute("autocomplete","off"),this.alphaElement.setAttribute("autocorrect","off"),this.alphaElement.setAttribute("autocapitalize","off"),this.alphaElement.setAttribute("spellcheck",!1));var _="FFFFFF";void 0!==this.value?_=this.value:this.valueElement&&void 0!==this.valueElement.value&&(_=this.valueElement.value);var b=void 0;if(void 0!==this.alpha?b=""+this.alpha:this.alphaElement&&void 0!==this.alphaElement.value&&(b=this.alphaElement.value),this._currentFormat=null,["auto","any"].indexOf(this.format.toLowerCase())>-1){var x=o.parseColorString(_);this._currentFormat=x?x.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(_),void 0!==b&&this.processAlphaInput(b),this.random&&this.randomize.apply(this,Array.isArray(this.random)?this.random:[])}},o.pub.className="jscolor",o.pub.activeClassName="jscolor-active",o.pub.looseJSON=!0,o.pub.presets={},o.pub.presets.default={},o.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},o.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},o.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},o.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},o.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},o.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},o.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},o.pub.sliderInnerSpace=3,o.pub.chessboardSize=8,o.pub.chessboardColor1="#666666",o.pub.chessboardColor2="#999999",o.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],o.pub.init=function(){if(!o.initialized)for(e.document.addEventListener("mousedown",o.onDocumentMouseDown,!1),e.document.addEventListener("keyup",o.onDocumentKeyUp,!1),e.addEventListener("resize",o.onWindowResize,!1),e.addEventListener("scroll",o.onWindowScroll,!1),o.appendDefaultCss(),o.pub.install(),o.initialized=!0;o.readyQueue.length;)o.readyQueue.shift()()},o.pub.install=function(e){var t=!0;try{o.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(o.pub.lookupClass)try{o.installBySelector("input."+o.pub.lookupClass+", button."+o.pub.lookupClass,e)}catch(e){}return t},o.pub.ready=function(e){return"function"!=typeof e?(consol