PATH:
home
/
lab2454c
/
incforce.com
/
wp-content
/
plugins
/
easy-pricing-tables
/
assets
/
ui
/
js
(function( $, undef ){ var _html, vendorPrefixes, _css, EasyPalette, UA, isIE, IEVersion; //var _html, nonGradientIE, gradientType, vendorPrefixes, _css, EasyPalette, UA, isIE, IEVersion; _html = '<div class="easy-palette"></div>'; // Even IE9 dosen't support gradients. Elaborate sigh. UA = navigator.userAgent.toLowerCase(); isIE = navigator.appName === 'Microsoft Internet Explorer'; IEVersion = isIE ? parseFloat( UA.match( /msie ([0-9]{1,}[\.0-9]{0,})/ )[1] ) : 0; nonGradientIE = ( isIE && IEVersion < 10 ); gradientType = false; // we don't bother with an unprefixed version, as it has a different syntax vendorPrefixes = [ '-moz-', '-webkit-', '-o-', '-ms-' ]; _css = '.easy-palette{display:block;position:relative}' + '.easy-palette,.easy-palette *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}' + 'input+.easy-palette{margin-top:4px}' + '.easy-palette-error{background-color:#ffafaf}'+ '.easy-palette-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}'+ '.easy-palette .easy-palette-item{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;float:left;margin: 0px 2px 5px 2px;}'+ '.easy-palette-ie-9 .easy-palette-item{box-shadow:none;border-radius:0}'+ '.easy-palette-ie-9 .easy-palette-item{outline:1px solid rgba(0,0,0,.1)}'+ '.easy-palette-ie-lt9 .easy-palette-item{outline:1px solid #aaa}'+ '.easy-palette-container{position:absolute;top:0;right:0;left:0;bottom:0}'+ '.easy-palette-border .easy-palette-container{top:10px;right:10px;left:9px;bottom:10px}'; //'.easy-palette .easy-palette-item{margin:0;cursor:pointer}'; // Bail for IE <= 7 if ( nonGradientIE && IEVersion <= 7 ) { $.fn.easypalette = $.noop; $.support.easypalette = false; return; } $.support.easypalette = true; // the colorpicker widget def. EasyPalette = { options: { color: false, mode: 'hsl', controls: { horiz: 's', // horizontal defaults to saturation vert: 'l', // vertical defaults to lightness strip: 'h' // right strip defaults to hue }, hide: true, // hide the color picker by default border: true, // draw a border around the collection of UI elements target: false, // a DOM element / jQuery selector that the element will be appended within. Only used when called on an input. width: 200, // the width of the collection of UI elements palettes: true // show a palette of basic colors beneath the square. }, _color: '', _palettes: [ '#000', '#fff', '#d33', '#d93', '#ee2', '#81d742', '#1e73be', '#8224e3' ], _inited: false, _create: function() { var self = this, el = self.element, color = self.options.color || el.val(); if ( el.is( 'input' ) ) { if ( self.options.target ) { self.palette = $( _html ).appendTo( self.options.target ); } else { self.palette = $( _html ).insertAfter( el ); } self._addInputListeners( el ); } else { el.append( _html ); self.palette = el.find( '.easy-palette' ); } // Browsers / Versions // Feature detection doesn't work for these, and $.browser is deprecated if ( isIE ) { if ( IEVersion === 9 ) { self.palette.addClass( 'easy-palette-ie-9' ); } else if ( IEVersion <= 8 ) { self.palette.addClass( 'easy-palette-ie-lt9' ); } } else if ( UA.indexOf('compatible') < 0 && UA.indexOf('khtml') < 0 && UA.match( /mozilla/ ) ) { self.palette.addClass( 'easy-palette-mozilla' ); } if ( self.options.palettes ) { self._addPalettes(); } self._color = new Color( color ).setHSpace( self.options.mode ); self.options.color = self._color.toString(); // prep 'em for re-use self.controls = { square: self.palette.find( '.easy-palette-square' ), }; if ( self.options.hide ) { self.palette.hide(); } if ( self.options.border ) { self.palette.addClass( 'easy-palette-border' ); } self._initControls(); self.active = 'external'; self._dimensions(); self._change(); }, _has: function(needle, haystack) { var ret = false; $.each(haystack, function(i,v){ if ( needle === v ) { ret = true; // exit the loop return false; } }); return ret; }, _addPalettes: function () { var container = $( '<div class="easy-palette-container" />' ), palette = $( '<a class="easy-palette-item" tabindex="0" />' ), colors = $.isArray( this.options.palettes ) ? this.options.palettes : this._palettes; // do we have an existing container? Empty and reuse it. if ( this.palette.find( '.easy-palette-container' ).length ) { container = this.palette.find( '.easy-palette-container' ).detach().html( '' ); } $.each(colors, function(index, val) { palette.clone().data( 'color', val ) .css( 'backgroundColor', val ).appendTo( container ) .height( 10 ).width( 10 ); }); this.palette.append(container); }, _getHSpaceColor: function() { return ( this.options.mode === 'hsv' ) ? this._color.toHsv() : this._color.toHsl(); }, _dimensions: function( reset ) { // whatever size var self = this, opts = self.options, controls = self.controls, square = controls.square, strip = self.palette.find( '.easy-palette-strip' ), squareWidth = '100%', totalPadding = 20, innerWidth = opts.border ? opts.width - totalPadding : opts.width, controlsHeight, paletteCount = $.isArray( opts.palettes ) ? opts.palettes.length : self._palettes.length, paletteMargin, paletteWidth, paletteContainerWidth; if ( reset ) { square.css( 'width', '' ); strip.css( 'width', '' ); self.palette.css( {width: '', height: ''} ); } squareWidth = innerWidth * ( parseFloat( squareWidth ) / 100 ); controlsHeight = opts.border ? squareWidth + totalPadding : squareWidth; square.width( squareWidth ).height( squareWidth ); //strip.height( squareWidth ).width( stripWidth ); self.palette.css( { width: opts.width, height: controlsHeight } ); if ( ! opts.palettes ) { return self.palette.css( 'paddingBottom', '' ); } // Palette adjustments palettesPerLine = 7; paletteMargin = 4; paletteContainerWidth = squareWidth - (palettesPerLine * paletteMargin); //console.log(paletteContainerWidth); paletteWidth = paletteContainerWidth / palettesPerLine; self.palette.find('.easy-palette-item').each( function( i ) { var margin = i === 0 ? 0 : paletteMargin; $( this ).css({ width: paletteWidth, height: paletteWidth }); }); }, _addInputListeners: function( input ) { var self = this, debounceTimeout = 100, callback = function( event ){ var color = new Color( input.val() ), val = input.val().replace( /^#/, '' ); input.removeClass( 'easy-palette-error' ); // we gave a bad color if ( color.error ) { // don't error on an empty input - we want those allowed if ( val !== '' ) { input.addClass( 'easy-palette-error' ); } } else { if ( color.toString() !== self._color.toString() ) { // let's not do this on keyup for hex shortcodes if ( ! ( event.type === 'keyup' && val.match( /^[0-9a-fA-F]{3}$/ ) ) ) { self._setOption( 'color', color.toString() ); } } } }; input.on( 'change', callback ).on( 'keyup', self._debounce( callback, debounceTimeout ) ); // If we initialized hidden, show on first focus. The rest is up to you. if ( self.options.hide ) { input.one( 'focus', function() { self.show(); }); } }, _initControls: function() { var self = this, controls = self.controls, square = controls.square, controlOpts = self.options.controls; // palettes if ( self.options.palettes ) { self._paletteListeners(); } }, _paletteListeners: function() { var self = this; self.palette.find('.easy-palette-container').on('click.palette', '.easy-palette-item', function() { self._color.fromCSS( $(this).data('color') ); self.active = 'external'; self._change(); }).on( 'keydown.palette', '.easy-palette-item', function( event ) { if ( ! ( event.keyCode === 13 || event.keyCode === 32 ) ) { return true; } event.stopPropagation(); $( this ).trigger( 'click' ); }); }, _setOption: function( key, value ) { var self = this, oldValue = self.options[key], doDimensions = false, hexLessColor, newColor, method; // ensure the new value is set. We can reset to oldValue if some check wasn't met. self.options[key] = value; switch(key) { case 'color': // cast to string in case we have a number value = '' + value; hexLessColor = value.replace( /^#/, '' ); newColor = new Color( value ).setHSpace( self.options.mode ); if ( newColor.error ) { self.options[key] = oldValue; } else { self._color = newColor; self.options.color = self.options[key] = self._color.toString(); self.active = 'external'; self._change(); } break; case 'palettes': doDimensions = true; if ( value ) { self._addPalettes(); } else { self.palette.find('.easy-palette-container').remove(); } // do we need to add events? if ( ! oldValue ) { self._paletteListeners(); } break; case 'width': doDimensions = true; break; case 'border': doDimensions = true; method = value ? 'addClass' : 'removeClass'; self.palette[method]('easy-palette-border'); break; case 'mode': case 'controls': // if nothing's changed, let's bail, since this causes re-rendering the whole widget if ( oldValue === value ) { return; } // we're using these poorly named variables because they're already scoped. // method is the element that Iris was called on. oldValue will be the options method = self.element; oldValue = self.options; oldValue.hide = ! self.palette.is( ':visible' ); self.destroy(); self.palette.remove(); return $(self.element).easypalette(oldValue); } // Do we need to recalc dimensions? if ( doDimensions ) { self._dimensions(true); } }, _change: function() { var self = this, controls = self.controls, color = self._getHSpaceColor(), actions = [ 'square', 'strip' ], controlOpts = self.options.controls, type = controlOpts[self.active] || 'external', oldHue = self.hue; self.options.color = self._color.toString(); // only run after the first time if ( self._inited ) { self._trigger( 'change', { type: self.active }, { color: self._color } ); } if ( self.element.is( ':input' ) && ! self._color.error ) { self.element.removeClass( 'easy-palette-error' ); if ( self.element.val() !== self._color.toString() ) { self.element.val( self._color.toString() ); } } self._inited = true; self.active = true; }, // taken from underscore.js _.debounce method _debounce: function( func, wait, immediate ) { var timeout, result; return function() { var context = this, args = arguments, later, callNow; later = function() { timeout = null; if ( ! immediate) { result = func.apply( context, args ); } }; callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) { result = func.apply( context, args ); } return result; }; }, show: function() { this.palette.show(); }, hide: function() { this.palette.hide(); }, toggle: function() { this.palette.toggle(); }, color: function(newColor) { if ( newColor === true ) { return this._color.clone(); } else if ( newColor === undef ) { return this._color.toString(); } this.option('color', newColor); } }; // initialize the widget $.widget( 'a8c.easypalette', EasyPalette ); // add CSS $( '<style id="easy-palette-css">' + _css + '</style>' ).appendTo( 'head' ); }( jQuery )); /*! Color.js - v0.9.9 - 2012-11-20 * https://github.com/Automattic/Color.js * Copyright (c) 2012 Matt Wiebe; Licensed GPL v2 */ (function(exports, undef) { var Color = function( color, type ) { if ( ! ( this instanceof Color ) ) return new Color( color, type ); return this._init( color, type ); }; Color.fn = Color.prototype = { _color: 0, _alpha: 1, error: false, // for preserving hue/sat in fromHsl().toHsl() flows _hsl: { h: 0, s: 0, l: 0 }, // for preserving hue/sat in fromHsv().toHsv() flows _hsv: { h: 0, s: 0, v: 0 }, // for setting hsl or hsv space - needed for .h() & .s() functions to function properly _hSpace: 'hsl', _init: function( color ) { var func = 'noop'; switch ( typeof color ) { case 'object': // alpha? if ( color.a !== undef ) this.a( color.a ); func = ( color.r !== undef ) ? 'fromRgb' : ( color.l !== undef ) ? 'fromHsl' : ( color.v !== undef ) ? 'fromHsv' : func; return this[func]( color ); case 'string': return this.fromCSS( color ); case 'number': return this.fromInt( parseInt( color, 10 ) ); } return this; }, _error: function() { this.error = true; return this; }, clone: function() { var newColor = new Color( this.toInt() ), copy = ['_alpha', '_hSpace', '_hsl', '_hsv', 'error']; for ( var i = copy.length - 1; i >= 0; i-- ) { newColor[ copy[i] ] = this[ copy[i] ]; } return newColor; }, setHSpace: function( space ) { this._hSpace = ( space === 'hsv' ) ? space : 'hsl'; return this; }, noop: function() { return this; }, fromCSS: function( color ) { var nums, list, leadingRE = /^(rgb|hs(l|v))a?\(/; this.error = false; // whitespace and semicolon trim color = color.replace(/^\s+/, '').replace(/\s+$/, '').replace(/;$/, ''); if ( color.match(leadingRE) && color.match(/\)$/) ) { list = color.replace(/(\s|%)/g, '').replace(leadingRE, '').replace(/,?\);?$/, '').split(','); if ( list.length < 3 ) return this._error(); if ( list.length === 4 ) { this.a( parseFloat( list.pop() ) ); // error state has been set to true in .a() if we passed NaN if ( this.error ) return this; } for (var i = list.length - 1; i >= 0; i--) { list[i] = parseInt(list[i], 10); if ( isNaN( list[i] ) ) return this._error(); } if ( color.match(/^rgb/) ) { return this.fromRgb( { r: list[0], g: list[1], b: list[2] } ); } else if ( color.match(/^hsv/) ) { return this.fromHsv( { h: list[0], s: list[1], v: list[2] } ); } else { return this.fromHsl( { h: list[0], s: list[1], l: list[2] } ); } } else { // must be hex amirite? return this.fromHex( color ); } }, fromRgb: function( rgb, preserve ) { if ( typeof rgb !== 'object' || rgb.r === undef || rgb.g === undef || rgb.b === undef ) return this._error(); this.error = false; return this.fromInt( parseInt( ( rgb.r << 16 ) + ( rgb.g << 8 ) + rgb.b, 10 ), preserve ); }, fromHex: function( color ) { color = color.replace(/^#/, '').replace(/^0x/, ''); if ( color.length === 3 ) { color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2]; } // rough error checking - this is where things go squirrely the most this.error = ! /^[0-9A-F]{6}$/i.test( color ); return this.fromInt( parseInt( color, 16 ) ); }, fromHsl: function( hsl ) { var r, g, b, q, p, h, s, l; if ( typeof hsl !== 'object' || hsl.h === undef || hsl.s === undef || hsl.l === undef ) return this._error(); this._hsl = hsl; // store it this._hSpace = 'hsl'; // implicit h = hsl.h / 360; s = hsl.s / 100; l = hsl.l / 100; if ( s === 0 ) { r = g = b = l; // achromatic } else { q = l < 0.5 ? l * ( 1 + s ) : l + s - l * s; p = 2 * l - q; r = this.hue2rgb( p, q, h + 1/3 ); g = this.hue2rgb( p, q, h ); b = this.hue2rgb( p, q, h - 1/3 ); } return this.fromRgb( { r: r * 255, g: g * 255, b: b * 255 }, true ); // true preserves hue/sat }, fromHsv: function( hsv ) { var h, s, v, r, g, b, i, f, p, q, t; if ( typeof hsv !== 'object' || hsv.h === undef || hsv.s === undef || hsv.v === undef ) return this._error(); this._hsv = hsv; // store it this._hSpace = 'hsv'; // implicit h = hsv.h / 360; s = hsv.s / 100; v = hsv.v / 100; i = Math.floor( h * 6 ); f = h * 6 - i; p = v * ( 1 - s ); q = v * ( 1 - f * s ); t = v * ( 1 - ( 1 - f ) * s ); switch( i % 6 ) { case 0: r = v; g = t; b = p; break; case 1: r = q; g = v; b = p; break; case 2: r = p; g = v; b = t; break; case 3: r = p; g = q; b = v; break; case 4: r = t; g = p; b = v; break; case 5: r = v; g = p; b = q; break; } return this.fromRgb( { r: r * 255, g: g * 255, b: b * 255 }, true ); // true preserves hue/sat }, // everything comes down to fromInt fromInt: function( color, preserve ) { this._color = parseInt( color, 10 ); if ( isNaN( this._color ) ) this._color = 0; // let's coerce things if ( this._color > 16777215 ) this._color = 16777215; else if ( this._color < 0 ) this._color = 0; // let's not do weird things if ( preserve === undef ) { this._hsv.h = this._hsv.s = this._hsl.h = this._hsl.s = 0; } // EVENT GOES HERE return this; }, hue2rgb: function( p, q, t ) { if ( t < 0 ) { t += 1; } if ( t > 1 ) { t -= 1; } if ( t < 1/6 ) { return p + ( q - p ) * 6 * t; } if ( t < 1/2 ) { return q; } if ( t < 2/3 ) { return p + ( q - p ) * ( 2/3 - t ) * 6; } return p; }, toString: function() { var hex = parseInt( this._color, 10 ).toString( 16 ); if ( this.error ) return ''; // maybe left pad it if ( hex.length < 6 ) { for (var i = 6 - hex.length - 1; i >= 0; i--) { hex = '0' + hex; } } return '#' + hex; }, toCSS: function( type, alpha ) { type = type || 'hex'; alpha = parseFloat( alpha || this._alpha ); switch ( type ) { case 'rgb': case 'rgba': var rgb = this.toRgb(); if ( alpha < 1 ) { return "rgba( " + rgb.r + ", " + rgb.g + ", " + rgb.b + ", " + alpha + " )"; } else { return "rgb( " + rgb.r + ", " + rgb.g + ", " + rgb.b + " )"; } break; case 'hsl': case 'hsla': var hsl = this.toHsl(); if ( alpha < 1 ) { return "hsla( " + hsl.h + ", " + hsl.s + "%, " + hsl.l + "%, " + alpha + " )"; } else { return "hsl( " + hsl.h + ", " + hsl.s + "%, " + hsl.l + "% )"; } break; default: return this.toString(); } }, toRgb: function() { return { r: 255 & ( this._color >> 16 ), g: 255 & ( this._color >> 8 ), b: 255 & ( this._color ) }; }, toHsl: function() { var rgb = this.toRgb(); var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255; var max = Math.max( r, g, b ), min = Math.min( r, g, b ); var h, s, l = ( max + min ) / 2; if ( max === min ) { h = s = 0; // achromatic } else { var d = max - min; s = l > 0.5 ? d / ( 2 - max - min ) : d / ( max + min ); switch ( max ) { case r: h = ( g - b ) / d + ( g < b ? 6 : 0 ); break; case g: h = ( b - r ) / d + 2; break; case b: h = ( r - g ) / d + 4; break; } h /= 6; } // maintain hue & sat if we've been manipulating things in the HSL space. h = Math.round( h * 360 ); if ( h === 0 && this._hsl.h !== h ) { h = this._hsl.h; } s = Math.round( s * 100 ); if ( s === 0 && this._hsl.s ) { s = this._hsl.s; } return { h: h, s: s, l: Math.round( l * 100 ) }; }, toHsv: function() { var rgb = this.toRgb(); var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255; var max = Math.max( r, g, b ), min = Math.min( r, g, b ); var h, s, v = max; var d = max - min; s = max === 0 ? 0 : d / max; if ( max === min ) { h = s = 0; // achromatic } else { switch( max ){ case r: h = ( g - b ) / d + ( g < b ? 6 : 0 ); break; case g: h = ( b - r ) / d + 2; break; case b: h = ( r - g ) / d + 4; break; } h /= 6; } // maintain hue & sat if we've been manipulating things in the HSV space. h = Math.round( h * 360 ); if ( h === 0 && this._hsv.h !== h ) { h = this._hsv.h; } s = Math.round( s * 100 ); if ( s === 0 && this._hsv.s ) { s = this._hsv.s; } return { h: h, s: s, v: Math.round( v * 100 ) }; }, toInt: function() { return this._color; }, toIEOctoHex: function() { // AARRBBGG var hex = this.toString(); var AA = parseInt( 255 * this._alpha, 10 ).toString(16); if ( AA.length === 1 ) { AA = '0' + AA; } return '#' + AA + hex.replace(/^#/, '' ); }, toLuminosity: function() { var rgb = this.toRgb(); return 0.2126 * Math.pow( rgb.r / 255, 2.2 ) + 0.7152 * Math.pow( rgb.g / 255, 2.2 ) + 0.0722 * Math.pow( rgb.b / 255, 2.2); }, getDistanceLuminosityFrom: function( color ) { if ( ! ( color instanceof Color ) ) { throw 'getDistanceLuminosityFrom requires a Color object'; } var lum1 = this.toLuminosity(); var lum2 = color.toLuminosity(); if ( lum1 > lum2 ) { return ( lum1 + 0.05 ) / ( lum2 + 0.05 ); } else { return ( lum2 + 0.05 ) / ( lum1 + 0.05 ); } }, getMaxContrastColor: function() { var lum = this.toLuminosity(); var hex = ( lum >= 0.5 ) ? '000000' : 'ffffff'; return new Color( hex ); }, getGrayscaleContrastingColor: function( contrast ) { if ( ! contrast ) { return this.getMaxContrastColor(); } // don't allow less than 5 var target_contrast = ( contrast < 5 ) ? 5 : contrast; var color = this.getMaxContrastColor(); contrast = color.getDistanceLuminosityFrom( this ); // if current max contrast is less than the target contrast, we had wishful thinking. if ( contrast <= target_contrast ) { return color; } var incr = ( 0 === color.toInt() ) ? 1 : -1; while ( contrast > target_contrast ) { color = color.incrementLightness( incr ); contrast = color.getDistanceLuminosityFrom( this ); } return color; }, getReadableContrastingColor: function( bgColor, minContrast ) { if ( ! bgColor instanceof Color ) { return this; } // you shouldn't use less than 5, but you might want to. var targetContrast = ( minContrast === undef ) ? 5 : minContrast; // working things var contrast = bgColor.getDistanceLuminosityFrom( this ); var maxContrastColor = bgColor.getMaxContrastColor(); var maxContrast = maxContrastColor.getDistanceLuminosityFrom( bgColor ); // if current max contrast is less than the target contrast, we had wishful thinking. // still, go max if ( maxContrast <= targetContrast ) { return maxContrastColor; } // or, we might already have sufficient contrast else if ( contrast >= targetContrast ) { return this; } var incr = ( 0 === maxContrastColor.toInt() ) ? -1 : 1; while ( contrast < targetContrast ) { this.incrementLightness( incr ); contrast = this.getDistanceLuminosityFrom( bgColor ); // infininite loop prevention: you never know. if ( this._color === 0 || this._color === 16777215 ) { break; } } return this; }, a: function( val ) { if ( val === undef ) return this._alpha; var a = parseFloat( val ); if ( isNaN( a ) ) return this._error(); this._alpha = a; return this; }, // TRANSFORMS darken: function( amount ) { amount = amount || 5; return this.l( - amount, true ); }, lighten: function( amount ) { amount = amount || 5; return this.l( amount, true ); }, saturate: function( amount ) { amount = amount || 15; return this.s( amount, true ); }, desaturate: function( amount ) { amount = amount || 15; return this.s( - amount, true ); }, toGrayscale: function() { return this.setHSpace('hsl').s( 0 ); }, getComplement: function() { return this.h( 180, true ); }, getSplitComplement: function( step ) { step = step || 1; var incr = 180 + ( step * 30 ); return this.h( incr, true ); }, getAnalog: function( step ) { step = step || 1; var incr = step * 30; return this.h( incr, true ); }, getTetrad: function( step ) { step = step || 1; var incr = step * 60; return this.h( incr, true ); }, getTriad: function( step ) { step = step || 1; var incr = step * 120; return this.h( incr, true ); }, _partial: function( key ) { var prop = shortProps[key]; return function( val, incr ) { var color = this._spaceFunc('to', prop.space); // GETTER if ( val === undef ) return color[key]; // INCREMENT if ( incr === true ) val = color[key] + val; // MOD & RANGE if ( prop.mod ) val = val % prop.mod; if ( prop.range ) val = ( val < prop.range[0] ) ? prop.range[0] : ( val > prop.range[1] ) ? prop.range[1] : val; // NEW VALUE color[key] = val; return this._spaceFunc('from', prop.space, color); }; }, _spaceFunc: function( dir, s, val ) { var space = s || this._hSpace, funcName = dir + space.charAt(0).toUpperCase() + space.substr(1); return this[funcName](val); } }; var shortProps = { 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 key in shortProps ) { if ( shortProps.hasOwnProperty( key ) ) Color.fn[key] = Color.fn._partial(key); } exports.Color = Color; }(typeof exports === 'object' && exports || this));
[-] jquery.matchHeight-min.js
[edit]
[+]
..
[-] easy-palette.min.js
[edit]
[-] color-palettes.min.js
[edit]
[-] easy-palette.js
[edit]
[-] modernizr.min.js
[edit]
[-] color-palettes.js
[edit]