From 23989c86faeb5473fcaa7a1855b745d7933f225b Mon Sep 17 00:00:00 2001 From: Robert DeVore Date: Sat, 24 Mar 2018 12:55:15 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8C=20IMPROVE:=20Square=20dimensions?= =?UTF-8?q?=20recalculated=20for=20full=20color=20range?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit thanks @benjaminmueller - [PR](https://github.com/Automattic/Iris/pull/48) --- dist/iris-basic.js | 8 ++++---- dist/iris-basic.min.js | 5 +---- dist/iris.js | 8 ++++---- dist/iris.min.js | 5 +---- src/iris.js | 4 ++-- 5 files changed, 12 insertions(+), 18 deletions(-) diff --git a/dist/iris-basic.js b/dist/iris-basic.js index 888e87f..136fa46 100644 --- a/dist/iris-basic.js +++ b/dist/iris-basic.js @@ -1,6 +1,6 @@ -/*! Iris Color Picker - v1.0.7 - 2014-11-28 +/*! Iris Color Picker - v1.0.7 - 2018-03-24 * https://github.com/Automattic/Iris -* Copyright (c) 2014 Matt Wiebe; Licensed GPLv2 */ +* Copyright (c) 2018 Matt Wiebe; Licensed GPLv2 */ (function( $, undef ){ var _html, nonGradientIE, gradientType, vendorPrefixes, _css, Iris, UA, isIE, IEVersion; @@ -763,8 +763,8 @@ control = this.controls.squareDrag; dimensions = { - w: square.width(), - h: square.height() + w: square.width() - control.width(), + h: square.height() - control.height() }; square.data( 'dimensions', dimensions ); return dimensions; diff --git a/dist/iris-basic.min.js b/dist/iris-basic.min.js index 03a5df9..c54a6bd 100644 --- a/dist/iris-basic.min.js +++ b/dist/iris-basic.min.js @@ -1,4 +1 @@ -/*! Iris Color Picker - v1.0.7 - 2014-11-28 -* https://github.com/Automattic/Iris -* Copyright (c) 2014 Matt Wiebe; Licensed GPLv2 */ -!function(a,b){function c(){var b,c,d="backgroundImage";j?k="filter":(b=a('
'),c="linear-gradient(top,#fff,#000)",a.each(l,function(a,e){return b.css(d,e+c),b.css(d).match("gradient")?(k=a,!1):void 0}),k===!1&&(b.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),b.css(d).match("gradient")&&(k="webkit")),b.remove())}function d(b,c){return b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),"webkit"===k?f(b,c):l[k]+"linear-gradient("+b+", "+c.join(", ")+")"}function e(b,c){var d,e,f,h,i,j,k,l,m;b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),d="top"===b?0:1,e=a(this),f=c.length-1,h="filter",i=1===d?"left":"top",j=1===d?"right":"bottom",k=1===d?"height":"width",l='
',m="","static"===e.css("position")&&e.css({position:"relative"}),c=g(c),a.each(c,function(a,b){var e,g,h;return a===f?!1:(e=c[a+1],b.stop!==e.stop&&(g=100-parseFloat(e.stop)+"%",b.octoHex=new Color(b.color).toIEOctoHex(),e.octoHex=new Color(e.color).toIEOctoHex(),h="progid:DXImageTransform.Microsoft.Gradient(GradientType="+d+", StartColorStr='"+b.octoHex+"', EndColorStr='"+e.octoHex+"')",m+=l.replace("%start%",b.stop).replace("%end%",g).replace("%filter%",h)),void 0)}),e.find(".iris-ie-gradient-shim").remove(),a(m).prependTo(e)}function f(b,c){var d=[];return b="top"===b?"0% 0%,0% 100%,":"0% 100%,100% 100%,",c=g(c),a.each(c,function(a,b){d.push("color-stop("+parseFloat(b.stop)/100+", "+b.color+")")}),"-webkit-gradient(linear,"+b+d.join(",")+")"}function g(b){var c=[],d=[],e=[],f=b.length-1;return a.each(b,function(a,b){var e=b,f=!1,g=b.match(/1?[0-9]{1,2}%$/);g&&(e=b.replace(/\s?1?[0-9]{1,2}%$/,""),f=g.shift()),c.push(e),d.push(f)}),d[0]===!1&&(d[0]="0%"),d[f]===!1&&(d[f]="100%"),d=h(d),a.each(d,function(a){e[a]={color:c[a],stop:d[a]}}),e}function h(b){var c,d,e,f,g=0,i=b.length-1,j=0,k=!1;if(b.length<=2||a.inArray(!1,b)<0)return b;for(;jj;)b[j]=f+e*c+"%",e++,j++;return h(b)}var i,j,k,l,m,n,o,p,q;return i='
',m='.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}',o=navigator.userAgent.toLowerCase(),p="Microsoft Internet Explorer"===navigator.appName,q=p?parseFloat(o.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,j=p&&10>q,k=!1,l=["-moz-","-webkit-","-o-","-ms-"],j&&7>=q?(a.fn.iris=a.noop,a.support.iris=!1,void 0):(a.support.iris=!0,a.fn.gradient=function(){var b=arguments;return this.each(function(){j?e.apply(this,b):a(this).css("backgroundImage",d.apply(this,b))})},a.fn.raninbowGradient=function(b,c){var d,e,f,g;for(b=b||"top",d=a.extend({},{s:100,l:50},c),e="hsl(%h%,"+d.s+"%,"+d.l+"%)",f=0,g=[];360>=f;)g.push(e.replace("%h%",f)),f+=30;return this.each(function(){a(this).gradient(b,g)})},n={options:{color:!1,mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},hide:!0,border:!0,target:!1,width:200,palettes:!1},_color:"",_palettes:["#000","#fff","#d33","#d93","#ee2","#81d742","#1e73be","#8224e3"],_inited:!1,_defaultHSLControls:{horiz:"s",vert:"l",strip:"h"},_defaultHSVControls:{horiz:"h",vert:"v",strip:"s"},_scale:{h:360,s:100,l:100,v:100},_create:function(){var b=this,d=b.element,e=b.options.color||d.val();k===!1&&c(),d.is("input")?(b.picker=b.options.target?a(i).appendTo(b.options.target):a(i).insertAfter(d),b._addInputListeners(d)):(d.append(i),b.picker=d.find(".iris-picker")),p?9===q?b.picker.addClass("iris-ie-9"):8>=q&&b.picker.addClass("iris-ie-lt9"):o.indexOf("compatible")<0&&o.indexOf("khtml")<0&&o.match(/mozilla/)&&b.picker.addClass("iris-mozilla"),b.options.palettes&&b._addPalettes(),b._color=new Color(e).setHSpace(b.options.mode),b.options.color=b._color.toString(),b.controls={square:b.picker.find(".iris-square"),squareDrag:b.picker.find(".iris-square-value"),horiz:b.picker.find(".iris-square-horiz"),vert:b.picker.find(".iris-square-vert"),strip:b.picker.find(".iris-strip"),stripSlider:b.picker.find(".iris-strip .iris-slider-offset")},"hsv"===b.options.mode&&b._has("l",b.options.controls)?b.options.controls=b._defaultHSVControls:"hsl"===b.options.mode&&b._has("v",b.options.controls)&&(b.options.controls=b._defaultHSLControls),b.hue=b._color.h(),b.options.hide&&b.picker.hide(),b.options.border&&b.picker.addClass("iris-border"),b._initControls(),b.active="external",b._dimensions(),b._change()},_has:function(b,c){var d=!1;return a.each(c,function(a,c){return b===c?(d=!0,!1):void 0}),d},_addPalettes:function(){var b=a('
'),c=a(''),d=a.isArray(this.options.palettes)?this.options.palettes:this._palettes;this.picker.find(".iris-palette-container").length&&(b=this.picker.find(".iris-palette-container").detach().html("")),a.each(d,function(a,d){c.clone().data("color",d).css("backgroundColor",d).appendTo(b).height(10).width(10)}),this.picker.append(b)},_paint:function(){var a=this;a._paintDimension("top","strip"),a._paintDimension("top","vert"),a._paintDimension("left","horiz")},_paintDimension:function(a,b){var c,d=this,e=d._color,f=d.options.mode,g=d._getHSpaceColor(),h=d.controls[b],i=d.options.controls;if(b!==d.active&&("square"!==d.active||"strip"===b))switch(i[b]){case"h":if("hsv"===f){switch(g=e.clone(),b){case"horiz":g[i.vert](100);break;case"vert":g[i.horiz](100);break;case"strip":g.setHSpace("hsl")}c=g.toHsl()}else c="strip"===b?{s:g.s,l:g.l}:{s:100,l:g.l};h.raninbowGradient(a,c);break;case"s":"hsv"===f?"vert"===b?c=[e.clone().a(0).s(0).toCSS("rgba"),e.clone().a(1).s(0).toCSS("rgba")]:"strip"===b?c=[e.clone().s(100).toCSS("hsl"),e.clone().s(0).toCSS("hsl")]:"horiz"===b&&(c=["#fff","hsl("+g.h+",100%,50%)"]):c="vert"===b&&"h"===d.options.controls.horiz?["hsla(0, 0%, "+g.l+"%, 0)","hsla(0, 0%, "+g.l+"%, 1)"]:["hsl("+g.h+",0%,50%)","hsl("+g.h+",100%,50%)"],h.gradient(a,c);break;case"l":c="strip"===b?["hsl("+g.h+",100%,100%)","hsl("+g.h+", "+g.s+"%,50%)","hsl("+g.h+",100%,0%)"]:["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],h.gradient(a,c);break;case"v":c="strip"===b?[e.clone().v(100).toCSS(),e.clone().v(0).toCSS()]:["rgba(0,0,0,0)","#000"],h.gradient(a,c)}},_getHSpaceColor:function(){return"hsv"===this.options.mode?this._color.toHsv():this._color.toHsl()},_dimensions:function(b){var c,d,e,f,g=this,h=g.options,i=g.controls,j=i.square,k=g.picker.find(".iris-strip"),l="77.5%",m="12%",n=20,o=h.border?h.width-n:h.width,p=a.isArray(h.palettes)?h.palettes.length:g._palettes.length;return b&&(j.css("width",""),k.css("width",""),g.picker.css({width:"",height:""})),l=o*(parseFloat(l)/100),m=o*(parseFloat(m)/100),c=h.border?l+n:l,j.width(l).height(l),k.height(l).width(m),g.picker.css({width:h.width,height:c}),h.palettes?(d=2*l/100,f=l-(p-1)*d,e=f/p,g.picker.find(".iris-palette").each(function(b){var c=0===b?0:d;a(this).css({width:e,height:e,marginLeft:c})}),g.picker.css("paddingBottom",e+d),k.height(e+d+l),void 0):g.picker.css("paddingBottom","")},_addInputListeners:function(a){var b=this,c=100,d=function(c){var d=new Color(a.val()),e=a.val().replace(/^#/,"");a.removeClass("iris-error"),d.error?""!==e&&a.addClass("iris-error"):d.toString()!==b._color.toString()&&("keyup"===c.type&&e.match(/^[0-9a-fA-F]{3}$/)||b._setOption("color",d.toString()))};a.on("change",d).on("keyup",b._debounce(d,c)),b.options.hide&&a.one("focus",function(){b.show()})},_initControls:function(){var b=this,c=b.controls,d=c.square,e=b.options.controls,f=b._scale[e.strip];c.stripSlider.slider({orientation:"vertical",max:f,slide:function(a,c){b.active="strip","h"===e.strip&&(c.value=f-c.value),b._color[e.strip](c.value),b._change.apply(b,arguments)}}),c.squareDrag.draggable({containment:c.square.find(".iris-square-inner"),zIndex:1e3,cursor:"move",drag:function(a,c){b._squareDrag(a,c)},start:function(){d.addClass("iris-dragging"),a(this).addClass("ui-state-focus")},stop:function(){d.removeClass("iris-dragging"),a(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(c){var d="ui-state-focus";c.preventDefault(),"mousedown"===c.type?(b.picker.find("."+d).removeClass(d).blur(),a(this).addClass(d).focus()):a(this).removeClass(d)}).on("keydown",function(a){var d=c.square,e=c.squareDrag,f=e.position(),g=b.options.width/100;switch(a.altKey&&(g*=10),a.keyCode){case 37:f.left-=g;break;case 38:f.top-=g;break;case 39:f.left+=g;break;case 40:f.top+=g;break;default:return!0}f.left=Math.max(0,Math.min(f.left,d.width())),f.top=Math.max(0,Math.min(f.top,d.height())),e.css(f),b._squareDrag(a,{position:f}),a.preventDefault()}),d.mousedown(function(c){var d,e;1===c.which&&a(c.target).is("div")&&(d=b.controls.square.offset(),e={top:c.pageY-d.top,left:c.pageX-d.left},c.preventDefault(),b._squareDrag(c,{position:e}),c.target=b.controls.squareDrag.get(0),b.controls.squareDrag.css(e).trigger(c))}),b.options.palettes&&b._paletteListeners()},_paletteListeners:function(){var b=this;b.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){b._color.fromCSS(a(this).data("color")),b.active="external",b._change()}).on("keydown.palette",".iris-palette",function(b){return 13!==b.keyCode&&32!==b.keyCode?!0:(b.stopPropagation(),a(this).click(),void 0)})},_squareDrag:function(a,b){var c=this,d=c.options.controls,e=c._squareDimensions(),f=Math.round((e.h-b.position.top)/e.h*c._scale[d.vert]),g=c._scale[d.horiz]-Math.round((e.w-b.position.left)/e.w*c._scale[d.horiz]);c._color[d.horiz](g)[d.vert](f),c.active="square",c._change.apply(c,arguments)},_setOption:function(b,c){var d,e,f,g=this,h=g.options[b],i=!1;switch(g.options[b]=c,b){case"color":c=""+c,d=c.replace(/^#/,""),e=new Color(c).setHSpace(g.options.mode),e.error?g.options[b]=h:(g._color=e,g.options.color=g.options[b]=g._color.toString(),g.active="external",g._change());break;case"palettes":i=!0,c?g._addPalettes():g.picker.find(".iris-palette-container").remove(),h||g._paletteListeners();break;case"width":i=!0;break;case"border":i=!0,f=c?"addClass":"removeClass",g.picker[f]("iris-border");break;case"mode":case"controls":if(h===c)return;return f=g.element,h=g.options,h.hide=!g.picker.is(":visible"),g.destroy(),g.picker.remove(),a(g.element).iris(h)}i&&g._dimensions(!0)},_squareDimensions:function(a){var c,d,e=this.controls.square;return a!==b&&e.data("dimensions")?e.data("dimensions"):(d=this.controls.squareDrag,c={w:e.width(),h:e.height()},e.data("dimensions",c),c)},_isNonHueControl:function(a,b){return"square"===a&&"h"===this.options.controls.strip?!0:"external"===b||"h"===b&&"strip"===a?!1:!0},_change:function(){var b=this,c=b.controls,d=b._getHSpaceColor(),e=["square","strip"],f=b.options.controls,g=f[b.active]||"external",h=b.hue;"strip"===b.active?e=[]:"external"!==b.active&&e.pop(),a.each(e,function(a,e){var g,h,i;if(e!==b.active)switch(e){case"strip":g="h"===f.strip?b._scale[f.strip]-d[f.strip]:d[f.strip],c.stripSlider.slider("value",g);break;case"square":h=b._squareDimensions(),i={left:d[f.horiz]/b._scale[f.horiz]*h.w,top:h.h-d[f.vert]/b._scale[f.vert]*h.h},b.controls.squareDrag.css(i)}}),d.h!==h&&b._isNonHueControl(b.active,g)&&b._color.h(h),b.hue=b._color.h(),b.options.color=b._color.toString(),b._inited&&b._trigger("change",{type:b.active},{color:b._color}),b.element.is(":input")&&!b._color.error&&(b.element.removeClass("iris-error"),b.element.val()!==b._color.toString()&&b.element.val(b._color.toString())),b._paint(),b._inited=!0,b.active=!1},_debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},show:function(){this.picker.show()},hide:function(){this.picker.hide()},toggle:function(){this.picker.toggle()},color:function(a){return a===!0?this._color.clone():a===b?this._color.toString():(this.option("color",a),void 0)}},a.widget("a8c.iris",n),a('").appendTo("head"),void 0)}(jQuery); \ No newline at end of file +!function(i,r){var e,t,s,o,a,n,l,p,c;if(e='
',a='.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}',l=navigator.userAgent.toLowerCase(),p="Microsoft Internet Explorer"===navigator.appName,c=p?parseFloat(l.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,s=!1,o=["-moz-","-webkit-","-o-","-ms-"],(t=p&&c<10)&&c<=7)return i.fn.iris=i.noop,void(i.support.iris=!1);function d(r,e){return r="top"===r?"top":"left",e=i.isArray(e)?e:Array.prototype.slice.call(arguments,1),"webkit"===s?(a=e,n=[],t="top"===(t=r)?"0% 0%,0% 100%,":"0% 100%,100% 100%,",a=h(a),i.each(a,function(i,r){n.push("color-stop("+parseFloat(r.stop)/100+", "+r.color+")")}),"-webkit-gradient(linear,"+t+n.join(",")+")"):o[s]+"linear-gradient("+r+", "+e.join(", ")+")";var t,a,n}function h(r){var e=[],t=[],s=[],o=r.length-1;return i.each(r,function(i,r){var s=r,o=!1,a=r.match(/1?[0-9]{1,2}%$/);a&&(s=r.replace(/\s?1?[0-9]{1,2}%$/,""),o=a.shift()),e.push(s),t.push(o)}),!1===t[0]&&(t[0]="0%"),!1===t[o]&&(t[o]="100%"),t=function r(e){var t,s,o,a,n=0,l=e.length-1,p=0,c=!1;if(e.length<=2||i.inArray(!1,e)<0)return e;for(;p
',n="","static"===s.css("position")&&s.css({position:"relative"}),e=h(e),i.each(e,function(i,r){var s,l,p;if(i===o)return!1;s=e[i+1],r.stop!==s.stop&&(l=100-parseFloat(s.stop)+"%",r.octoHex=new Color(r.color).toIEOctoHex(),s.octoHex=new Color(s.color).toIEOctoHex(),p="progid:DXImageTransform.Microsoft.Gradient(GradientType="+t+", StartColorStr='"+r.octoHex+"', EndColorStr='"+s.octoHex+"')",n+=a.replace("%start%",r.stop).replace("%end%",l).replace("%filter%",p))}),s.find(".iris-ie-gradient-shim").remove(),i(n).prependTo(s)}.apply(this,r):i(this).css("backgroundImage",d.apply(this,r))})},i.fn.raninbowGradient=function(r,e){var t,s,o,a;for(r=r||"top",s="hsl(%h%,"+(t=i.extend({},{s:100,l:50},e)).s+"%,"+t.l+"%)",o=0,a=[];o<=360;)a.push(s.replace("%h%",o)),o+=30;return this.each(function(){i(this).gradient(r,a)})},n={options:{color:!1,mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},hide:!0,border:!0,target:!1,width:200,palettes:!1},_color:"",_palettes:["#000","#fff","#d33","#d93","#ee2","#81d742","#1e73be","#8224e3"],_inited:!1,_defaultHSLControls:{horiz:"s",vert:"l",strip:"h"},_defaultHSVControls:{horiz:"h",vert:"v",strip:"s"},_scale:{h:360,s:100,l:100,v:100},_create:function(){var r,a,n,d=this,h=d.element,u=d.options.color||h.val();!1===s&&(n="backgroundImage",t?s="filter":(r=i('
'),a="linear-gradient(top,#fff,#000)",i.each(o,function(i,e){if(r.css(n,e+a),r.css(n).match("gradient"))return s=i,!1}),!1===s&&(r.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),r.css(n).match("gradient")&&(s="webkit")),r.remove())),h.is("input")?(d.options.target?d.picker=i(e).appendTo(d.options.target):d.picker=i(e).insertAfter(h),d._addInputListeners(h)):(h.append(e),d.picker=h.find(".iris-picker")),p?9===c?d.picker.addClass("iris-ie-9"):c<=8&&d.picker.addClass("iris-ie-lt9"):l.indexOf("compatible")<0&&l.indexOf("khtml")<0&&l.match(/mozilla/)&&d.picker.addClass("iris-mozilla"),d.options.palettes&&d._addPalettes(),d._color=new Color(u).setHSpace(d.options.mode),d.options.color=d._color.toString(),d.controls={square:d.picker.find(".iris-square"),squareDrag:d.picker.find(".iris-square-value"),horiz:d.picker.find(".iris-square-horiz"),vert:d.picker.find(".iris-square-vert"),strip:d.picker.find(".iris-strip"),stripSlider:d.picker.find(".iris-strip .iris-slider-offset")},"hsv"===d.options.mode&&d._has("l",d.options.controls)?d.options.controls=d._defaultHSVControls:"hsl"===d.options.mode&&d._has("v",d.options.controls)&&(d.options.controls=d._defaultHSLControls),d.hue=d._color.h(),d.options.hide&&d.picker.hide(),d.options.border&&d.picker.addClass("iris-border"),d._initControls(),d.active="external",d._dimensions(),d._change()},_has:function(r,e){var t=!1;return i.each(e,function(i,e){if(r===e)return t=!0,!1}),t},_addPalettes:function(){var r=i('
'),e=i(''),t=i.isArray(this.options.palettes)?this.options.palettes:this._palettes;this.picker.find(".iris-palette-container").length&&(r=this.picker.find(".iris-palette-container").detach().html("")),i.each(t,function(i,t){e.clone().data("color",t).css("backgroundColor",t).appendTo(r).height(10).width(10)}),this.picker.append(r)},_paint:function(){this._paintDimension("top","strip"),this._paintDimension("top","vert"),this._paintDimension("left","horiz")},_paintDimension:function(i,r){var e,t=this,s=t._color,o=t.options.mode,a=t._getHSpaceColor(),n=t.controls[r],l=t.options.controls;if(r!==t.active&&("square"!==t.active||"strip"===r))switch(l[r]){case"h":if("hsv"===o){switch(a=s.clone(),r){case"horiz":a[l.vert](100);break;case"vert":a[l.horiz](100);break;case"strip":a.setHSpace("hsl")}e=a.toHsl()}else e="strip"===r?{s:a.s,l:a.l}:{s:100,l:a.l};n.raninbowGradient(i,e);break;case"s":"hsv"===o?"vert"===r?e=[s.clone().a(0).s(0).toCSS("rgba"),s.clone().a(1).s(0).toCSS("rgba")]:"strip"===r?e=[s.clone().s(100).toCSS("hsl"),s.clone().s(0).toCSS("hsl")]:"horiz"===r&&(e=["#fff","hsl("+a.h+",100%,50%)"]):e="vert"===r&&"h"===t.options.controls.horiz?["hsla(0, 0%, "+a.l+"%, 0)","hsla(0, 0%, "+a.l+"%, 1)"]:["hsl("+a.h+",0%,50%)","hsl("+a.h+",100%,50%)"],n.gradient(i,e);break;case"l":e="strip"===r?["hsl("+a.h+",100%,100%)","hsl("+a.h+", "+a.s+"%,50%)","hsl("+a.h+",100%,0%)"]:["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],n.gradient(i,e);break;case"v":e="strip"===r?[s.clone().v(100).toCSS(),s.clone().v(0).toCSS()]:["rgba(0,0,0,0)","#000"],n.gradient(i,e)}},_getHSpaceColor:function(){return"hsv"===this.options.mode?this._color.toHsv():this._color.toHsl()},_dimensions:function(r){var e,t,s,o=this,a=o.options,n=o.controls.square,l=o.picker.find(".iris-strip"),p="77.5%",c="12%",d=a.border?a.width-20:a.width,h=i.isArray(a.palettes)?a.palettes.length:o._palettes.length;if(r&&(n.css("width",""),l.css("width",""),o.picker.css({width:"",height:""})),p=d*(parseFloat(p)/100),c=d*(parseFloat(c)/100),e=a.border?p+20:p,n.width(p).height(p),l.height(p).width(c),o.picker.css({width:a.width,height:e}),!a.palettes)return o.picker.css("paddingBottom","");s=(p-(h-1)*(t=2*p/100))/h,o.picker.find(".iris-palette").each(function(r){var e=0===r?0:t;i(this).css({width:s,height:s,marginLeft:e})}),o.picker.css("paddingBottom",s+t),l.height(s+t+p)},_addInputListeners:function(i){var r=this,e=function(e){var t=new Color(i.val()),s=i.val().replace(/^#/,"");i.removeClass("iris-error"),t.error?""!==s&&i.addClass("iris-error"):t.toString()!==r._color.toString()&&("keyup"===e.type&&s.match(/^[0-9a-fA-F]{3}$/)||r._setOption("color",t.toString()))};i.on("change",e).on("keyup",r._debounce(e,100)),r.options.hide&&i.one("focus",function(){r.show()})},_initControls:function(){var r=this,e=r.controls,t=e.square,s=r.options.controls,o=r._scale[s.strip];e.stripSlider.slider({orientation:"vertical",max:o,slide:function(i,e){r.active="strip","h"===s.strip&&(e.value=o-e.value),r._color[s.strip](e.value),r._change.apply(r,arguments)}}),e.squareDrag.draggable({containment:e.square.find(".iris-square-inner"),zIndex:1e3,cursor:"move",drag:function(i,e){r._squareDrag(i,e)},start:function(){t.addClass("iris-dragging"),i(this).addClass("ui-state-focus")},stop:function(){t.removeClass("iris-dragging"),i(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(e){var t="ui-state-focus";e.preventDefault(),"mousedown"===e.type?(r.picker.find("."+t).removeClass(t).blur(),i(this).addClass(t).focus()):i(this).removeClass(t)}).on("keydown",function(i){var t=e.square,s=e.squareDrag,o=s.position(),a=r.options.width/100;switch(i.altKey&&(a*=10),i.keyCode){case 37:o.left-=a;break;case 38:o.top-=a;break;case 39:o.left+=a;break;case 40:o.top+=a;break;default:return!0}o.left=Math.max(0,Math.min(o.left,t.width())),o.top=Math.max(0,Math.min(o.top,t.height())),s.css(o),r._squareDrag(i,{position:o}),i.preventDefault()}),t.mousedown(function(e){var t,s;1===e.which&&i(e.target).is("div")&&(t=r.controls.square.offset(),s={top:e.pageY-t.top,left:e.pageX-t.left},e.preventDefault(),r._squareDrag(e,{position:s}),e.target=r.controls.squareDrag.get(0),r.controls.squareDrag.css(s).trigger(e))}),r.options.palettes&&r._paletteListeners()},_paletteListeners:function(){var r=this;r.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){r._color.fromCSS(i(this).data("color")),r.active="external",r._change()}).on("keydown.palette",".iris-palette",function(r){if(13!==r.keyCode&&32!==r.keyCode)return!0;r.stopPropagation(),i(this).click()})},_squareDrag:function(i,r){var e=this,t=e.options.controls,s=e._squareDimensions(),o=Math.round((s.h-r.position.top)/s.h*e._scale[t.vert]),a=e._scale[t.horiz]-Math.round((s.w-r.position.left)/s.w*e._scale[t.horiz]);e._color[t.horiz](a)[t.vert](o),e.active="square",e._change.apply(e,arguments)},_setOption:function(r,e){var t,s,o=this,a=o.options[r],n=!1;switch(o.options[r]=e,r){case"color":(e=""+e).replace(/^#/,""),(t=new Color(e).setHSpace(o.options.mode)).error?o.options[r]=a:(o._color=t,o.options.color=o.options[r]=o._color.toString(),o.active="external",o._change());break;case"palettes":n=!0,e?o._addPalettes():o.picker.find(".iris-palette-container").remove(),a||o._paletteListeners();break;case"width":n=!0;break;case"border":n=!0,s=e?"addClass":"removeClass",o.picker[s]("iris-border");break;case"mode":case"controls":if(a===e)return;return s=o.element,(a=o.options).hide=!o.picker.is(":visible"),o.destroy(),o.picker.remove(),i(o.element).iris(a)}n&&o._dimensions(!0)},_squareDimensions:function(i){var e,t,s=this.controls.square;return i!==r&&s.data("dimensions")?s.data("dimensions"):(t=this.controls.squareDrag,e={w:s.width()-t.width(),h:s.height()-t.height()},s.data("dimensions",e),e)},_isNonHueControl:function(i,r){return"square"===i&&"h"===this.options.controls.strip||"external"!==r&&("h"!==r||"strip"!==i)},_change:function(){var r=this,e=r.controls,t=r._getHSpaceColor(),s=["square","strip"],o=r.options.controls,a=o[r.active]||"external",n=r.hue;"strip"===r.active?s=[]:"external"!==r.active&&s.pop(),i.each(s,function(i,s){var a,n,l;if(s!==r.active)switch(s){case"strip":a="h"===o.strip?r._scale[o.strip]-t[o.strip]:t[o.strip],e.stripSlider.slider("value",a);break;case"square":n=r._squareDimensions(),l={left:t[o.horiz]/r._scale[o.horiz]*n.w,top:n.h-t[o.vert]/r._scale[o.vert]*n.h},r.controls.squareDrag.css(l)}}),t.h!==n&&r._isNonHueControl(r.active,a)&&r._color.h(n),r.hue=r._color.h(),r.options.color=r._color.toString(),r._inited&&r._trigger("change",{type:r.active},{color:r._color}),r.element.is(":input")&&!r._color.error&&(r.element.removeClass("iris-error"),r.element.val()!==r._color.toString()&&r.element.val(r._color.toString())),r._paint(),r._inited=!0,r.active=!1},_debounce:function(i,r,e){var t,s;return function(){var o,a,n=this,l=arguments;return o=function(){t=null,e||(s=i.apply(n,l))},a=e&&!t,clearTimeout(t),t=setTimeout(o,r),a&&(s=i.apply(n,l)),s}},show:function(){this.picker.show()},hide:function(){this.picker.hide()},toggle:function(){this.picker.toggle()},color:function(i){return!0===i?this._color.clone():i===r?this._color.toString():void this.option("color",i)}},i.widget("a8c.iris",n),i('").appendTo("head")}(jQuery); \ No newline at end of file diff --git a/dist/iris.js b/dist/iris.js index 4eda502..891c5de 100644 --- a/dist/iris.js +++ b/dist/iris.js @@ -1,6 +1,6 @@ -/*! Iris Color Picker - v1.0.7 - 2014-11-28 +/*! Iris Color Picker - v1.0.7 - 2018-03-24 * https://github.com/Automattic/Iris -* Copyright (c) 2014 Matt Wiebe; Licensed GPLv2 */ +* Copyright (c) 2018 Matt Wiebe; Licensed GPLv2 */ (function( $, undef ){ var _html, nonGradientIE, gradientType, vendorPrefixes, _css, Iris, UA, isIE, IEVersion; @@ -763,8 +763,8 @@ control = this.controls.squareDrag; dimensions = { - w: square.width(), - h: square.height() + w: square.width() - control.width(), + h: square.height() - control.height() }; square.data( 'dimensions', dimensions ); return dimensions; diff --git a/dist/iris.min.js b/dist/iris.min.js index efe593a..d057280 100644 --- a/dist/iris.min.js +++ b/dist/iris.min.js @@ -1,4 +1 @@ -/*! Iris Color Picker - v1.0.7 - 2014-11-28 -* https://github.com/Automattic/Iris -* Copyright (c) 2014 Matt Wiebe; Licensed GPLv2 */ -!function(a,b){function c(){var b,c,d="backgroundImage";j?k="filter":(b=a('
'),c="linear-gradient(top,#fff,#000)",a.each(l,function(a,e){return b.css(d,e+c),b.css(d).match("gradient")?(k=a,!1):void 0}),k===!1&&(b.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),b.css(d).match("gradient")&&(k="webkit")),b.remove())}function d(b,c){return b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),"webkit"===k?f(b,c):l[k]+"linear-gradient("+b+", "+c.join(", ")+")"}function e(b,c){var d,e,f,h,i,j,k,l,m;b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),d="top"===b?0:1,e=a(this),f=c.length-1,h="filter",i=1===d?"left":"top",j=1===d?"right":"bottom",k=1===d?"height":"width",l='
',m="","static"===e.css("position")&&e.css({position:"relative"}),c=g(c),a.each(c,function(a,b){var e,g,h;return a===f?!1:(e=c[a+1],b.stop!==e.stop&&(g=100-parseFloat(e.stop)+"%",b.octoHex=new Color(b.color).toIEOctoHex(),e.octoHex=new Color(e.color).toIEOctoHex(),h="progid:DXImageTransform.Microsoft.Gradient(GradientType="+d+", StartColorStr='"+b.octoHex+"', EndColorStr='"+e.octoHex+"')",m+=l.replace("%start%",b.stop).replace("%end%",g).replace("%filter%",h)),void 0)}),e.find(".iris-ie-gradient-shim").remove(),a(m).prependTo(e)}function f(b,c){var d=[];return b="top"===b?"0% 0%,0% 100%,":"0% 100%,100% 100%,",c=g(c),a.each(c,function(a,b){d.push("color-stop("+parseFloat(b.stop)/100+", "+b.color+")")}),"-webkit-gradient(linear,"+b+d.join(",")+")"}function g(b){var c=[],d=[],e=[],f=b.length-1;return a.each(b,function(a,b){var e=b,f=!1,g=b.match(/1?[0-9]{1,2}%$/);g&&(e=b.replace(/\s?1?[0-9]{1,2}%$/,""),f=g.shift()),c.push(e),d.push(f)}),d[0]===!1&&(d[0]="0%"),d[f]===!1&&(d[f]="100%"),d=h(d),a.each(d,function(a){e[a]={color:c[a],stop:d[a]}}),e}function h(b){var c,d,e,f,g=0,i=b.length-1,j=0,k=!1;if(b.length<=2||a.inArray(!1,b)<0)return b;for(;jj;)b[j]=f+e*c+"%",e++,j++;return h(b)}var i,j,k,l,m,n,o,p,q;return i='
',m='.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}',o=navigator.userAgent.toLowerCase(),p="Microsoft Internet Explorer"===navigator.appName,q=p?parseFloat(o.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,j=p&&10>q,k=!1,l=["-moz-","-webkit-","-o-","-ms-"],j&&7>=q?(a.fn.iris=a.noop,a.support.iris=!1,void 0):(a.support.iris=!0,a.fn.gradient=function(){var b=arguments;return this.each(function(){j?e.apply(this,b):a(this).css("backgroundImage",d.apply(this,b))})},a.fn.raninbowGradient=function(b,c){var d,e,f,g;for(b=b||"top",d=a.extend({},{s:100,l:50},c),e="hsl(%h%,"+d.s+"%,"+d.l+"%)",f=0,g=[];360>=f;)g.push(e.replace("%h%",f)),f+=30;return this.each(function(){a(this).gradient(b,g)})},n={options:{color:!1,mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},hide:!0,border:!0,target:!1,width:200,palettes:!1},_color:"",_palettes:["#000","#fff","#d33","#d93","#ee2","#81d742","#1e73be","#8224e3"],_inited:!1,_defaultHSLControls:{horiz:"s",vert:"l",strip:"h"},_defaultHSVControls:{horiz:"h",vert:"v",strip:"s"},_scale:{h:360,s:100,l:100,v:100},_create:function(){var b=this,d=b.element,e=b.options.color||d.val();k===!1&&c(),d.is("input")?(b.picker=b.options.target?a(i).appendTo(b.options.target):a(i).insertAfter(d),b._addInputListeners(d)):(d.append(i),b.picker=d.find(".iris-picker")),p?9===q?b.picker.addClass("iris-ie-9"):8>=q&&b.picker.addClass("iris-ie-lt9"):o.indexOf("compatible")<0&&o.indexOf("khtml")<0&&o.match(/mozilla/)&&b.picker.addClass("iris-mozilla"),b.options.palettes&&b._addPalettes(),b._color=new Color(e).setHSpace(b.options.mode),b.options.color=b._color.toString(),b.controls={square:b.picker.find(".iris-square"),squareDrag:b.picker.find(".iris-square-value"),horiz:b.picker.find(".iris-square-horiz"),vert:b.picker.find(".iris-square-vert"),strip:b.picker.find(".iris-strip"),stripSlider:b.picker.find(".iris-strip .iris-slider-offset")},"hsv"===b.options.mode&&b._has("l",b.options.controls)?b.options.controls=b._defaultHSVControls:"hsl"===b.options.mode&&b._has("v",b.options.controls)&&(b.options.controls=b._defaultHSLControls),b.hue=b._color.h(),b.options.hide&&b.picker.hide(),b.options.border&&b.picker.addClass("iris-border"),b._initControls(),b.active="external",b._dimensions(),b._change()},_has:function(b,c){var d=!1;return a.each(c,function(a,c){return b===c?(d=!0,!1):void 0}),d},_addPalettes:function(){var b=a('
'),c=a(''),d=a.isArray(this.options.palettes)?this.options.palettes:this._palettes;this.picker.find(".iris-palette-container").length&&(b=this.picker.find(".iris-palette-container").detach().html("")),a.each(d,function(a,d){c.clone().data("color",d).css("backgroundColor",d).appendTo(b).height(10).width(10)}),this.picker.append(b)},_paint:function(){var a=this;a._paintDimension("top","strip"),a._paintDimension("top","vert"),a._paintDimension("left","horiz")},_paintDimension:function(a,b){var c,d=this,e=d._color,f=d.options.mode,g=d._getHSpaceColor(),h=d.controls[b],i=d.options.controls;if(b!==d.active&&("square"!==d.active||"strip"===b))switch(i[b]){case"h":if("hsv"===f){switch(g=e.clone(),b){case"horiz":g[i.vert](100);break;case"vert":g[i.horiz](100);break;case"strip":g.setHSpace("hsl")}c=g.toHsl()}else c="strip"===b?{s:g.s,l:g.l}:{s:100,l:g.l};h.raninbowGradient(a,c);break;case"s":"hsv"===f?"vert"===b?c=[e.clone().a(0).s(0).toCSS("rgba"),e.clone().a(1).s(0).toCSS("rgba")]:"strip"===b?c=[e.clone().s(100).toCSS("hsl"),e.clone().s(0).toCSS("hsl")]:"horiz"===b&&(c=["#fff","hsl("+g.h+",100%,50%)"]):c="vert"===b&&"h"===d.options.controls.horiz?["hsla(0, 0%, "+g.l+"%, 0)","hsla(0, 0%, "+g.l+"%, 1)"]:["hsl("+g.h+",0%,50%)","hsl("+g.h+",100%,50%)"],h.gradient(a,c);break;case"l":c="strip"===b?["hsl("+g.h+",100%,100%)","hsl("+g.h+", "+g.s+"%,50%)","hsl("+g.h+",100%,0%)"]:["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],h.gradient(a,c);break;case"v":c="strip"===b?[e.clone().v(100).toCSS(),e.clone().v(0).toCSS()]:["rgba(0,0,0,0)","#000"],h.gradient(a,c)}},_getHSpaceColor:function(){return"hsv"===this.options.mode?this._color.toHsv():this._color.toHsl()},_dimensions:function(b){var c,d,e,f,g=this,h=g.options,i=g.controls,j=i.square,k=g.picker.find(".iris-strip"),l="77.5%",m="12%",n=20,o=h.border?h.width-n:h.width,p=a.isArray(h.palettes)?h.palettes.length:g._palettes.length;return b&&(j.css("width",""),k.css("width",""),g.picker.css({width:"",height:""})),l=o*(parseFloat(l)/100),m=o*(parseFloat(m)/100),c=h.border?l+n:l,j.width(l).height(l),k.height(l).width(m),g.picker.css({width:h.width,height:c}),h.palettes?(d=2*l/100,f=l-(p-1)*d,e=f/p,g.picker.find(".iris-palette").each(function(b){var c=0===b?0:d;a(this).css({width:e,height:e,marginLeft:c})}),g.picker.css("paddingBottom",e+d),k.height(e+d+l),void 0):g.picker.css("paddingBottom","")},_addInputListeners:function(a){var b=this,c=100,d=function(c){var d=new Color(a.val()),e=a.val().replace(/^#/,"");a.removeClass("iris-error"),d.error?""!==e&&a.addClass("iris-error"):d.toString()!==b._color.toString()&&("keyup"===c.type&&e.match(/^[0-9a-fA-F]{3}$/)||b._setOption("color",d.toString()))};a.on("change",d).on("keyup",b._debounce(d,c)),b.options.hide&&a.one("focus",function(){b.show()})},_initControls:function(){var b=this,c=b.controls,d=c.square,e=b.options.controls,f=b._scale[e.strip];c.stripSlider.slider({orientation:"vertical",max:f,slide:function(a,c){b.active="strip","h"===e.strip&&(c.value=f-c.value),b._color[e.strip](c.value),b._change.apply(b,arguments)}}),c.squareDrag.draggable({containment:c.square.find(".iris-square-inner"),zIndex:1e3,cursor:"move",drag:function(a,c){b._squareDrag(a,c)},start:function(){d.addClass("iris-dragging"),a(this).addClass("ui-state-focus")},stop:function(){d.removeClass("iris-dragging"),a(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(c){var d="ui-state-focus";c.preventDefault(),"mousedown"===c.type?(b.picker.find("."+d).removeClass(d).blur(),a(this).addClass(d).focus()):a(this).removeClass(d)}).on("keydown",function(a){var d=c.square,e=c.squareDrag,f=e.position(),g=b.options.width/100;switch(a.altKey&&(g*=10),a.keyCode){case 37:f.left-=g;break;case 38:f.top-=g;break;case 39:f.left+=g;break;case 40:f.top+=g;break;default:return!0}f.left=Math.max(0,Math.min(f.left,d.width())),f.top=Math.max(0,Math.min(f.top,d.height())),e.css(f),b._squareDrag(a,{position:f}),a.preventDefault()}),d.mousedown(function(c){var d,e;1===c.which&&a(c.target).is("div")&&(d=b.controls.square.offset(),e={top:c.pageY-d.top,left:c.pageX-d.left},c.preventDefault(),b._squareDrag(c,{position:e}),c.target=b.controls.squareDrag.get(0),b.controls.squareDrag.css(e).trigger(c))}),b.options.palettes&&b._paletteListeners()},_paletteListeners:function(){var b=this;b.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){b._color.fromCSS(a(this).data("color")),b.active="external",b._change()}).on("keydown.palette",".iris-palette",function(b){return 13!==b.keyCode&&32!==b.keyCode?!0:(b.stopPropagation(),a(this).click(),void 0)})},_squareDrag:function(a,b){var c=this,d=c.options.controls,e=c._squareDimensions(),f=Math.round((e.h-b.position.top)/e.h*c._scale[d.vert]),g=c._scale[d.horiz]-Math.round((e.w-b.position.left)/e.w*c._scale[d.horiz]);c._color[d.horiz](g)[d.vert](f),c.active="square",c._change.apply(c,arguments)},_setOption:function(b,c){var d,e,f,g=this,h=g.options[b],i=!1;switch(g.options[b]=c,b){case"color":c=""+c,d=c.replace(/^#/,""),e=new Color(c).setHSpace(g.options.mode),e.error?g.options[b]=h:(g._color=e,g.options.color=g.options[b]=g._color.toString(),g.active="external",g._change());break;case"palettes":i=!0,c?g._addPalettes():g.picker.find(".iris-palette-container").remove(),h||g._paletteListeners();break;case"width":i=!0;break;case"border":i=!0,f=c?"addClass":"removeClass",g.picker[f]("iris-border");break;case"mode":case"controls":if(h===c)return;return f=g.element,h=g.options,h.hide=!g.picker.is(":visible"),g.destroy(),g.picker.remove(),a(g.element).iris(h)}i&&g._dimensions(!0)},_squareDimensions:function(a){var c,d,e=this.controls.square;return a!==b&&e.data("dimensions")?e.data("dimensions"):(d=this.controls.squareDrag,c={w:e.width(),h:e.height()},e.data("dimensions",c),c)},_isNonHueControl:function(a,b){return"square"===a&&"h"===this.options.controls.strip?!0:"external"===b||"h"===b&&"strip"===a?!1:!0},_change:function(){var b=this,c=b.controls,d=b._getHSpaceColor(),e=["square","strip"],f=b.options.controls,g=f[b.active]||"external",h=b.hue;"strip"===b.active?e=[]:"external"!==b.active&&e.pop(),a.each(e,function(a,e){var g,h,i;if(e!==b.active)switch(e){case"strip":g="h"===f.strip?b._scale[f.strip]-d[f.strip]:d[f.strip],c.stripSlider.slider("value",g);break;case"square":h=b._squareDimensions(),i={left:d[f.horiz]/b._scale[f.horiz]*h.w,top:h.h-d[f.vert]/b._scale[f.vert]*h.h},b.controls.squareDrag.css(i)}}),d.h!==h&&b._isNonHueControl(b.active,g)&&b._color.h(h),b.hue=b._color.h(),b.options.color=b._color.toString(),b._inited&&b._trigger("change",{type:b.active},{color:b._color}),b.element.is(":input")&&!b._color.error&&(b.element.removeClass("iris-error"),b.element.val()!==b._color.toString()&&b.element.val(b._color.toString())),b._paint(),b._inited=!0,b.active=!1},_debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},show:function(){this.picker.show()},hide:function(){this.picker.hide()},toggle:function(){this.picker.toggle()},color:function(a){return a===!0?this._color.clone():a===b?this._color.toString():(this.option("color",a),void 0)}},a.widget("a8c.iris",n),a('").appendTo("head"),void 0)}(jQuery),function(a,b){var c=function(a,b){return this instanceof c?this._init(a,b):new c(a,b)};c.fn=c.prototype={_color:0,_alpha:1,error:!1,_hsl:{h:0,s:0,l:0},_hsv:{h:0,s:0,v:0},_hSpace:"hsl",_init:function(a){var c="noop";switch(typeof a){case"object":return a.a!==b&&this.a(a.a),c=a.r!==b?"fromRgb":a.l!==b?"fromHsl":a.v!==b?"fromHsv":c,this[c](a);case"string":return this.fromCSS(a);case"number":return this.fromInt(parseInt(a,10))}return this},_error:function(){return this.error=!0,this},clone:function(){for(var a=new c(this.toInt()),b=["_alpha","_hSpace","_hsl","_hsv","error"],d=b.length-1;d>=0;d--)a[b[d]]=this[b[d]];return a},setHSpace:function(a){return this._hSpace="hsv"===a?a:"hsl",this},noop:function(){return this},fromCSS:function(a){var b,c=/^(rgb|hs(l|v))a?\(/;if(this.error=!1,a=a.replace(/^\s+/,"").replace(/\s+$/,"").replace(/;$/,""),a.match(c)&&a.match(/\)$/)){if(b=a.replace(/(\s|%)/g,"").replace(c,"").replace(/,?\);?$/,"").split(","),b.length<3)return this._error();if(4===b.length&&(this.a(parseFloat(b.pop())),this.error))return this;for(var d=b.length-1;d>=0;d--)if(b[d]=parseInt(b[d],10),isNaN(b[d]))return this._error();return a.match(/^rgb/)?this.fromRgb({r:b[0],g:b[1],b:b[2]}):a.match(/^hsv/)?this.fromHsv({h:b[0],s:b[1],v:b[2]}):this.fromHsl({h:b[0],s:b[1],l:b[2]})}return this.fromHex(a)},fromRgb:function(a,c){return"object"!=typeof a||a.r===b||a.g===b||a.b===b?this._error():(this.error=!1,this.fromInt(parseInt((a.r<<16)+(a.g<<8)+a.b,10),c))},fromHex:function(a){return a=a.replace(/^#/,"").replace(/^0x/,""),3===a.length&&(a=a[0]+a[0]+a[1]+a[1]+a[2]+a[2]),this.error=!/^[0-9A-F]{6}$/i.test(a),this.fromInt(parseInt(a,16))},fromHsl:function(a){var c,d,e,f,g,h,i,j;return"object"!=typeof a||a.h===b||a.s===b||a.l===b?this._error():(this._hsl=a,this._hSpace="hsl",h=a.h/360,i=a.s/100,j=a.l/100,0===i?c=d=e=j:(f=.5>j?j*(1+i):j+i-j*i,g=2*j-f,c=this.hue2rgb(g,f,h+1/3),d=this.hue2rgb(g,f,h),e=this.hue2rgb(g,f,h-1/3)),this.fromRgb({r:255*c,g:255*d,b:255*e},!0))},fromHsv:function(a){var c,d,e,f,g,h,i,j,k,l,m;if("object"!=typeof a||a.h===b||a.s===b||a.v===b)return this._error();switch(this._hsv=a,this._hSpace="hsv",c=a.h/360,d=a.s/100,e=a.v/100,i=Math.floor(6*c),j=6*c-i,k=e*(1-d),l=e*(1-j*d),m=e*(1-(1-j)*d),i%6){case 0:f=e,g=m,h=k;break;case 1:f=l,g=e,h=k;break;case 2:f=k,g=e,h=m;break;case 3:f=k,g=l,h=e;break;case 4:f=m,g=k,h=e;break;case 5:f=e,g=k,h=l}return this.fromRgb({r:255*f,g:255*g,b:255*h},!0)},fromInt:function(a,c){return this._color=parseInt(a,10),isNaN(this._color)&&(this._color=0),this._color>16777215?this._color=16777215:this._color<0&&(this._color=0),c===b&&(this._hsv.h=this._hsv.s=this._hsl.h=this._hsl.s=0),this},hue2rgb:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+6*(b-a)*(2/3-c):a},toString:function(){var a=parseInt(this._color,10).toString(16);if(this.error)return"";if(a.length<6)for(var b=6-a.length-1;b>=0;b--)a="0"+a;return"#"+a},toCSS:function(a,b){switch(a=a||"hex",b=parseFloat(b||this._alpha),a){case"rgb":case"rgba":var c=this.toRgb();return 1>b?"rgba( "+c.r+", "+c.g+", "+c.b+", "+b+" )":"rgb( "+c.r+", "+c.g+", "+c.b+" )";case"hsl":case"hsla":var d=this.toHsl();return 1>b?"hsla( "+d.h+", "+d.s+"%, "+d.l+"%, "+b+" )":"hsl( "+d.h+", "+d.s+"%, "+d.l+"% )";default:return this.toString()}},toRgb:function(){return{r:255&this._color>>16,g:255&this._color>>8,b:255&this._color}},toHsl:function(){var a,b,c=this.toRgb(),d=c.r/255,e=c.g/255,f=c.b/255,g=Math.max(d,e,f),h=Math.min(d,e,f),i=(g+h)/2;if(g===h)a=b=0;else{var j=g-h;switch(b=i>.5?j/(2-g-h):j/(g+h),g){case d:a=(e-f)/j+(f>e?6:0);break;case e:a=(f-d)/j+2;break;case f:a=(d-e)/j+4}a/=6}return a=Math.round(360*a),0===a&&this._hsl.h!==a&&(a=this._hsl.h),b=Math.round(100*b),0===b&&this._hsl.s&&(b=this._hsl.s),{h:a,s:b,l:Math.round(100*i)}},toHsv:function(){var a,b,c=this.toRgb(),d=c.r/255,e=c.g/255,f=c.b/255,g=Math.max(d,e,f),h=Math.min(d,e,f),i=g,j=g-h;if(b=0===g?0:j/g,g===h)a=b=0;else{switch(g){case d:a=(e-f)/j+(f>e?6:0);break;case e:a=(f-d)/j+2;break;case f:a=(d-e)/j+4}a/=6}return a=Math.round(360*a),0===a&&this._hsv.h!==a&&(a=this._hsv.h),b=Math.round(100*b),0===b&&this._hsv.s&&(b=this._hsv.s),{h:a,s:b,v:Math.round(100*i)}},toInt:function(){return this._color},toIEOctoHex:function(){var a=this.toString(),b=parseInt(255*this._alpha,10).toString(16);return 1===b.length&&(b="0"+b),"#"+b+a.replace(/^#/,"")},toLuminosity:function(){var a=this.toRgb();return.2126*Math.pow(a.r/255,2.2)+.7152*Math.pow(a.g/255,2.2)+.0722*Math.pow(a.b/255,2.2)},getDistanceLuminosityFrom:function(a){if(!(a instanceof c))throw"getDistanceLuminosityFrom requires a Color object";var b=this.toLuminosity(),d=a.toLuminosity();return b>d?(b+.05)/(d+.05):(d+.05)/(b+.05)},getMaxContrastColor:function(){var a=this.toLuminosity(),b=a>=.5?"000000":"ffffff";return new c(b)},getReadableContrastingColor:function(a,d){if(!a instanceof c)return this;var e=d===b?5:d,f=a.getDistanceLuminosityFrom(this),g=a.getMaxContrastColor(),h=g.getDistanceLuminosityFrom(a);if(e>=h)return g;if(f>=e)return this;for(var i=0===g.toInt()?-1:1;e>f&&(this.l(i,!0),f=this.getDistanceLuminosityFrom(a),0!==this._color&&16777215!==this._color););return this},a:function(a){if(a===b)return this._alpha;var c=parseFloat(a);return isNaN(c)?this._error():(this._alpha=c,this)},darken:function(a){return a=a||5,this.l(-a,!0)},lighten:function(a){return a=a||5,this.l(a,!0)},saturate:function(a){return a=a||15,this.s(a,!0)},desaturate:function(a){return a=a||15,this.s(-a,!0)},toGrayscale:function(){return this.setHSpace("hsl").s(0)},getComplement:function(){return this.h(180,!0)},getSplitComplement:function(a){a=a||1;var b=180+30*a;return this.h(b,!0)},getAnalog:function(a){a=a||1;var b=30*a;return this.h(b,!0)},getTetrad:function(a){a=a||1;var b=60*a;return this.h(b,!0)},getTriad:function(a){a=a||1;var b=120*a;return this.h(b,!0)},_partial:function(a){var c=d[a];return function(d,e){var f=this._spaceFunc("to",c.space);return d===b?f[a]:(e===!0&&(d=f[a]+d),c.mod&&(d%=c.mod),c.range&&(d=dc.range[1]?c.range[1]:d),f[a]=d,this._spaceFunc("from",c.space,f))}},_spaceFunc:function(a,b,c){var d=b||this._hSpace,e=a+d.charAt(0).toUpperCase()+d.substr(1);return this[e](c)}};var d={h:{mod:360},s:{range:[0,100]},l:{space:"hsl",range:[0,100]},v:{space:"hsv",range:[0,100]},r:{space:"rgb",range:[0,255]},g:{space:"rgb",range:[0,255]},b:{space:"rgb",range:[0,255]}};for(var e in d)d.hasOwnProperty(e)&&(c.fn[e]=c.fn._partial(e));"object"==typeof exports?module.exports=c:a.Color=c}(this); \ No newline at end of file +!function(r,i){var t,e,s,o,a,n,c,l,h;if(t='
',a='.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}',c=navigator.userAgent.toLowerCase(),l="Microsoft Internet Explorer"===navigator.appName,h=l?parseFloat(c.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,s=!1,o=["-moz-","-webkit-","-o-","-ms-"],(e=l&&h<10)&&h<=7)return r.fn.iris=r.noop,void(r.support.iris=!1);function p(i,t){return i="top"===i?"top":"left",t=r.isArray(t)?t:Array.prototype.slice.call(arguments,1),"webkit"===s?(a=t,n=[],e="top"===(e=i)?"0% 0%,0% 100%,":"0% 100%,100% 100%,",a=u(a),r.each(a,function(r,i){n.push("color-stop("+parseFloat(i.stop)/100+", "+i.color+")")}),"-webkit-gradient(linear,"+e+n.join(",")+")"):o[s]+"linear-gradient("+i+", "+t.join(", ")+")";var e,a,n}function u(i){var t=[],e=[],s=[],o=i.length-1;return r.each(i,function(r,i){var s=i,o=!1,a=i.match(/1?[0-9]{1,2}%$/);a&&(s=i.replace(/\s?1?[0-9]{1,2}%$/,""),o=a.shift()),t.push(s),e.push(o)}),!1===e[0]&&(e[0]="0%"),!1===e[o]&&(e[o]="100%"),e=function i(t){var e,s,o,a,n=0,c=t.length-1,l=0,h=!1;if(t.length<=2||r.inArray(!1,t)<0)return t;for(;l
',n="","static"===s.css("position")&&s.css({position:"relative"}),t=u(t),r.each(t,function(r,i){var s,c,l;if(r===o)return!1;s=t[r+1],i.stop!==s.stop&&(c=100-parseFloat(s.stop)+"%",i.octoHex=new Color(i.color).toIEOctoHex(),s.octoHex=new Color(s.color).toIEOctoHex(),l="progid:DXImageTransform.Microsoft.Gradient(GradientType="+e+", StartColorStr='"+i.octoHex+"', EndColorStr='"+s.octoHex+"')",n+=a.replace("%start%",i.stop).replace("%end%",c).replace("%filter%",l))}),s.find(".iris-ie-gradient-shim").remove(),r(n).prependTo(s)}.apply(this,i):r(this).css("backgroundImage",p.apply(this,i))})},r.fn.raninbowGradient=function(i,t){var e,s,o,a;for(i=i||"top",s="hsl(%h%,"+(e=r.extend({},{s:100,l:50},t)).s+"%,"+e.l+"%)",o=0,a=[];o<=360;)a.push(s.replace("%h%",o)),o+=30;return this.each(function(){r(this).gradient(i,a)})},n={options:{color:!1,mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},hide:!0,border:!0,target:!1,width:200,palettes:!1},_color:"",_palettes:["#000","#fff","#d33","#d93","#ee2","#81d742","#1e73be","#8224e3"],_inited:!1,_defaultHSLControls:{horiz:"s",vert:"l",strip:"h"},_defaultHSVControls:{horiz:"h",vert:"v",strip:"s"},_scale:{h:360,s:100,l:100,v:100},_create:function(){var i,a,n,p=this,u=p.element,d=p.options.color||u.val();!1===s&&(n="backgroundImage",e?s="filter":(i=r('
'),a="linear-gradient(top,#fff,#000)",r.each(o,function(r,t){if(i.css(n,t+a),i.css(n).match("gradient"))return s=r,!1}),!1===s&&(i.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),i.css(n).match("gradient")&&(s="webkit")),i.remove())),u.is("input")?(p.options.target?p.picker=r(t).appendTo(p.options.target):p.picker=r(t).insertAfter(u),p._addInputListeners(u)):(u.append(t),p.picker=u.find(".iris-picker")),l?9===h?p.picker.addClass("iris-ie-9"):h<=8&&p.picker.addClass("iris-ie-lt9"):c.indexOf("compatible")<0&&c.indexOf("khtml")<0&&c.match(/mozilla/)&&p.picker.addClass("iris-mozilla"),p.options.palettes&&p._addPalettes(),p._color=new Color(d).setHSpace(p.options.mode),p.options.color=p._color.toString(),p.controls={square:p.picker.find(".iris-square"),squareDrag:p.picker.find(".iris-square-value"),horiz:p.picker.find(".iris-square-horiz"),vert:p.picker.find(".iris-square-vert"),strip:p.picker.find(".iris-strip"),stripSlider:p.picker.find(".iris-strip .iris-slider-offset")},"hsv"===p.options.mode&&p._has("l",p.options.controls)?p.options.controls=p._defaultHSVControls:"hsl"===p.options.mode&&p._has("v",p.options.controls)&&(p.options.controls=p._defaultHSLControls),p.hue=p._color.h(),p.options.hide&&p.picker.hide(),p.options.border&&p.picker.addClass("iris-border"),p._initControls(),p.active="external",p._dimensions(),p._change()},_has:function(i,t){var e=!1;return r.each(t,function(r,t){if(i===t)return e=!0,!1}),e},_addPalettes:function(){var i=r('
'),t=r(''),e=r.isArray(this.options.palettes)?this.options.palettes:this._palettes;this.picker.find(".iris-palette-container").length&&(i=this.picker.find(".iris-palette-container").detach().html("")),r.each(e,function(r,e){t.clone().data("color",e).css("backgroundColor",e).appendTo(i).height(10).width(10)}),this.picker.append(i)},_paint:function(){this._paintDimension("top","strip"),this._paintDimension("top","vert"),this._paintDimension("left","horiz")},_paintDimension:function(r,i){var t,e=this,s=e._color,o=e.options.mode,a=e._getHSpaceColor(),n=e.controls[i],c=e.options.controls;if(i!==e.active&&("square"!==e.active||"strip"===i))switch(c[i]){case"h":if("hsv"===o){switch(a=s.clone(),i){case"horiz":a[c.vert](100);break;case"vert":a[c.horiz](100);break;case"strip":a.setHSpace("hsl")}t=a.toHsl()}else t="strip"===i?{s:a.s,l:a.l}:{s:100,l:a.l};n.raninbowGradient(r,t);break;case"s":"hsv"===o?"vert"===i?t=[s.clone().a(0).s(0).toCSS("rgba"),s.clone().a(1).s(0).toCSS("rgba")]:"strip"===i?t=[s.clone().s(100).toCSS("hsl"),s.clone().s(0).toCSS("hsl")]:"horiz"===i&&(t=["#fff","hsl("+a.h+",100%,50%)"]):t="vert"===i&&"h"===e.options.controls.horiz?["hsla(0, 0%, "+a.l+"%, 0)","hsla(0, 0%, "+a.l+"%, 1)"]:["hsl("+a.h+",0%,50%)","hsl("+a.h+",100%,50%)"],n.gradient(r,t);break;case"l":t="strip"===i?["hsl("+a.h+",100%,100%)","hsl("+a.h+", "+a.s+"%,50%)","hsl("+a.h+",100%,0%)"]:["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],n.gradient(r,t);break;case"v":t="strip"===i?[s.clone().v(100).toCSS(),s.clone().v(0).toCSS()]:["rgba(0,0,0,0)","#000"],n.gradient(r,t)}},_getHSpaceColor:function(){return"hsv"===this.options.mode?this._color.toHsv():this._color.toHsl()},_dimensions:function(i){var t,e,s,o=this,a=o.options,n=o.controls.square,c=o.picker.find(".iris-strip"),l="77.5%",h="12%",p=a.border?a.width-20:a.width,u=r.isArray(a.palettes)?a.palettes.length:o._palettes.length;if(i&&(n.css("width",""),c.css("width",""),o.picker.css({width:"",height:""})),l=p*(parseFloat(l)/100),h=p*(parseFloat(h)/100),t=a.border?l+20:l,n.width(l).height(l),c.height(l).width(h),o.picker.css({width:a.width,height:t}),!a.palettes)return o.picker.css("paddingBottom","");s=(l-(u-1)*(e=2*l/100))/u,o.picker.find(".iris-palette").each(function(i){var t=0===i?0:e;r(this).css({width:s,height:s,marginLeft:t})}),o.picker.css("paddingBottom",s+e),c.height(s+e+l)},_addInputListeners:function(r){var i=this,t=function(t){var e=new Color(r.val()),s=r.val().replace(/^#/,"");r.removeClass("iris-error"),e.error?""!==s&&r.addClass("iris-error"):e.toString()!==i._color.toString()&&("keyup"===t.type&&s.match(/^[0-9a-fA-F]{3}$/)||i._setOption("color",e.toString()))};r.on("change",t).on("keyup",i._debounce(t,100)),i.options.hide&&r.one("focus",function(){i.show()})},_initControls:function(){var i=this,t=i.controls,e=t.square,s=i.options.controls,o=i._scale[s.strip];t.stripSlider.slider({orientation:"vertical",max:o,slide:function(r,t){i.active="strip","h"===s.strip&&(t.value=o-t.value),i._color[s.strip](t.value),i._change.apply(i,arguments)}}),t.squareDrag.draggable({containment:t.square.find(".iris-square-inner"),zIndex:1e3,cursor:"move",drag:function(r,t){i._squareDrag(r,t)},start:function(){e.addClass("iris-dragging"),r(this).addClass("ui-state-focus")},stop:function(){e.removeClass("iris-dragging"),r(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(t){var e="ui-state-focus";t.preventDefault(),"mousedown"===t.type?(i.picker.find("."+e).removeClass(e).blur(),r(this).addClass(e).focus()):r(this).removeClass(e)}).on("keydown",function(r){var e=t.square,s=t.squareDrag,o=s.position(),a=i.options.width/100;switch(r.altKey&&(a*=10),r.keyCode){case 37:o.left-=a;break;case 38:o.top-=a;break;case 39:o.left+=a;break;case 40:o.top+=a;break;default:return!0}o.left=Math.max(0,Math.min(o.left,e.width())),o.top=Math.max(0,Math.min(o.top,e.height())),s.css(o),i._squareDrag(r,{position:o}),r.preventDefault()}),e.mousedown(function(t){var e,s;1===t.which&&r(t.target).is("div")&&(e=i.controls.square.offset(),s={top:t.pageY-e.top,left:t.pageX-e.left},t.preventDefault(),i._squareDrag(t,{position:s}),t.target=i.controls.squareDrag.get(0),i.controls.squareDrag.css(s).trigger(t))}),i.options.palettes&&i._paletteListeners()},_paletteListeners:function(){var i=this;i.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){i._color.fromCSS(r(this).data("color")),i.active="external",i._change()}).on("keydown.palette",".iris-palette",function(i){if(13!==i.keyCode&&32!==i.keyCode)return!0;i.stopPropagation(),r(this).click()})},_squareDrag:function(r,i){var t=this,e=t.options.controls,s=t._squareDimensions(),o=Math.round((s.h-i.position.top)/s.h*t._scale[e.vert]),a=t._scale[e.horiz]-Math.round((s.w-i.position.left)/s.w*t._scale[e.horiz]);t._color[e.horiz](a)[e.vert](o),t.active="square",t._change.apply(t,arguments)},_setOption:function(i,t){var e,s,o=this,a=o.options[i],n=!1;switch(o.options[i]=t,i){case"color":(t=""+t).replace(/^#/,""),(e=new Color(t).setHSpace(o.options.mode)).error?o.options[i]=a:(o._color=e,o.options.color=o.options[i]=o._color.toString(),o.active="external",o._change());break;case"palettes":n=!0,t?o._addPalettes():o.picker.find(".iris-palette-container").remove(),a||o._paletteListeners();break;case"width":n=!0;break;case"border":n=!0,s=t?"addClass":"removeClass",o.picker[s]("iris-border");break;case"mode":case"controls":if(a===t)return;return s=o.element,(a=o.options).hide=!o.picker.is(":visible"),o.destroy(),o.picker.remove(),r(o.element).iris(a)}n&&o._dimensions(!0)},_squareDimensions:function(r){var t,e,s=this.controls.square;return r!==i&&s.data("dimensions")?s.data("dimensions"):(e=this.controls.squareDrag,t={w:s.width()-e.width(),h:s.height()-e.height()},s.data("dimensions",t),t)},_isNonHueControl:function(r,i){return"square"===r&&"h"===this.options.controls.strip||"external"!==i&&("h"!==i||"strip"!==r)},_change:function(){var i=this,t=i.controls,e=i._getHSpaceColor(),s=["square","strip"],o=i.options.controls,a=o[i.active]||"external",n=i.hue;"strip"===i.active?s=[]:"external"!==i.active&&s.pop(),r.each(s,function(r,s){var a,n,c;if(s!==i.active)switch(s){case"strip":a="h"===o.strip?i._scale[o.strip]-e[o.strip]:e[o.strip],t.stripSlider.slider("value",a);break;case"square":n=i._squareDimensions(),c={left:e[o.horiz]/i._scale[o.horiz]*n.w,top:n.h-e[o.vert]/i._scale[o.vert]*n.h},i.controls.squareDrag.css(c)}}),e.h!==n&&i._isNonHueControl(i.active,a)&&i._color.h(n),i.hue=i._color.h(),i.options.color=i._color.toString(),i._inited&&i._trigger("change",{type:i.active},{color:i._color}),i.element.is(":input")&&!i._color.error&&(i.element.removeClass("iris-error"),i.element.val()!==i._color.toString()&&i.element.val(i._color.toString())),i._paint(),i._inited=!0,i.active=!1},_debounce:function(r,i,t){var e,s;return function(){var o,a,n=this,c=arguments;return o=function(){e=null,t||(s=r.apply(n,c))},a=t&&!e,clearTimeout(e),e=setTimeout(o,i),a&&(s=r.apply(n,c)),s}},show:function(){this.picker.show()},hide:function(){this.picker.hide()},toggle:function(){this.picker.toggle()},color:function(r){return!0===r?this._color.clone():r===i?this._color.toString():void this.option("color",r)}},r.widget("a8c.iris",n),r('").appendTo("head")}(jQuery),function(r,i){var t=function(r,i){return this instanceof t?this._init(r,i):new t(r,i)};t.fn=t.prototype={_color:0,_alpha:1,error:!1,_hsl:{h:0,s:0,l:0},_hsv:{h:0,s:0,v:0},_hSpace:"hsl",_init:function(r){var t="noop";switch(typeof r){case"object":return r.a!==i&&this.a(r.a),this[t=r.r!==i?"fromRgb":r.l!==i?"fromHsl":r.v!==i?"fromHsv":t](r);case"string":return this.fromCSS(r);case"number":return this.fromInt(parseInt(r,10))}return this},_error:function(){return this.error=!0,this},clone:function(){for(var r=new t(this.toInt()),i=["_alpha","_hSpace","_hsl","_hsv","error"],e=i.length-1;e>=0;e--)r[i[e]]=this[i[e]];return r},setHSpace:function(r){return this._hSpace="hsv"===r?r:"hsl",this},noop:function(){return this},fromCSS:function(r){var i,t=/^(rgb|hs(l|v))a?\(/;if(this.error=!1,(r=r.replace(/^\s+/,"").replace(/\s+$/,"").replace(/;$/,"")).match(t)&&r.match(/\)$/)){if((i=r.replace(/(\s|%)/g,"").replace(t,"").replace(/,?\);?$/,"").split(",")).length<3)return this._error();if(4===i.length&&(this.a(parseFloat(i.pop())),this.error))return this;for(var e=i.length-1;e>=0;e--)if(i[e]=parseInt(i[e],10),isNaN(i[e]))return this._error();return r.match(/^rgb/)?this.fromRgb({r:i[0],g:i[1],b:i[2]}):r.match(/^hsv/)?this.fromHsv({h:i[0],s:i[1],v:i[2]}):this.fromHsl({h:i[0],s:i[1],l:i[2]})}return this.fromHex(r)},fromRgb:function(r,t){return"object"!=typeof r||r.r===i||r.g===i||r.b===i?this._error():(this.error=!1,this.fromInt(parseInt((r.r<<16)+(r.g<<8)+r.b,10),t))},fromHex:function(r){return 3===(r=r.replace(/^#/,"").replace(/^0x/,"")).length&&(r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]),this.error=!/^[0-9A-F]{6}$/i.test(r),this.fromInt(parseInt(r,16))},fromHsl:function(r){var t,e,s,o,a,n,c,l;return"object"!=typeof r||r.h===i||r.s===i||r.l===i?this._error():(this._hsl=r,this._hSpace="hsl",n=r.h/360,c=r.s/100,l=r.l/100,0===c?t=e=s=l:(a=2*l-(o=l<.5?l*(1+c):l+c-l*c),t=this.hue2rgb(a,o,n+1/3),e=this.hue2rgb(a,o,n),s=this.hue2rgb(a,o,n-1/3)),this.fromRgb({r:255*t,g:255*e,b:255*s},!0))},fromHsv:function(r){var t,e,s,o,a,n,c,l,h,p,u;if("object"!=typeof r||r.h===i||r.s===i||r.v===i)return this._error();switch(this._hsv=r,this._hSpace="hsv",t=r.h/360,e=r.s/100,h=(s=r.v/100)*(1-e),p=s*(1-(l=6*t-(c=Math.floor(6*t)))*e),u=s*(1-(1-l)*e),c%6){case 0:o=s,a=u,n=h;break;case 1:o=p,a=s,n=h;break;case 2:o=h,a=s,n=u;break;case 3:o=h,a=p,n=s;break;case 4:o=u,a=h,n=s;break;case 5:o=s,a=h,n=p}return this.fromRgb({r:255*o,g:255*a,b:255*n},!0)},fromInt:function(r,t){return this._color=parseInt(r,10),isNaN(this._color)&&(this._color=0),this._color>16777215?this._color=16777215:this._color<0&&(this._color=0),t===i&&(this._hsv.h=this._hsv.s=this._hsl.h=this._hsl.s=0),this},hue2rgb:function(r,i,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?r+6*(i-r)*t:t<.5?i:t<2/3?r+(i-r)*(2/3-t)*6:r},toString:function(){var r=parseInt(this._color,10).toString(16);if(this.error)return"";if(r.length<6)for(var i=6-r.length-1;i>=0;i--)r="0"+r;return"#"+r},toCSS:function(r,i){switch(r=r||"hex",i=parseFloat(i||this._alpha),r){case"rgb":case"rgba":var t=this.toRgb();return i<1?"rgba( "+t.r+", "+t.g+", "+t.b+", "+i+" )":"rgb( "+t.r+", "+t.g+", "+t.b+" )";case"hsl":case"hsla":var e=this.toHsl();return i<1?"hsla( "+e.h+", "+e.s+"%, "+e.l+"%, "+i+" )":"hsl( "+e.h+", "+e.s+"%, "+e.l+"% )";default:return this.toString()}},toRgb:function(){return{r:255&this._color>>16,g:255&this._color>>8,b:255&this._color}},toHsl:function(){var r,i,t=this.toRgb(),e=t.r/255,s=t.g/255,o=t.b/255,a=Math.max(e,s,o),n=Math.min(e,s,o),c=(a+n)/2;if(a===n)r=i=0;else{var l=a-n;switch(i=c>.5?l/(2-a-n):l/(a+n),a){case e:r=(s-o)/l+(se?(i+.05)/(e+.05):(e+.05)/(i+.05)},getMaxContrastColor:function(){var r=this.toLuminosity();return new t(r>=.5?"000000":"ffffff")},getReadableContrastingColor:function(r,e){if(!r instanceof t)return this;var s=e===i?5:e,o=r.getDistanceLuminosityFrom(this),a=r.getMaxContrastColor();if(a.getDistanceLuminosityFrom(r)<=s)return a;if(o>=s)return this;for(var n=0===a.toInt()?-1:1;ot.range[1]?t.range[1]:e),o[r]=e,this._spaceFunc("from",t.space,o))}},_spaceFunc:function(r,i,t){var e=i||this._hSpace;return this[r+e.charAt(0).toUpperCase()+e.substr(1)](t)}};var e={h:{mod:360},s:{range:[0,100]},l:{space:"hsl",range:[0,100]},v:{space:"hsv",range:[0,100]},r:{space:"rgb",range:[0,255]},g:{space:"rgb",range:[0,255]},b:{space:"rgb",range:[0,255]}};for(var s in e)e.hasOwnProperty(s)&&(t.fn[s]=t.fn._partial(s));"object"==typeof exports?module.exports=t:r.Color=t}(this); \ No newline at end of file diff --git a/src/iris.js b/src/iris.js index 9500e27..f1eba8c 100644 --- a/src/iris.js +++ b/src/iris.js @@ -761,8 +761,8 @@ control = this.controls.squareDrag; dimensions = { - w: square.width(), - h: square.height() + w: square.width() - control.width(), + h: square.height() - control.height() }; square.data( 'dimensions', dimensions ); return dimensions;