@ctrl/tinycolor 3.4.0 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).tinycolor=e()}(this,(function(){"use strict";var t={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function e(t,e){(function(t){return"string"==typeof t&&-1!==t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var r=function(t){return"string"==typeof t&&-1!==t.indexOf("%")}(t);return t=360===e?t:Math.min(e,Math.max(0,parseFloat(t))),r&&(t=parseInt(String(t*e),10)/100),Math.abs(t-e)<1e-6?1:t=360===e?(t<0?t%e+e:t%e)/parseFloat(String(e)):t%e/parseFloat(String(e))}function r(t){return Math.min(1,Math.max(0,t))}function n(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function a(t){return t<=1?100*Number(t)+"%":t}function o(t){return 1===t.length?"0"+t:String(t)}function i(t,r,n){t=e(t,255),r=e(r,255),n=e(n,255);var a=Math.max(t,r,n),o=Math.min(t,r,n),i=0,s=0,h=(a+o)/2;if(a===o)s=0,i=0;else{var u=a-o;switch(s=h>.5?u/(2-a-o):u/(a+o),a){case t:i=(r-n)/u+(r<n?6:0);break;case r:i=(n-t)/u+2;break;case n:i=(t-r)/u+4}i/=6}return{h:i,s:s,l:h}}function s(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*r*(e-t):r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}function h(t,r,n){t=e(t,255),r=e(r,255),n=e(n,255);var a=Math.max(t,r,n),o=Math.min(t,r,n),i=0,s=a,h=a-o,u=0===a?0:h/a;if(a===o)i=0;else{switch(a){case t:i=(r-n)/h+(r<n?6:0);break;case r:i=(n-t)/h+2;break;case n:i=(t-r)/h+4}i/=6}return{h:i,s:u,v:s}}function u(t,e,r,n){var a=[o(Math.round(t).toString(16)),o(Math.round(e).toString(16)),o(Math.round(r).toString(16))];return n&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function f(t,e,r,n){return[o(l(n)),o(Math.round(t).toString(16)),o(Math.round(e).toString(16)),o(Math.round(r).toString(16))].join("")}function l(t){return Math.round(255*parseFloat(t)).toString(16)}function d(t){return g(t)/255}function g(t){return parseInt(t,16)}function c(t){var r,o,i,h={r:0,g:0,b:0},u=1,f=null,l=null,d=null,g=!1,c=!1;return"string"==typeof t&&(t=y(t)),"object"==typeof t&&(w(t.r)&&w(t.g)&&w(t.b)?(r=t.r,o=t.g,i=t.b,h={r:255*e(r,255),g:255*e(o,255),b:255*e(i,255)},g=!0,c="%"===String(t.r).substr(-1)?"prgb":"rgb"):w(t.h)&&w(t.s)&&w(t.v)?(f=a(t.s),l=a(t.v),h=function(t,r,n){t=6*e(t,360),r=e(r,100),n=e(n,100);var a=Math.floor(t),o=t-a,i=n*(1-r),s=n*(1-o*r),h=n*(1-(1-o)*r),u=a%6;return{r:255*[n,s,i,i,h,n][u],g:255*[h,n,n,s,i,i][u],b:255*[i,i,h,n,n,s][u]}}(t.h,f,l),g=!0,c="hsv"):w(t.h)&&w(t.s)&&w(t.l)&&(f=a(t.s),d=a(t.l),h=function(t,r,n){var a,o,i;if(t=e(t,360),r=e(r,100),n=e(n,100),0===r)o=n,i=n,a=n;else{var h=n<.5?n*(1+r):n+r-n*r,u=2*n-h;a=s(u,h,t+1/3),o=s(u,h,t),i=s(u,h,t-1/3)}return{r:255*a,g:255*o,b:255*i}}(t.h,f,d),g=!0,c="hsl"),Object.prototype.hasOwnProperty.call(t,"a")&&(u=t.a)),u=n(u),{ok:g,format:t.format||c,r:Math.min(255,Math.max(h.r,0)),g:Math.min(255,Math.max(h.g,0)),b:Math.min(255,Math.max(h.b,0)),a:u}}var b="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",p="[\\s|\\(]+("+b+")[,|\\s]+("+b+")[,|\\s]+("+b+")\\s*\\)?",v="[\\s|\\(]+("+b+")[,|\\s]+("+b+")[,|\\s]+("+b+")[,|\\s]+("+b+")\\s*\\)?",m={CSS_UNIT:new RegExp(b),rgb:new RegExp("rgb"+p),rgba:new RegExp("rgba"+v),hsl:new RegExp("hsl"+p),hsla:new RegExp("hsla"+v),hsv:new RegExp("hsv"+p),hsva:new RegExp("hsva"+v),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function y(e){if(0===(e=e.trim().toLowerCase()).length)return!1;var r=!1;if(t[e])e=t[e],r=!0;else if("transparent"===e)return{r:0,g:0,b:0,a:0,format:"name"};var n=m.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=m.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=m.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=m.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=m.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=m.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=m.hex8.exec(e))?{r:g(n[1]),g:g(n[2]),b:g(n[3]),a:d(n[4]),format:r?"name":"hex8"}:(n=m.hex6.exec(e))?{r:g(n[1]),g:g(n[2]),b:g(n[3]),format:r?"name":"hex"}:(n=m.hex4.exec(e))?{r:g(n[1]+n[1]),g:g(n[2]+n[2]),b:g(n[3]+n[3]),a:d(n[4]+n[4]),format:r?"name":"hex8"}:!!(n=m.hex3.exec(e))&&{r:g(n[1]+n[1]),g:g(n[2]+n[2]),b:g(n[3]+n[3]),format:r?"name":"hex"}}function w(t){return Boolean(m.CSS_UNIT.exec(String(t)))}var M=function(){function a(t,e){var r;if(void 0===t&&(t=""),void 0===e&&(e={}),t instanceof a)return t;"number"==typeof t&&(t=function(t){return{r:t>>16,g:(65280&t)>>8,b:255&t}}(t)),this.originalInput=t;var n=c(t);this.originalInput=t,this.r=n.r,this.g=n.g,this.b=n.b,this.a=n.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(r=e.format)&&void 0!==r?r:n.format,this.gradientType=e.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=n.ok}return a.prototype.isDark=function(){return this.getBrightness()<128},a.prototype.isLight=function(){return!this.isDark()},a.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},a.prototype.getLuminance=function(){var t=this.toRgb(),e=t.r/255,r=t.g/255,n=t.b/255;return.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},a.prototype.getAlpha=function(){return this.a},a.prototype.setAlpha=function(t){return this.a=n(t),this.roundA=Math.round(100*this.a)/100,this},a.prototype.toHsv=function(){var t=h(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},a.prototype.toHsvString=function(){var t=h(this.r,this.g,this.b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.v);return 1===this.a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this.roundA+")"},a.prototype.toHsl=function(){var t=i(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},a.prototype.toHslString=function(){var t=i(this.r,this.g,this.b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.l);return 1===this.a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this.roundA+")"},a.prototype.toHex=function(t){return void 0===t&&(t=!1),u(this.r,this.g,this.b,t)},a.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},a.prototype.toHex8=function(t){return void 0===t&&(t=!1),function(t,e,r,n,a){var i=[o(Math.round(t).toString(16)),o(Math.round(e).toString(16)),o(Math.round(r).toString(16)),o(l(n))];return a&&i[0].startsWith(i[0].charAt(1))&&i[1].startsWith(i[1].charAt(1))&&i[2].startsWith(i[2].charAt(1))&&i[3].startsWith(i[3].charAt(1))?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0):i.join("")}(this.r,this.g,this.b,this.a,t)},a.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},a.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},a.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),r=Math.round(this.b);return 1===this.a?"rgb("+t+", "+e+", "+r+")":"rgba("+t+", "+e+", "+r+", "+this.roundA+")"},a.prototype.toPercentageRgb=function(){var t=function(t){return Math.round(100*e(t,255))+"%"};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},a.prototype.toPercentageRgbString=function(){var t=function(t){return Math.round(100*e(t,255))};return 1===this.a?"rgb("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%)":"rgba("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%, "+this.roundA+")"},a.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var e="#"+u(this.r,this.g,this.b,!1),r=0,n=Object.entries(t);r<n.length;r++){var a=n[r],o=a[0];if(e===a[1])return o}return!1},a.prototype.toString=function(t){var e=Boolean(t);t=null!=t?t:this.format;var r=!1,n=this.a<1&&this.a>=0;return e||!n||!t.startsWith("hex")&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this.a?this.toName():this.toRgbString()},a.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},a.prototype.clone=function(){return new a(this.toString())},a.prototype.lighten=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.l+=t/100,e.l=r(e.l),new a(e)},a.prototype.brighten=function(t){void 0===t&&(t=10);var e=this.toRgb();return e.r=Math.max(0,Math.min(255,e.r-Math.round(-t/100*255))),e.g=Math.max(0,Math.min(255,e.g-Math.round(-t/100*255))),e.b=Math.max(0,Math.min(255,e.b-Math.round(-t/100*255))),new a(e)},a.prototype.darken=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.l-=t/100,e.l=r(e.l),new a(e)},a.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},a.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},a.prototype.desaturate=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.s-=t/100,e.s=r(e.s),new a(e)},a.prototype.saturate=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.s+=t/100,e.s=r(e.s),new a(e)},a.prototype.greyscale=function(){return this.desaturate(100)},a.prototype.spin=function(t){var e=this.toHsl(),r=(e.h+t)%360;return e.h=r<0?360+r:r,new a(e)},a.prototype.mix=function(t,e){void 0===e&&(e=50);var r=this.toRgb(),n=new a(t).toRgb(),o=e/100;return new a({r:(n.r-r.r)*o+r.r,g:(n.g-r.g)*o+r.g,b:(n.b-r.b)*o+r.b,a:(n.a-r.a)*o+r.a})},a.prototype.analogous=function(t,e){void 0===t&&(t=6),void 0===e&&(e=30);var r=this.toHsl(),n=360/e,o=[this];for(r.h=(r.h-(n*t>>1)+720)%360;--t;)r.h=(r.h+n)%360,o.push(new a(r));return o},a.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new a(t)},a.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var e=this.toHsv(),r=e.h,n=e.s,o=e.v,i=[],s=1/t;t--;)i.push(new a({h:r,s:n,v:o})),o=(o+s)%1;return i},a.prototype.splitcomplement=function(){var t=this.toHsl(),e=t.h;return[this,new a({h:(e+72)%360,s:t.s,l:t.l}),new a({h:(e+216)%360,s:t.s,l:t.l})]},a.prototype.onBackground=function(t){var e=this.toRgb(),r=new a(t).toRgb();return new a({r:r.r+(e.r-r.r)*e.a,g:r.g+(e.g-r.g)*e.a,b:r.b+(e.b-r.b)*e.a})},a.prototype.triad=function(){return this.polyad(3)},a.prototype.tetrad=function(){return this.polyad(4)},a.prototype.polyad=function(t){for(var e=this.toHsl(),r=e.h,n=[this],o=360/t,i=1;i<t;i++)n.push(new a({h:(r+i*o)%360,s:e.s,l:e.l}));return n},a.prototype.equals=function(t){return this.toRgbString()===new a(t).toRgbString()},a}();function x(t){t>=334&&t<=360&&(t-=360);for(var e=0,r=R;e<r.length;e++){var n=A(r[e]);if(n.hueRange&&t>=n.hueRange[0]&&t<=n.hueRange[1])return n}throw Error("Color not found")}function k(t,e){if(void 0===e)return Math.floor(t[0]+Math.random()*(t[1]+1-t[0]));var r=t[1]||1,n=t[0]||0,a=(e=(9301*e+49297)%233280)/233280;return Math.floor(n+a*(r-n))}function A(t){var e=t.lowerBounds[0][0],r=t.lowerBounds[t.lowerBounds.length-1][0],n=t.lowerBounds[t.lowerBounds.length-1][1],a=t.lowerBounds[0][1];return{name:t.name,hueRange:t.hueRange,lowerBounds:t.lowerBounds,saturationRange:[e,r],brightnessRange:[n,a]}}var R=[{name:"monochrome",hueRange:null,lowerBounds:[[0,0],[100,0]]},{name:"red",hueRange:[-26,18],lowerBounds:[[20,100],[30,92],[40,89],[50,85],[60,78],[70,70],[80,60],[90,55],[100,50]]},{name:"orange",hueRange:[19,46],lowerBounds:[[20,100],[30,93],[40,88],[50,86],[60,85],[70,70],[100,70]]},{name:"yellow",hueRange:[47,62],lowerBounds:[[25,100],[40,94],[50,89],[60,86],[70,84],[80,82],[90,80],[100,75]]},{name:"green",hueRange:[63,178],lowerBounds:[[30,100],[40,90],[50,85],[60,81],[70,74],[80,64],[90,50],[100,40]]},{name:"blue",hueRange:[179,257],lowerBounds:[[20,100],[30,86],[40,80],[50,74],[60,60],[70,52],[80,44],[90,39],[100,35]]},{name:"purple",hueRange:[258,282],lowerBounds:[[20,100],[30,87],[40,79],[50,70],[60,65],[70,59],[80,52],[90,45],[100,42]]},{name:"pink",hueRange:[283,334],lowerBounds:[[20,100],[30,90],[40,86],[60,84],[80,80],[90,75],[100,73]]}];function S(t,e){var r=new M(t),n=new M(e);return(Math.max(r.getLuminance(),n.getLuminance())+.05)/(Math.min(r.getLuminance(),n.getLuminance())+.05)}var H=function(t,e){return void 0===t&&(t=""),void 0===e&&(e={}),new M(t,e)};return H.TinyColor=M,H.readability=S,H.mostReadable=function t(e,r,n){void 0===n&&(n={includeFallbackColors:!1,level:"AA",size:"small"});for(var a=null,o=0,i=n.includeFallbackColors,s=n.level,h=n.size,u=0,f=r;u<f.length;u++){var l=f[u],d=S(e,l);d>o&&(o=d,a=new M(l))}return function(t,e,r){var n,a;void 0===r&&(r={level:"AA",size:"small"});var o=S(t,e);switch((null!==(n=r.level)&&void 0!==n?n:"AA")+(null!==(a=r.size)&&void 0!==a?a:"small")){case"AAsmall":case"AAAlarge":return o>=4.5;case"AAlarge":return o>=3;case"AAAsmall":return o>=7;default:return!1}}(e,a,{level:s,size:h})||!i?a:(n.includeFallbackColors=!1,t(e,["#fff","#000"],n))},H.random=function t(e){if(void 0===e&&(e={}),void 0!==e.count&&null!==e.count){var r=e.count,n=[];for(e.count=void 0;r>n.length;)e.count=null,e.seed&&(e.seed+=1),n.push(t(e));return e.count=r,n}var a=function(t,e){var r=k(function(t){var e=parseInt(t,10);if(!Number.isNaN(e)&&e<360&&e>0)return[e,e];if("string"==typeof t){var r=R.find((function(e){return e.name===t}));if(r){var n=A(r);if(n.hueRange)return n.hueRange}var a=new M(t);if(a.isValid){var o=a.toHsv().h;return[o,o]}}return[0,360]}(t),e);r<0&&(r=360+r);return r}(e.hue,e.seed),o=function(t,e){if("monochrome"===e.hue)return 0;if("random"===e.luminosity)return k([0,100],e.seed);var r=x(t).saturationRange,n=r[0],a=r[1];switch(e.luminosity){case"bright":n=55;break;case"dark":n=a-10;break;case"light":a=55}return k([n,a],e.seed)}(a,e),i={h:a,s:o,v:function(t,e,r){var n=function(t,e){for(var r=x(t).lowerBounds,n=0;n<r.length-1;n++){var a=r[n][0],o=r[n][1],i=r[n+1][0],s=r[n+1][1];if(e>=a&&e<=i){var h=(s-o)/(i-a);return h*e+(o-h*a)}}return 0}(t,e),a=100;switch(r.luminosity){case"dark":a=n+20;break;case"light":n=(a+n)/2;break;case"random":n=0,a=100}return k([n,a],r.seed)}(a,o,e)};return void 0!==e.alpha&&(i.a=e.alpha),new M(i)},H.names=t,H.fromRatio=function(t,e){var r={r:a(t.r),g:a(t.g),b:a(t.b)};return void 0!==t.a&&(r.a=Number(t.a)),new M(r,e)},H.legacyRandom=function(){return new M({r:Math.random(),g:Math.random(),b:Math.random()})},H.toMsFilter=function(t,e){var r=new M(t),n="#"+f(r.r,r.g,r.b,r.a),a=n,o=r.gradientType?"GradientType = 1, ":"";if(e){var i=new M(e);a="#"+f(i.r,i.g,i.b,i.a)}return"progid:DXImageTransform.Microsoft.gradient("+o+"startColorstr="+n+",endColorstr="+a+")"},H.inputToRGB=c,H.stringInputToObject=y,H.isValidCSSUnit=w,H}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).tinycolor=e()}(this,(function(){"use strict";var t={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function e(t,e){(function(t){return"string"==typeof t&&-1!==t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var r=function(t){return"string"==typeof t&&-1!==t.indexOf("%")}(t);return t=360===e?t:Math.min(e,Math.max(0,parseFloat(t))),r&&(t=parseInt(String(t*e),10)/100),Math.abs(t-e)<1e-6?1:t=360===e?(t<0?t%e+e:t%e)/parseFloat(String(e)):t%e/parseFloat(String(e))}function r(t){return Math.min(1,Math.max(0,t))}function n(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function a(t){return t<=1?"".concat(100*Number(t),"%"):t}function o(t){return 1===t.length?"0"+t:String(t)}function i(t,r,n){t=e(t,255),r=e(r,255),n=e(n,255);var a=Math.max(t,r,n),o=Math.min(t,r,n),i=0,s=0,h=(a+o)/2;if(a===o)s=0,i=0;else{var u=a-o;switch(s=h>.5?u/(2-a-o):u/(a+o),a){case t:i=(r-n)/u+(r<n?6:0);break;case r:i=(n-t)/u+2;break;case n:i=(t-r)/u+4}i/=6}return{h:i,s:s,l:h}}function s(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*r*(e-t):r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}function h(t,r,n){t=e(t,255),r=e(r,255),n=e(n,255);var a=Math.max(t,r,n),o=Math.min(t,r,n),i=0,s=a,h=a-o,u=0===a?0:h/a;if(a===o)i=0;else{switch(a){case t:i=(r-n)/h+(r<n?6:0);break;case r:i=(n-t)/h+2;break;case n:i=(t-r)/h+4}i/=6}return{h:i,s:u,v:s}}function u(t,e,r,n){var a=[o(Math.round(t).toString(16)),o(Math.round(e).toString(16)),o(Math.round(r).toString(16))];return n&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function f(t,e,r,n){return[o(c(n)),o(Math.round(t).toString(16)),o(Math.round(e).toString(16)),o(Math.round(r).toString(16))].join("")}function c(t){return Math.round(255*parseFloat(t)).toString(16)}function l(t){return d(t)/255}function d(t){return parseInt(t,16)}function g(t){var r,o,i,h={r:0,g:0,b:0},u=1,f=null,c=null,l=null,d=!1,g=!1;return"string"==typeof t&&(t=y(t)),"object"==typeof t&&(w(t.r)&&w(t.g)&&w(t.b)?(r=t.r,o=t.g,i=t.b,h={r:255*e(r,255),g:255*e(o,255),b:255*e(i,255)},d=!0,g="%"===String(t.r).substr(-1)?"prgb":"rgb"):w(t.h)&&w(t.s)&&w(t.v)?(f=a(t.s),c=a(t.v),h=function(t,r,n){t=6*e(t,360),r=e(r,100),n=e(n,100);var a=Math.floor(t),o=t-a,i=n*(1-r),s=n*(1-o*r),h=n*(1-(1-o)*r),u=a%6;return{r:255*[n,s,i,i,h,n][u],g:255*[h,n,n,s,i,i][u],b:255*[i,i,h,n,n,s][u]}}(t.h,f,c),d=!0,g="hsv"):w(t.h)&&w(t.s)&&w(t.l)&&(f=a(t.s),l=a(t.l),h=function(t,r,n){var a,o,i;if(t=e(t,360),r=e(r,100),n=e(n,100),0===r)o=n,i=n,a=n;else{var h=n<.5?n*(1+r):n+r-n*r,u=2*n-h;a=s(u,h,t+1/3),o=s(u,h,t),i=s(u,h,t-1/3)}return{r:255*a,g:255*o,b:255*i}}(t.h,f,l),d=!0,g="hsl"),Object.prototype.hasOwnProperty.call(t,"a")&&(u=t.a)),u=n(u),{ok:d,format:t.format||g,r:Math.min(255,Math.max(h.r,0)),g:Math.min(255,Math.max(h.g,0)),b:Math.min(255,Math.max(h.b,0)),a:u}}var b="(?:".concat("[-\\+]?\\d*\\.\\d+%?",")|(?:").concat("[-\\+]?\\d+%?",")"),p="[\\s|\\(]+(".concat(b,")[,|\\s]+(").concat(b,")[,|\\s]+(").concat(b,")\\s*\\)?"),v="[\\s|\\(]+(".concat(b,")[,|\\s]+(").concat(b,")[,|\\s]+(").concat(b,")[,|\\s]+(").concat(b,")\\s*\\)?"),m={CSS_UNIT:new RegExp(b),rgb:new RegExp("rgb"+p),rgba:new RegExp("rgba"+v),hsl:new RegExp("hsl"+p),hsla:new RegExp("hsla"+v),hsv:new RegExp("hsv"+p),hsva:new RegExp("hsva"+v),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function y(e){if(0===(e=e.trim().toLowerCase()).length)return!1;var r=!1;if(t[e])e=t[e],r=!0;else if("transparent"===e)return{r:0,g:0,b:0,a:0,format:"name"};var n=m.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=m.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=m.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=m.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=m.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=m.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=m.hex8.exec(e))?{r:d(n[1]),g:d(n[2]),b:d(n[3]),a:l(n[4]),format:r?"name":"hex8"}:(n=m.hex6.exec(e))?{r:d(n[1]),g:d(n[2]),b:d(n[3]),format:r?"name":"hex"}:(n=m.hex4.exec(e))?{r:d(n[1]+n[1]),g:d(n[2]+n[2]),b:d(n[3]+n[3]),a:l(n[4]+n[4]),format:r?"name":"hex8"}:!!(n=m.hex3.exec(e))&&{r:d(n[1]+n[1]),g:d(n[2]+n[2]),b:d(n[3]+n[3]),format:r?"name":"hex"}}function w(t){return Boolean(m.CSS_UNIT.exec(String(t)))}var M=function(){function a(t,e){var r;if(void 0===t&&(t=""),void 0===e&&(e={}),t instanceof a)return t;"number"==typeof t&&(t=function(t){return{r:t>>16,g:(65280&t)>>8,b:255&t}}(t)),this.originalInput=t;var n=g(t);this.originalInput=t,this.r=n.r,this.g=n.g,this.b=n.b,this.a=n.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(r=e.format)&&void 0!==r?r:n.format,this.gradientType=e.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=n.ok}return a.prototype.isDark=function(){return this.getBrightness()<128},a.prototype.isLight=function(){return!this.isDark()},a.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},a.prototype.getLuminance=function(){var t=this.toRgb(),e=t.r/255,r=t.g/255,n=t.b/255;return.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},a.prototype.getAlpha=function(){return this.a},a.prototype.setAlpha=function(t){return this.a=n(t),this.roundA=Math.round(100*this.a)/100,this},a.prototype.toHsv=function(){var t=h(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},a.prototype.toHsvString=function(){var t=h(this.r,this.g,this.b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.v);return 1===this.a?"hsv(".concat(e,", ").concat(r,"%, ").concat(n,"%)"):"hsva(".concat(e,", ").concat(r,"%, ").concat(n,"%, ").concat(this.roundA,")")},a.prototype.toHsl=function(){var t=i(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},a.prototype.toHslString=function(){var t=i(this.r,this.g,this.b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.l);return 1===this.a?"hsl(".concat(e,", ").concat(r,"%, ").concat(n,"%)"):"hsla(".concat(e,", ").concat(r,"%, ").concat(n,"%, ").concat(this.roundA,")")},a.prototype.toHex=function(t){return void 0===t&&(t=!1),u(this.r,this.g,this.b,t)},a.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},a.prototype.toHex8=function(t){return void 0===t&&(t=!1),function(t,e,r,n,a){var i=[o(Math.round(t).toString(16)),o(Math.round(e).toString(16)),o(Math.round(r).toString(16)),o(c(n))];return a&&i[0].startsWith(i[0].charAt(1))&&i[1].startsWith(i[1].charAt(1))&&i[2].startsWith(i[2].charAt(1))&&i[3].startsWith(i[3].charAt(1))?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0):i.join("")}(this.r,this.g,this.b,this.a,t)},a.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},a.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},a.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),r=Math.round(this.b);return 1===this.a?"rgb(".concat(t,", ").concat(e,", ").concat(r,")"):"rgba(".concat(t,", ").concat(e,", ").concat(r,", ").concat(this.roundA,")")},a.prototype.toPercentageRgb=function(){var t=function(t){return"".concat(Math.round(100*e(t,255)),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},a.prototype.toPercentageRgbString=function(){var t=function(t){return Math.round(100*e(t,255))};return 1===this.a?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},a.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var e="#"+u(this.r,this.g,this.b,!1),r=0,n=Object.entries(t);r<n.length;r++){var a=n[r],o=a[0];if(e===a[1])return o}return!1},a.prototype.toString=function(t){var e=Boolean(t);t=null!=t?t:this.format;var r=!1,n=this.a<1&&this.a>=0;return e||!n||!t.startsWith("hex")&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this.a?this.toName():this.toRgbString()},a.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},a.prototype.clone=function(){return new a(this.toString())},a.prototype.lighten=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.l+=t/100,e.l=r(e.l),new a(e)},a.prototype.brighten=function(t){void 0===t&&(t=10);var e=this.toRgb();return e.r=Math.max(0,Math.min(255,e.r-Math.round(-t/100*255))),e.g=Math.max(0,Math.min(255,e.g-Math.round(-t/100*255))),e.b=Math.max(0,Math.min(255,e.b-Math.round(-t/100*255))),new a(e)},a.prototype.darken=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.l-=t/100,e.l=r(e.l),new a(e)},a.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},a.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},a.prototype.desaturate=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.s-=t/100,e.s=r(e.s),new a(e)},a.prototype.saturate=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.s+=t/100,e.s=r(e.s),new a(e)},a.prototype.greyscale=function(){return this.desaturate(100)},a.prototype.spin=function(t){var e=this.toHsl(),r=(e.h+t)%360;return e.h=r<0?360+r:r,new a(e)},a.prototype.mix=function(t,e){void 0===e&&(e=50);var r=this.toRgb(),n=new a(t).toRgb(),o=e/100;return new a({r:(n.r-r.r)*o+r.r,g:(n.g-r.g)*o+r.g,b:(n.b-r.b)*o+r.b,a:(n.a-r.a)*o+r.a})},a.prototype.analogous=function(t,e){void 0===t&&(t=6),void 0===e&&(e=30);var r=this.toHsl(),n=360/e,o=[this];for(r.h=(r.h-(n*t>>1)+720)%360;--t;)r.h=(r.h+n)%360,o.push(new a(r));return o},a.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new a(t)},a.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var e=this.toHsv(),r=e.h,n=e.s,o=e.v,i=[],s=1/t;t--;)i.push(new a({h:r,s:n,v:o})),o=(o+s)%1;return i},a.prototype.splitcomplement=function(){var t=this.toHsl(),e=t.h;return[this,new a({h:(e+72)%360,s:t.s,l:t.l}),new a({h:(e+216)%360,s:t.s,l:t.l})]},a.prototype.onBackground=function(t){var e=this.toRgb(),r=new a(t).toRgb();return new a({r:r.r+(e.r-r.r)*e.a,g:r.g+(e.g-r.g)*e.a,b:r.b+(e.b-r.b)*e.a})},a.prototype.triad=function(){return this.polyad(3)},a.prototype.tetrad=function(){return this.polyad(4)},a.prototype.polyad=function(t){for(var e=this.toHsl(),r=e.h,n=[this],o=360/t,i=1;i<t;i++)n.push(new a({h:(r+i*o)%360,s:e.s,l:e.l}));return n},a.prototype.equals=function(t){return this.toRgbString()===new a(t).toRgbString()},a}();function x(t){t>=334&&t<=360&&(t-=360);for(var e=0,r=R;e<r.length;e++){var n=A(r[e]);if(n.hueRange&&t>=n.hueRange[0]&&t<=n.hueRange[1])return n}throw Error("Color not found")}function k(t,e){if(void 0===e)return Math.floor(t[0]+Math.random()*(t[1]+1-t[0]));var r=t[1]||1,n=t[0]||0,a=(e=(9301*e+49297)%233280)/233280;return Math.floor(n+a*(r-n))}function A(t){var e=t.lowerBounds[0][0],r=t.lowerBounds[t.lowerBounds.length-1][0],n=t.lowerBounds[t.lowerBounds.length-1][1],a=t.lowerBounds[0][1];return{name:t.name,hueRange:t.hueRange,lowerBounds:t.lowerBounds,saturationRange:[e,r],brightnessRange:[n,a]}}var R=[{name:"monochrome",hueRange:null,lowerBounds:[[0,0],[100,0]]},{name:"red",hueRange:[-26,18],lowerBounds:[[20,100],[30,92],[40,89],[50,85],[60,78],[70,70],[80,60],[90,55],[100,50]]},{name:"orange",hueRange:[19,46],lowerBounds:[[20,100],[30,93],[40,88],[50,86],[60,85],[70,70],[100,70]]},{name:"yellow",hueRange:[47,62],lowerBounds:[[25,100],[40,94],[50,89],[60,86],[70,84],[80,82],[90,80],[100,75]]},{name:"green",hueRange:[63,178],lowerBounds:[[30,100],[40,90],[50,85],[60,81],[70,74],[80,64],[90,50],[100,40]]},{name:"blue",hueRange:[179,257],lowerBounds:[[20,100],[30,86],[40,80],[50,74],[60,60],[70,52],[80,44],[90,39],[100,35]]},{name:"purple",hueRange:[258,282],lowerBounds:[[20,100],[30,87],[40,79],[50,70],[60,65],[70,59],[80,52],[90,45],[100,42]]},{name:"pink",hueRange:[283,334],lowerBounds:[[20,100],[30,90],[40,86],[60,84],[80,80],[90,75],[100,73]]}];function S(t,e){var r=new M(t),n=new M(e);return(Math.max(r.getLuminance(),n.getLuminance())+.05)/(Math.min(r.getLuminance(),n.getLuminance())+.05)}var H=function(t,e){return void 0===t&&(t=""),void 0===e&&(e={}),new M(t,e)};return H.TinyColor=M,H.readability=S,H.mostReadable=function t(e,r,n){void 0===n&&(n={includeFallbackColors:!1,level:"AA",size:"small"});for(var a=null,o=0,i=n.includeFallbackColors,s=n.level,h=n.size,u=0,f=r;u<f.length;u++){var c=f[u],l=S(e,c);l>o&&(o=l,a=new M(c))}return function(t,e,r){var n,a;void 0===r&&(r={level:"AA",size:"small"});var o=S(t,e);switch((null!==(n=r.level)&&void 0!==n?n:"AA")+(null!==(a=r.size)&&void 0!==a?a:"small")){case"AAsmall":case"AAAlarge":return o>=4.5;case"AAlarge":return o>=3;case"AAAsmall":return o>=7;default:return!1}}(e,a,{level:s,size:h})||!i?a:(n.includeFallbackColors=!1,t(e,["#fff","#000"],n))},H.random=function t(e){if(void 0===e&&(e={}),void 0!==e.count&&null!==e.count){var r=e.count,n=[];for(e.count=void 0;r>n.length;)e.count=null,e.seed&&(e.seed+=1),n.push(t(e));return e.count=r,n}var a=function(t,e){var r=k(function(t){var e=parseInt(t,10);if(!Number.isNaN(e)&&e<360&&e>0)return[e,e];if("string"==typeof t){var r=R.find((function(e){return e.name===t}));if(r){var n=A(r);if(n.hueRange)return n.hueRange}var a=new M(t);if(a.isValid){var o=a.toHsv().h;return[o,o]}}return[0,360]}(t),e);r<0&&(r=360+r);return r}(e.hue,e.seed),o=function(t,e){if("monochrome"===e.hue)return 0;if("random"===e.luminosity)return k([0,100],e.seed);var r=x(t).saturationRange,n=r[0],a=r[1];switch(e.luminosity){case"bright":n=55;break;case"dark":n=a-10;break;case"light":a=55}return k([n,a],e.seed)}(a,e),i=function(t,e,r){var n=function(t,e){for(var r=x(t).lowerBounds,n=0;n<r.length-1;n++){var a=r[n][0],o=r[n][1],i=r[n+1][0],s=r[n+1][1];if(e>=a&&e<=i){var h=(s-o)/(i-a);return h*e+(o-h*a)}}return 0}(t,e),a=100;switch(r.luminosity){case"dark":a=n+20;break;case"light":n=(a+n)/2;break;case"random":n=0,a=100}return k([n,a],r.seed)}(a,o,e),s={h:a,s:o,v:i};return void 0!==e.alpha&&(s.a=e.alpha),new M(s)},H.names=t,H.fromRatio=function(t,e){var r={r:a(t.r),g:a(t.g),b:a(t.b)};return void 0!==t.a&&(r.a=Number(t.a)),new M(r,e)},H.legacyRandom=function(){return new M({r:Math.random(),g:Math.random(),b:Math.random()})},H.toMsFilter=function(t,e){var r=new M(t),n="#"+f(r.r,r.g,r.b,r.a),a=n,o=r.gradientType?"GradientType = 1, ":"";if(e){var i=new M(e);a="#"+f(i.r,i.g,i.b,i.a)}return"progid:DXImageTransform.Microsoft.gradient(".concat(o,"startColorstr=").concat(n,",endColorstr=").concat(a,")")},H.inputToRGB=g,H.stringInputToObject=y,H.isValidCSSUnit=w,H}));
2
2
  //# sourceMappingURL=tinycolor.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tinycolor.umd.min.js","sources":["../module/css-color-names.js","../module/util.js","../module/conversion.js","../module/format-input.js","../module/index.js","../module/random.js","../module/readability.js","../module/umd_api.js","../module/from-ratio.js","../module/to-ms-filter.js"],"sourcesContent":["// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return Number(n) * 100 + \"%\";\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv, numberInputToObject } from './conversion';\nimport { names } from './css-color-names';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this.roundA + \")\";\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this.roundA + \")\";\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # appened.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # appened.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\" + r + \", \" + g + \", \" + b + \")\" : \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + this.roundA + \")\";\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return Math.round(bound01(x, 255) * 100) + \"%\"; };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\" + rnd(this.r) + \"%, \" + rnd(this.g) + \"%, \" + rnd(this.b) + \"%)\"\n : \"rgba(\" + rnd(this.r) + \"%, \" + rnd(this.g) + \"%, \" + rnd(this.b) + \"%, \" + this.roundA + \")\";\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n return new TinyColor({\n r: bg.r + (fg.r - bg.r) * fg.a,\n g: bg.g + (fg.g - bg.g) * fg.a,\n b: bg.b + (fg.b - bg.b) * fg.a,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\nimport { TinyColor } from './index';\nexport function random(options) {\n if (options === void 0) { options = {}; }\n // Check if we need to generate multiple colors\n if (options.count !== undefined &&\n options.count !== null) {\n var totalColors = options.count;\n var colors = [];\n options.count = undefined;\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n options.count = null;\n if (options.seed) {\n options.seed += 1;\n }\n colors.push(random(options));\n }\n options.count = totalColors;\n return colors;\n }\n // First we pick a hue (H)\n var h = pickHue(options.hue, options.seed);\n // Then use H to determine saturation (S)\n var s = pickSaturation(h, options);\n // Then use S and H to determine brightness (B).\n var v = pickBrightness(h, s, options);\n var res = { h: h, s: s, v: v };\n if (options.alpha !== undefined) {\n res.a = options.alpha;\n }\n // Then we return the HSB color in the desired format\n return new TinyColor(res);\n}\nfunction pickHue(hue, seed) {\n var hueRange = getHueRange(hue);\n var res = randomWithin(hueRange, seed);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (res < 0) {\n res = 360 + res;\n }\n return res;\n}\nfunction pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n if (options.luminosity === 'random') {\n return randomWithin([0, 100], options.seed);\n }\n var saturationRange = getColorInfo(hue).saturationRange;\n var sMin = saturationRange[0];\n var sMax = saturationRange[1];\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n case 'dark':\n sMin = sMax - 10;\n break;\n case 'light':\n sMax = 55;\n break;\n default:\n break;\n }\n return randomWithin([sMin, sMax], options.seed);\n}\nfunction pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S);\n var bMax = 100;\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n default:\n break;\n }\n return randomWithin([bMin, bMax], options.seed);\n}\nfunction getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0];\n var v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0];\n var v2 = lowerBounds[i + 1][1];\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1);\n var b = v1 - m * s1;\n return m * S + b;\n }\n }\n return 0;\n}\nfunction getHueRange(colorInput) {\n var num = parseInt(colorInput, 10);\n if (!Number.isNaN(num) && num < 360 && num > 0) {\n return [num, num];\n }\n if (typeof colorInput === 'string') {\n var namedColor = bounds.find(function (n) { return n.name === colorInput; });\n if (namedColor) {\n var color = defineColor(namedColor);\n if (color.hueRange) {\n return color.hueRange;\n }\n }\n var parsed = new TinyColor(colorInput);\n if (parsed.isValid) {\n var hue = parsed.toHsv().h;\n return [hue, hue];\n }\n }\n return [0, 360];\n}\nfunction getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n for (var _i = 0, bounds_1 = bounds; _i < bounds_1.length; _i++) {\n var bound = bounds_1[_i];\n var color = defineColor(bound);\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return color;\n }\n }\n throw Error('Color not found');\n}\nfunction randomWithin(range, seed) {\n if (seed === undefined) {\n return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));\n }\n // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\nfunction defineColor(bound) {\n var sMin = bound.lowerBounds[0][0];\n var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];\n var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];\n var bMax = bound.lowerBounds[0][1];\n return {\n name: bound.name,\n hueRange: bound.hueRange,\n lowerBounds: bound.lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax],\n };\n}\n/**\n * @hidden\n */\nexport var bounds = [\n {\n name: 'monochrome',\n hueRange: null,\n lowerBounds: [\n [0, 0],\n [100, 0],\n ],\n },\n {\n name: 'red',\n hueRange: [-26, 18],\n lowerBounds: [\n [20, 100],\n [30, 92],\n [40, 89],\n [50, 85],\n [60, 78],\n [70, 70],\n [80, 60],\n [90, 55],\n [100, 50],\n ],\n },\n {\n name: 'orange',\n hueRange: [19, 46],\n lowerBounds: [\n [20, 100],\n [30, 93],\n [40, 88],\n [50, 86],\n [60, 85],\n [70, 70],\n [100, 70],\n ],\n },\n {\n name: 'yellow',\n hueRange: [47, 62],\n lowerBounds: [\n [25, 100],\n [40, 94],\n [50, 89],\n [60, 86],\n [70, 84],\n [80, 82],\n [90, 80],\n [100, 75],\n ],\n },\n {\n name: 'green',\n hueRange: [63, 178],\n lowerBounds: [\n [30, 100],\n [40, 90],\n [50, 85],\n [60, 81],\n [70, 74],\n [80, 64],\n [90, 50],\n [100, 40],\n ],\n },\n {\n name: 'blue',\n hueRange: [179, 257],\n lowerBounds: [\n [20, 100],\n [30, 86],\n [40, 80],\n [50, 74],\n [60, 60],\n [70, 52],\n [80, 44],\n [90, 39],\n [100, 35],\n ],\n },\n {\n name: 'purple',\n hueRange: [258, 282],\n lowerBounds: [\n [20, 100],\n [30, 87],\n [40, 79],\n [50, 70],\n [60, 65],\n [70, 59],\n [80, 52],\n [90, 45],\n [100, 42],\n ],\n },\n {\n name: 'pink',\n hueRange: [283, 334],\n lowerBounds: [\n [20, 100],\n [30, 90],\n [40, 86],\n [60, 84],\n [80, 80],\n [90, 75],\n [100, 73],\n ],\n },\n];\n","import { TinyColor } from './index';\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n/**\n * AKA `contrast`\n *\n * Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n */\nexport function readability(color1, color2) {\n var c1 = new TinyColor(color1);\n var c2 = new TinyColor(color2);\n return ((Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) /\n (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05));\n}\n/**\n * Ensure that foreground and background color combinations meet WCAG2 guidelines.\n * The third argument is an object.\n * the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n * the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n * If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n *\n * Example\n * ```ts\n * new TinyColor().isReadable('#000', '#111') => false\n * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false\n * ```\n */\nexport function isReadable(color1, color2, wcag2) {\n var _a, _b;\n if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }\n var readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {\n case 'AAsmall':\n case 'AAAlarge':\n return readabilityLevel >= 4.5;\n case 'AAlarge':\n return readabilityLevel >= 3;\n case 'AAAsmall':\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\n/**\n * Given a base color and a list of possible foreground or background\n * colors for that base, returns the most readable color.\n * Optionally returns Black or White if the most readable color is unreadable.\n *\n * @param baseColor - the base color.\n * @param colorList - array of colors to pick the most readable one from.\n * @param args - and object with extra arguments\n *\n * Example\n * ```ts\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'], { includeFallbackColors: false }).toHexString(); // \"#112255\"\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'],{ includeFallbackColors: true }).toHexString(); // \"#ffffff\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // \"#faf3f3\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // \"#ffffff\"\n * ```\n */\nexport function mostReadable(baseColor, colorList, args) {\n if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }\n var bestColor = null;\n var bestScore = 0;\n var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;\n for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {\n var color = colorList_1[_i];\n var score = readability(baseColor, color);\n if (score > bestScore) {\n bestScore = score;\n bestColor = new TinyColor(color);\n }\n }\n if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {\n return bestColor;\n }\n args.includeFallbackColors = false;\n return mostReadable(baseColor, ['#fff', '#000'], args);\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport { names } from './css-color-names';\nimport { inputToRGB, isValidCSSUnit, stringInputToObject } from './format-input';\nimport { fromRatio, legacyRandom } from './from-ratio';\nimport { tinycolor, TinyColor } from './index';\nimport { random } from './random';\nimport { mostReadable, readability } from './readability';\nimport { toMsFilter } from './to-ms-filter';\nvar tinycolorumd = tinycolor;\ntinycolorumd.TinyColor = TinyColor;\ntinycolorumd.readability = readability;\ntinycolorumd.mostReadable = mostReadable;\ntinycolorumd.random = random;\ntinycolorumd.names = names;\ntinycolorumd.fromRatio = fromRatio;\ntinycolorumd.legacyRandom = legacyRandom;\ntinycolorumd.toMsFilter = toMsFilter;\ntinycolorumd.inputToRGB = inputToRGB;\ntinycolorumd.stringInputToObject = stringInputToObject;\ntinycolorumd.isValidCSSUnit = isValidCSSUnit;\nexport default tinycolorumd;\n","import { TinyColor } from './index';\nimport { convertToPercentage } from './util';\n/**\n * If input is an object, force 1 into \"1.0\" to handle ratios properly\n * String input requires \"1.0\" as input, so 1 will be treated as 1\n */\nexport function fromRatio(ratio, opts) {\n var newColor = {\n r: convertToPercentage(ratio.r),\n g: convertToPercentage(ratio.g),\n b: convertToPercentage(ratio.b),\n };\n if (ratio.a !== undefined) {\n newColor.a = Number(ratio.a);\n }\n return new TinyColor(newColor, opts);\n}\n/** old random function */\nexport function legacyRandom() {\n return new TinyColor({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n}\n","import { rgbaToArgbHex } from './conversion';\nimport { TinyColor } from './index';\n/**\n * Returns the color represented as a Microsoft filter for use in old versions of IE.\n */\nexport function toMsFilter(firstColor, secondColor) {\n var color = new TinyColor(firstColor);\n var hex8String = '#' + rgbaToArgbHex(color.r, color.g, color.b, color.a);\n var secondHex8String = hex8String;\n var gradientType = color.gradientType ? 'GradientType = 1, ' : '';\n if (secondColor) {\n var s = new TinyColor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s.r, s.g, s.b, s.a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n}\n"],"names":["names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gold","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","bound01","n","max","indexOf","parseFloat","isOnePointZero","isPercent","isPercentage","Math","min","parseInt","String","abs","clamp01","val","boundAlpha","a","isNaN","convertToPercentage","Number","pad2","c","length","rgbToHsl","r","g","b","h","s","l","d","hue2rgb","p","q","t","rgbToHsv","v","rgbToHex","allow3Char","hex","round","toString","startsWith","charAt","join","rgbaToArgbHex","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","inputToRGB","color","rgb","ok","format","stringInputToObject","isValidCSSUnit","substr","i","floor","f","mod","hsvToRgb","hslToRgb","Object","prototype","hasOwnProperty","call","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","RegExp","rgba","hsl","hsla","hsv","hsva","hex3","hex6","hex4","hex8","trim","toLowerCase","named","match","exec","Boolean","TinyColor","opts","_a","numberInputToObject","this","originalInput","roundA","gradientType","isValid","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","pow","getAlpha","setAlpha","alpha","toHsv","toHsvString","toHsl","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","fmt","x","toPercentageRgbString","rnd","toName","_i","entries","_b","key","formatSet","formattedString","hasAlpha","toNumber","clone","lighten","amount","brighten","darken","tint","mix","shade","desaturate","saturate","greyscale","spin","hue","rgb1","rgb2","analogous","results","slices","part","ret","push","complement","monochromatic","res","modification","splitcomplement","onBackground","background","fg","bg","triad","polyad","tetrad","result","increment","equals","getColorInfo","bounds_1","bounds","defineColor","hueRange","Error","randomWithin","range","seed","undefined","random","bound","sMin","lowerBounds","sMax","bMin","bMax","name","saturationRange","brightnessRange","readability","color1","color2","c1","c2","tinycolorumd","mostReadable","baseColor","colorList","args","includeFallbackColors","level","size","bestColor","bestScore","colorList_1","score","wcag2","readabilityLevel","isReadable","options","count","totalColors","colors","colorInput","num","namedColor","find","parsed","getHueRange","pickHue","luminosity","pickSaturation","H","S","s1","v1","s2","v2","m","getMinimumBrightness","pickBrightness","fromRatio","ratio","newColor","legacyRandom","toMsFilter","firstColor","secondColor","hex8String","secondHex8String"],"mappings":"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"}
1
+ {"version":3,"file":"tinycolor.umd.min.js","sources":["../module/css-color-names.js","../module/util.js","../module/conversion.js","../module/format-input.js","../module/index.js","../module/random.js","../module/readability.js","../module/umd_api.js","../module/from-ratio.js","../module/to-ms-filter.js"],"sourcesContent":["// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion';\nimport { names } from './css-color-names';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # appened.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # appened.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n return new TinyColor({\n r: bg.r + (fg.r - bg.r) * fg.a,\n g: bg.g + (fg.g - bg.g) * fg.a,\n b: bg.b + (fg.b - bg.b) * fg.a,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\nimport { TinyColor } from './index';\nexport function random(options) {\n if (options === void 0) { options = {}; }\n // Check if we need to generate multiple colors\n if (options.count !== undefined &&\n options.count !== null) {\n var totalColors = options.count;\n var colors = [];\n options.count = undefined;\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n options.count = null;\n if (options.seed) {\n options.seed += 1;\n }\n colors.push(random(options));\n }\n options.count = totalColors;\n return colors;\n }\n // First we pick a hue (H)\n var h = pickHue(options.hue, options.seed);\n // Then use H to determine saturation (S)\n var s = pickSaturation(h, options);\n // Then use S and H to determine brightness (B).\n var v = pickBrightness(h, s, options);\n var res = { h: h, s: s, v: v };\n if (options.alpha !== undefined) {\n res.a = options.alpha;\n }\n // Then we return the HSB color in the desired format\n return new TinyColor(res);\n}\nfunction pickHue(hue, seed) {\n var hueRange = getHueRange(hue);\n var res = randomWithin(hueRange, seed);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (res < 0) {\n res = 360 + res;\n }\n return res;\n}\nfunction pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n if (options.luminosity === 'random') {\n return randomWithin([0, 100], options.seed);\n }\n var saturationRange = getColorInfo(hue).saturationRange;\n var sMin = saturationRange[0];\n var sMax = saturationRange[1];\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n case 'dark':\n sMin = sMax - 10;\n break;\n case 'light':\n sMax = 55;\n break;\n default:\n break;\n }\n return randomWithin([sMin, sMax], options.seed);\n}\nfunction pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S);\n var bMax = 100;\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n default:\n break;\n }\n return randomWithin([bMin, bMax], options.seed);\n}\nfunction getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0];\n var v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0];\n var v2 = lowerBounds[i + 1][1];\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1);\n var b = v1 - m * s1;\n return m * S + b;\n }\n }\n return 0;\n}\nfunction getHueRange(colorInput) {\n var num = parseInt(colorInput, 10);\n if (!Number.isNaN(num) && num < 360 && num > 0) {\n return [num, num];\n }\n if (typeof colorInput === 'string') {\n var namedColor = bounds.find(function (n) { return n.name === colorInput; });\n if (namedColor) {\n var color = defineColor(namedColor);\n if (color.hueRange) {\n return color.hueRange;\n }\n }\n var parsed = new TinyColor(colorInput);\n if (parsed.isValid) {\n var hue = parsed.toHsv().h;\n return [hue, hue];\n }\n }\n return [0, 360];\n}\nfunction getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n for (var _i = 0, bounds_1 = bounds; _i < bounds_1.length; _i++) {\n var bound = bounds_1[_i];\n var color = defineColor(bound);\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return color;\n }\n }\n throw Error('Color not found');\n}\nfunction randomWithin(range, seed) {\n if (seed === undefined) {\n return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));\n }\n // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\nfunction defineColor(bound) {\n var sMin = bound.lowerBounds[0][0];\n var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];\n var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];\n var bMax = bound.lowerBounds[0][1];\n return {\n name: bound.name,\n hueRange: bound.hueRange,\n lowerBounds: bound.lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax],\n };\n}\n/**\n * @hidden\n */\nexport var bounds = [\n {\n name: 'monochrome',\n hueRange: null,\n lowerBounds: [\n [0, 0],\n [100, 0],\n ],\n },\n {\n name: 'red',\n hueRange: [-26, 18],\n lowerBounds: [\n [20, 100],\n [30, 92],\n [40, 89],\n [50, 85],\n [60, 78],\n [70, 70],\n [80, 60],\n [90, 55],\n [100, 50],\n ],\n },\n {\n name: 'orange',\n hueRange: [19, 46],\n lowerBounds: [\n [20, 100],\n [30, 93],\n [40, 88],\n [50, 86],\n [60, 85],\n [70, 70],\n [100, 70],\n ],\n },\n {\n name: 'yellow',\n hueRange: [47, 62],\n lowerBounds: [\n [25, 100],\n [40, 94],\n [50, 89],\n [60, 86],\n [70, 84],\n [80, 82],\n [90, 80],\n [100, 75],\n ],\n },\n {\n name: 'green',\n hueRange: [63, 178],\n lowerBounds: [\n [30, 100],\n [40, 90],\n [50, 85],\n [60, 81],\n [70, 74],\n [80, 64],\n [90, 50],\n [100, 40],\n ],\n },\n {\n name: 'blue',\n hueRange: [179, 257],\n lowerBounds: [\n [20, 100],\n [30, 86],\n [40, 80],\n [50, 74],\n [60, 60],\n [70, 52],\n [80, 44],\n [90, 39],\n [100, 35],\n ],\n },\n {\n name: 'purple',\n hueRange: [258, 282],\n lowerBounds: [\n [20, 100],\n [30, 87],\n [40, 79],\n [50, 70],\n [60, 65],\n [70, 59],\n [80, 52],\n [90, 45],\n [100, 42],\n ],\n },\n {\n name: 'pink',\n hueRange: [283, 334],\n lowerBounds: [\n [20, 100],\n [30, 90],\n [40, 86],\n [60, 84],\n [80, 80],\n [90, 75],\n [100, 73],\n ],\n },\n];\n","import { TinyColor } from './index';\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n/**\n * AKA `contrast`\n *\n * Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n */\nexport function readability(color1, color2) {\n var c1 = new TinyColor(color1);\n var c2 = new TinyColor(color2);\n return ((Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) /\n (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05));\n}\n/**\n * Ensure that foreground and background color combinations meet WCAG2 guidelines.\n * The third argument is an object.\n * the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n * the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n * If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n *\n * Example\n * ```ts\n * new TinyColor().isReadable('#000', '#111') => false\n * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false\n * ```\n */\nexport function isReadable(color1, color2, wcag2) {\n var _a, _b;\n if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }\n var readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {\n case 'AAsmall':\n case 'AAAlarge':\n return readabilityLevel >= 4.5;\n case 'AAlarge':\n return readabilityLevel >= 3;\n case 'AAAsmall':\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\n/**\n * Given a base color and a list of possible foreground or background\n * colors for that base, returns the most readable color.\n * Optionally returns Black or White if the most readable color is unreadable.\n *\n * @param baseColor - the base color.\n * @param colorList - array of colors to pick the most readable one from.\n * @param args - and object with extra arguments\n *\n * Example\n * ```ts\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'], { includeFallbackColors: false }).toHexString(); // \"#112255\"\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'],{ includeFallbackColors: true }).toHexString(); // \"#ffffff\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // \"#faf3f3\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // \"#ffffff\"\n * ```\n */\nexport function mostReadable(baseColor, colorList, args) {\n if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }\n var bestColor = null;\n var bestScore = 0;\n var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;\n for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {\n var color = colorList_1[_i];\n var score = readability(baseColor, color);\n if (score > bestScore) {\n bestScore = score;\n bestColor = new TinyColor(color);\n }\n }\n if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {\n return bestColor;\n }\n args.includeFallbackColors = false;\n return mostReadable(baseColor, ['#fff', '#000'], args);\n}\n","import { names } from './css-color-names';\nimport { inputToRGB, isValidCSSUnit, stringInputToObject } from './format-input';\nimport { fromRatio, legacyRandom } from './from-ratio';\nimport { TinyColor, tinycolor } from './index';\nimport { random } from './random';\nimport { mostReadable, readability } from './readability';\nimport { toMsFilter } from './to-ms-filter';\nvar tinycolorumd = tinycolor;\ntinycolorumd.TinyColor = TinyColor;\ntinycolorumd.readability = readability;\ntinycolorumd.mostReadable = mostReadable;\ntinycolorumd.random = random;\ntinycolorumd.names = names;\ntinycolorumd.fromRatio = fromRatio;\ntinycolorumd.legacyRandom = legacyRandom;\ntinycolorumd.toMsFilter = toMsFilter;\ntinycolorumd.inputToRGB = inputToRGB;\ntinycolorumd.stringInputToObject = stringInputToObject;\ntinycolorumd.isValidCSSUnit = isValidCSSUnit;\nexport default tinycolorumd;\n","import { TinyColor } from './index';\nimport { convertToPercentage } from './util';\n/**\n * If input is an object, force 1 into \"1.0\" to handle ratios properly\n * String input requires \"1.0\" as input, so 1 will be treated as 1\n */\nexport function fromRatio(ratio, opts) {\n var newColor = {\n r: convertToPercentage(ratio.r),\n g: convertToPercentage(ratio.g),\n b: convertToPercentage(ratio.b),\n };\n if (ratio.a !== undefined) {\n newColor.a = Number(ratio.a);\n }\n return new TinyColor(newColor, opts);\n}\n/** old random function */\nexport function legacyRandom() {\n return new TinyColor({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n}\n","import { rgbaToArgbHex } from './conversion';\nimport { TinyColor } from './index';\n/**\n * Returns the color represented as a Microsoft filter for use in old versions of IE.\n */\nexport function toMsFilter(firstColor, secondColor) {\n var color = new TinyColor(firstColor);\n var hex8String = '#' + rgbaToArgbHex(color.r, color.g, color.b, color.a);\n var secondHex8String = hex8String;\n var gradientType = color.gradientType ? 'GradientType = 1, ' : '';\n if (secondColor) {\n var s = new TinyColor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s.r, s.g, s.b, s.a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\".concat(gradientType, \"startColorstr=\").concat(hex8String, \",endColorstr=\").concat(secondHex8String, \")\");\n}\n"],"names":["names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gold","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","bound01","n","max","indexOf","parseFloat","isOnePointZero","isPercent","isPercentage","Math","min","parseInt","String","abs","clamp01","val","boundAlpha","a","isNaN","convertToPercentage","concat","Number","pad2","c","length","rgbToHsl","r","g","b","h","s","l","d","hue2rgb","p","q","t","rgbToHsv","v","rgbToHex","allow3Char","hex","round","toString","startsWith","charAt","join","rgbaToArgbHex","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","inputToRGB","color","rgb","ok","format","stringInputToObject","isValidCSSUnit","substr","i","floor","f","mod","hsvToRgb","hslToRgb","Object","prototype","hasOwnProperty","call","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","RegExp","rgba","hsl","hsla","hsv","hsva","hex3","hex6","hex4","hex8","trim","toLowerCase","named","match","exec","Boolean","TinyColor","opts","_a","numberInputToObject","this","originalInput","roundA","gradientType","isValid","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","pow","getAlpha","setAlpha","alpha","toHsv","toHsvString","toHsl","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","fmt","x","toPercentageRgbString","rnd","toName","_i","entries","_b","key","formatSet","formattedString","hasAlpha","toNumber","clone","lighten","amount","brighten","darken","tint","mix","shade","desaturate","saturate","greyscale","spin","hue","rgb1","rgb2","analogous","results","slices","part","ret","push","complement","monochromatic","res","modification","splitcomplement","onBackground","background","fg","bg","triad","polyad","tetrad","result","increment","equals","getColorInfo","bounds_1","bounds","defineColor","hueRange","Error","randomWithin","range","seed","undefined","random","bound","sMin","lowerBounds","sMax","bMin","bMax","name","saturationRange","brightnessRange","readability","color1","color2","c1","c2","tinycolorumd","mostReadable","baseColor","colorList","args","includeFallbackColors","level","size","bestColor","bestScore","colorList_1","score","wcag2","readabilityLevel","isReadable","options","count","totalColors","colors","colorInput","num","namedColor","find","parsed","getHueRange","pickHue","luminosity","pickSaturation","H","S","s1","v1","s2","v2","m","getMinimumBrightness","pickBrightness","fromRatio","ratio","newColor","legacyRandom","toMsFilter","firstColor","secondColor","hex8String","secondHex8String"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { RGB, HSL, HSV, Numberify } from './interfaces';
1
+ import { HSL, HSV, Numberify, RGB } from './interfaces';
2
2
  /**
3
3
  * Handle bounds / percentage checking to conform to CSS color spec
4
4
  * <http://www.w3.org/TR/css3-color/>
@@ -12,9 +12,9 @@ var util_1 = require("./util");
12
12
  */
13
13
  function rgbToRgb(r, g, b) {
14
14
  return {
15
- r: util_1.bound01(r, 255) * 255,
16
- g: util_1.bound01(g, 255) * 255,
17
- b: util_1.bound01(b, 255) * 255,
15
+ r: (0, util_1.bound01)(r, 255) * 255,
16
+ g: (0, util_1.bound01)(g, 255) * 255,
17
+ b: (0, util_1.bound01)(b, 255) * 255,
18
18
  };
19
19
  }
20
20
  exports.rgbToRgb = rgbToRgb;
@@ -24,9 +24,9 @@ exports.rgbToRgb = rgbToRgb;
24
24
  * *Returns:* { h, s, l } in [0,1]
25
25
  */
26
26
  function rgbToHsl(r, g, b) {
27
- r = util_1.bound01(r, 255);
28
- g = util_1.bound01(g, 255);
29
- b = util_1.bound01(b, 255);
27
+ r = (0, util_1.bound01)(r, 255);
28
+ g = (0, util_1.bound01)(g, 255);
29
+ b = (0, util_1.bound01)(b, 255);
30
30
  var max = Math.max(r, g, b);
31
31
  var min = Math.min(r, g, b);
32
32
  var h = 0;
@@ -85,9 +85,9 @@ function hslToRgb(h, s, l) {
85
85
  var r;
86
86
  var g;
87
87
  var b;
88
- h = util_1.bound01(h, 360);
89
- s = util_1.bound01(s, 100);
90
- l = util_1.bound01(l, 100);
88
+ h = (0, util_1.bound01)(h, 360);
89
+ s = (0, util_1.bound01)(s, 100);
90
+ l = (0, util_1.bound01)(l, 100);
91
91
  if (s === 0) {
92
92
  // achromatic
93
93
  g = l;
@@ -111,9 +111,9 @@ exports.hslToRgb = hslToRgb;
111
111
  * *Returns:* { h, s, v } in [0,1]
112
112
  */
113
113
  function rgbToHsv(r, g, b) {
114
- r = util_1.bound01(r, 255);
115
- g = util_1.bound01(g, 255);
116
- b = util_1.bound01(b, 255);
114
+ r = (0, util_1.bound01)(r, 255);
115
+ g = (0, util_1.bound01)(g, 255);
116
+ b = (0, util_1.bound01)(b, 255);
117
117
  var max = Math.max(r, g, b);
118
118
  var min = Math.min(r, g, b);
119
119
  var h = 0;
@@ -149,9 +149,9 @@ exports.rgbToHsv = rgbToHsv;
149
149
  * *Returns:* { r, g, b } in the set [0, 255]
150
150
  */
151
151
  function hsvToRgb(h, s, v) {
152
- h = util_1.bound01(h, 360) * 6;
153
- s = util_1.bound01(s, 100);
154
- v = util_1.bound01(v, 100);
152
+ h = (0, util_1.bound01)(h, 360) * 6;
153
+ s = (0, util_1.bound01)(s, 100);
154
+ v = (0, util_1.bound01)(v, 100);
155
155
  var i = Math.floor(h);
156
156
  var f = h - i;
157
157
  var p = v * (1 - s);
@@ -172,9 +172,9 @@ exports.hsvToRgb = hsvToRgb;
172
172
  */
173
173
  function rgbToHex(r, g, b, allow3Char) {
174
174
  var hex = [
175
- util_1.pad2(Math.round(r).toString(16)),
176
- util_1.pad2(Math.round(g).toString(16)),
177
- util_1.pad2(Math.round(b).toString(16)),
175
+ (0, util_1.pad2)(Math.round(r).toString(16)),
176
+ (0, util_1.pad2)(Math.round(g).toString(16)),
177
+ (0, util_1.pad2)(Math.round(b).toString(16)),
178
178
  ];
179
179
  // Return a 3 character hex if possible
180
180
  if (allow3Char &&
@@ -195,10 +195,10 @@ exports.rgbToHex = rgbToHex;
195
195
  // eslint-disable-next-line max-params
196
196
  function rgbaToHex(r, g, b, a, allow4Char) {
197
197
  var hex = [
198
- util_1.pad2(Math.round(r).toString(16)),
199
- util_1.pad2(Math.round(g).toString(16)),
200
- util_1.pad2(Math.round(b).toString(16)),
201
- util_1.pad2(convertDecimalToHex(a)),
198
+ (0, util_1.pad2)(Math.round(r).toString(16)),
199
+ (0, util_1.pad2)(Math.round(g).toString(16)),
200
+ (0, util_1.pad2)(Math.round(b).toString(16)),
201
+ (0, util_1.pad2)(convertDecimalToHex(a)),
202
202
  ];
203
203
  // Return a 4 character hex if possible
204
204
  if (allow4Char &&
@@ -217,10 +217,10 @@ exports.rgbaToHex = rgbaToHex;
217
217
  */
218
218
  function rgbaToArgbHex(r, g, b, a) {
219
219
  var hex = [
220
- util_1.pad2(convertDecimalToHex(a)),
221
- util_1.pad2(Math.round(r).toString(16)),
222
- util_1.pad2(Math.round(g).toString(16)),
223
- util_1.pad2(Math.round(b).toString(16)),
220
+ (0, util_1.pad2)(convertDecimalToHex(a)),
221
+ (0, util_1.pad2)(Math.round(r).toString(16)),
222
+ (0, util_1.pad2)(Math.round(g).toString(16)),
223
+ (0, util_1.pad2)(Math.round(b).toString(16)),
224
224
  ];
225
225
  return hex.join('');
226
226
  }
@@ -35,21 +35,21 @@ function inputToRGB(color) {
35
35
  }
36
36
  if (typeof color === 'object') {
37
37
  if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
38
- rgb = conversion_1.rgbToRgb(color.r, color.g, color.b);
38
+ rgb = (0, conversion_1.rgbToRgb)(color.r, color.g, color.b);
39
39
  ok = true;
40
40
  format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';
41
41
  }
42
42
  else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
43
- s = util_1.convertToPercentage(color.s);
44
- v = util_1.convertToPercentage(color.v);
45
- rgb = conversion_1.hsvToRgb(color.h, s, v);
43
+ s = (0, util_1.convertToPercentage)(color.s);
44
+ v = (0, util_1.convertToPercentage)(color.v);
45
+ rgb = (0, conversion_1.hsvToRgb)(color.h, s, v);
46
46
  ok = true;
47
47
  format = 'hsv';
48
48
  }
49
49
  else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
50
- s = util_1.convertToPercentage(color.s);
51
- l = util_1.convertToPercentage(color.l);
52
- rgb = conversion_1.hslToRgb(color.h, s, l);
50
+ s = (0, util_1.convertToPercentage)(color.s);
51
+ l = (0, util_1.convertToPercentage)(color.l);
52
+ rgb = (0, conversion_1.hslToRgb)(color.h, s, l);
53
53
  ok = true;
54
54
  format = 'hsl';
55
55
  }
@@ -57,7 +57,7 @@ function inputToRGB(color) {
57
57
  a = color.a;
58
58
  }
59
59
  }
60
- a = util_1.boundAlpha(a);
60
+ a = (0, util_1.boundAlpha)(a);
61
61
  return {
62
62
  ok: ok,
63
63
  format: color.format || format,
@@ -73,12 +73,12 @@ var CSS_INTEGER = '[-\\+]?\\d+%?';
73
73
  // <http://www.w3.org/TR/css3-values/#number-value>
74
74
  var CSS_NUMBER = '[-\\+]?\\d*\\.\\d+%?';
75
75
  // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.
76
- var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";
76
+ var CSS_UNIT = "(?:".concat(CSS_NUMBER, ")|(?:").concat(CSS_INTEGER, ")");
77
77
  // Actual matching.
78
78
  // Parentheses and commas are optional, but not required.
79
79
  // Whitespace can take the place of commas or opening paren
80
- var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
81
- var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
80
+ var PERMISSIVE_MATCH3 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
81
+ var PERMISSIVE_MATCH4 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
82
82
  var matchers = {
83
83
  CSS_UNIT: new RegExp(CSS_UNIT),
84
84
  rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),
@@ -140,38 +140,38 @@ function stringInputToObject(color) {
140
140
  match = matchers.hex8.exec(color);
141
141
  if (match) {
142
142
  return {
143
- r: conversion_1.parseIntFromHex(match[1]),
144
- g: conversion_1.parseIntFromHex(match[2]),
145
- b: conversion_1.parseIntFromHex(match[3]),
146
- a: conversion_1.convertHexToDecimal(match[4]),
143
+ r: (0, conversion_1.parseIntFromHex)(match[1]),
144
+ g: (0, conversion_1.parseIntFromHex)(match[2]),
145
+ b: (0, conversion_1.parseIntFromHex)(match[3]),
146
+ a: (0, conversion_1.convertHexToDecimal)(match[4]),
147
147
  format: named ? 'name' : 'hex8',
148
148
  };
149
149
  }
150
150
  match = matchers.hex6.exec(color);
151
151
  if (match) {
152
152
  return {
153
- r: conversion_1.parseIntFromHex(match[1]),
154
- g: conversion_1.parseIntFromHex(match[2]),
155
- b: conversion_1.parseIntFromHex(match[3]),
153
+ r: (0, conversion_1.parseIntFromHex)(match[1]),
154
+ g: (0, conversion_1.parseIntFromHex)(match[2]),
155
+ b: (0, conversion_1.parseIntFromHex)(match[3]),
156
156
  format: named ? 'name' : 'hex',
157
157
  };
158
158
  }
159
159
  match = matchers.hex4.exec(color);
160
160
  if (match) {
161
161
  return {
162
- r: conversion_1.parseIntFromHex(match[1] + match[1]),
163
- g: conversion_1.parseIntFromHex(match[2] + match[2]),
164
- b: conversion_1.parseIntFromHex(match[3] + match[3]),
165
- a: conversion_1.convertHexToDecimal(match[4] + match[4]),
162
+ r: (0, conversion_1.parseIntFromHex)(match[1] + match[1]),
163
+ g: (0, conversion_1.parseIntFromHex)(match[2] + match[2]),
164
+ b: (0, conversion_1.parseIntFromHex)(match[3] + match[3]),
165
+ a: (0, conversion_1.convertHexToDecimal)(match[4] + match[4]),
166
166
  format: named ? 'name' : 'hex8',
167
167
  };
168
168
  }
169
169
  match = matchers.hex3.exec(color);
170
170
  if (match) {
171
171
  return {
172
- r: conversion_1.parseIntFromHex(match[1] + match[1]),
173
- g: conversion_1.parseIntFromHex(match[2] + match[2]),
174
- b: conversion_1.parseIntFromHex(match[3] + match[3]),
172
+ r: (0, conversion_1.parseIntFromHex)(match[1] + match[1]),
173
+ g: (0, conversion_1.parseIntFromHex)(match[2] + match[2]),
174
+ b: (0, conversion_1.parseIntFromHex)(match[3] + match[3]),
175
175
  format: named ? 'name' : 'hex',
176
176
  };
177
177
  }
@@ -9,9 +9,9 @@ var util_1 = require("./util");
9
9
  */
10
10
  function fromRatio(ratio, opts) {
11
11
  var newColor = {
12
- r: util_1.convertToPercentage(ratio.r),
13
- g: util_1.convertToPercentage(ratio.g),
14
- b: util_1.convertToPercentage(ratio.b),
12
+ r: (0, util_1.convertToPercentage)(ratio.r),
13
+ g: (0, util_1.convertToPercentage)(ratio.g),
14
+ b: (0, util_1.convertToPercentage)(ratio.b),
15
15
  };
16
16
  if (ratio.a !== undefined) {
17
17
  newColor.a = Number(ratio.a);
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { HSL, HSLA, HSV, HSVA, RGB, RGBA, Numberify } from './interfaces';
1
+ import { HSL, HSLA, HSV, HSVA, Numberify, RGB, RGBA } from './interfaces';
2
2
  export interface TinyColorOptions {
3
3
  format: string;
4
4
  gradientType: string;
package/dist/index.js CHANGED
@@ -16,10 +16,10 @@ var TinyColor = /** @class */ (function () {
16
16
  return color;
17
17
  }
18
18
  if (typeof color === 'number') {
19
- color = conversion_1.numberInputToObject(color);
19
+ color = (0, conversion_1.numberInputToObject)(color);
20
20
  }
21
21
  this.originalInput = color;
22
- var rgb = format_input_1.inputToRGB(color);
22
+ var rgb = (0, format_input_1.inputToRGB)(color);
23
23
  this.originalInput = color;
24
24
  this.r = rgb.r;
25
25
  this.g = rgb.g;
@@ -104,7 +104,7 @@ var TinyColor = /** @class */ (function () {
104
104
  * @param alpha - The new alpha value. The accepted range is 0-1.
105
105
  */
106
106
  TinyColor.prototype.setAlpha = function (alpha) {
107
- this.a = util_1.boundAlpha(alpha);
107
+ this.a = (0, util_1.boundAlpha)(alpha);
108
108
  this.roundA = Math.round(100 * this.a) / 100;
109
109
  return this;
110
110
  };
@@ -112,7 +112,7 @@ var TinyColor = /** @class */ (function () {
112
112
  * Returns the object as a HSVA object.
113
113
  */
114
114
  TinyColor.prototype.toHsv = function () {
115
- var hsv = conversion_1.rgbToHsv(this.r, this.g, this.b);
115
+ var hsv = (0, conversion_1.rgbToHsv)(this.r, this.g, this.b);
116
116
  return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };
117
117
  };
118
118
  /**
@@ -120,17 +120,17 @@ var TinyColor = /** @class */ (function () {
120
120
  * "hsva(xxx, xxx, xxx, xx)".
121
121
  */
122
122
  TinyColor.prototype.toHsvString = function () {
123
- var hsv = conversion_1.rgbToHsv(this.r, this.g, this.b);
123
+ var hsv = (0, conversion_1.rgbToHsv)(this.r, this.g, this.b);
124
124
  var h = Math.round(hsv.h * 360);
125
125
  var s = Math.round(hsv.s * 100);
126
126
  var v = Math.round(hsv.v * 100);
127
- return this.a === 1 ? "hsv(" + h + ", " + s + "%, " + v + "%)" : "hsva(" + h + ", " + s + "%, " + v + "%, " + this.roundA + ")";
127
+ return this.a === 1 ? "hsv(".concat(h, ", ").concat(s, "%, ").concat(v, "%)") : "hsva(".concat(h, ", ").concat(s, "%, ").concat(v, "%, ").concat(this.roundA, ")");
128
128
  };
129
129
  /**
130
130
  * Returns the object as a HSLA object.
131
131
  */
132
132
  TinyColor.prototype.toHsl = function () {
133
- var hsl = conversion_1.rgbToHsl(this.r, this.g, this.b);
133
+ var hsl = (0, conversion_1.rgbToHsl)(this.r, this.g, this.b);
134
134
  return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };
135
135
  };
136
136
  /**
@@ -138,11 +138,11 @@ var TinyColor = /** @class */ (function () {
138
138
  * "hsla(xxx, xxx, xxx, xx)".
139
139
  */
140
140
  TinyColor.prototype.toHslString = function () {
141
- var hsl = conversion_1.rgbToHsl(this.r, this.g, this.b);
141
+ var hsl = (0, conversion_1.rgbToHsl)(this.r, this.g, this.b);
142
142
  var h = Math.round(hsl.h * 360);
143
143
  var s = Math.round(hsl.s * 100);
144
144
  var l = Math.round(hsl.l * 100);
145
- return this.a === 1 ? "hsl(" + h + ", " + s + "%, " + l + "%)" : "hsla(" + h + ", " + s + "%, " + l + "%, " + this.roundA + ")";
145
+ return this.a === 1 ? "hsl(".concat(h, ", ").concat(s, "%, ").concat(l, "%)") : "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(this.roundA, ")");
146
146
  };
147
147
  /**
148
148
  * Returns the hex value of the color.
@@ -150,7 +150,7 @@ var TinyColor = /** @class */ (function () {
150
150
  */
151
151
  TinyColor.prototype.toHex = function (allow3Char) {
152
152
  if (allow3Char === void 0) { allow3Char = false; }
153
- return conversion_1.rgbToHex(this.r, this.g, this.b, allow3Char);
153
+ return (0, conversion_1.rgbToHex)(this.r, this.g, this.b, allow3Char);
154
154
  };
155
155
  /**
156
156
  * Returns the hex value of the color -with a # appened.
@@ -166,7 +166,7 @@ var TinyColor = /** @class */ (function () {
166
166
  */
167
167
  TinyColor.prototype.toHex8 = function (allow4Char) {
168
168
  if (allow4Char === void 0) { allow4Char = false; }
169
- return conversion_1.rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);
169
+ return (0, conversion_1.rgbaToHex)(this.r, this.g, this.b, this.a, allow4Char);
170
170
  };
171
171
  /**
172
172
  * Returns the hex 8 value of the color -with a # appened.
@@ -195,13 +195,13 @@ var TinyColor = /** @class */ (function () {
195
195
  var r = Math.round(this.r);
196
196
  var g = Math.round(this.g);
197
197
  var b = Math.round(this.b);
198
- return this.a === 1 ? "rgb(" + r + ", " + g + ", " + b + ")" : "rgba(" + r + ", " + g + ", " + b + ", " + this.roundA + ")";
198
+ return this.a === 1 ? "rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")") : "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(this.roundA, ")");
199
199
  };
200
200
  /**
201
201
  * Returns the object as a RGBA object.
202
202
  */
203
203
  TinyColor.prototype.toPercentageRgb = function () {
204
- var fmt = function (x) { return Math.round(util_1.bound01(x, 255) * 100) + "%"; };
204
+ var fmt = function (x) { return "".concat(Math.round((0, util_1.bound01)(x, 255) * 100), "%"); };
205
205
  return {
206
206
  r: fmt(this.r),
207
207
  g: fmt(this.g),
@@ -213,10 +213,10 @@ var TinyColor = /** @class */ (function () {
213
213
  * Returns the RGBA relative values interpolated into a string
214
214
  */
215
215
  TinyColor.prototype.toPercentageRgbString = function () {
216
- var rnd = function (x) { return Math.round(util_1.bound01(x, 255) * 100); };
216
+ var rnd = function (x) { return Math.round((0, util_1.bound01)(x, 255) * 100); };
217
217
  return this.a === 1
218
- ? "rgb(" + rnd(this.r) + "%, " + rnd(this.g) + "%, " + rnd(this.b) + "%)"
219
- : "rgba(" + rnd(this.r) + "%, " + rnd(this.g) + "%, " + rnd(this.b) + "%, " + this.roundA + ")";
218
+ ? "rgb(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%)")
219
+ : "rgba(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%, ").concat(this.roundA, ")");
220
220
  };
221
221
  /**
222
222
  * The 'real' name of the color -if there is one.
@@ -228,7 +228,7 @@ var TinyColor = /** @class */ (function () {
228
228
  if (this.a < 1) {
229
229
  return false;
230
230
  }
231
- var hex = '#' + conversion_1.rgbToHex(this.r, this.g, this.b, false);
231
+ var hex = '#' + (0, conversion_1.rgbToHex)(this.r, this.g, this.b, false);
232
232
  for (var _i = 0, _a = Object.entries(css_color_names_1.names); _i < _a.length; _i++) {
233
233
  var _b = _a[_i], key = _b[0], value = _b[1];
234
234
  if (hex === value) {
@@ -294,7 +294,7 @@ var TinyColor = /** @class */ (function () {
294
294
  if (amount === void 0) { amount = 10; }
295
295
  var hsl = this.toHsl();
296
296
  hsl.l += amount / 100;
297
- hsl.l = util_1.clamp01(hsl.l);
297
+ hsl.l = (0, util_1.clamp01)(hsl.l);
298
298
  return new TinyColor(hsl);
299
299
  };
300
300
  /**
@@ -318,7 +318,7 @@ var TinyColor = /** @class */ (function () {
318
318
  if (amount === void 0) { amount = 10; }
319
319
  var hsl = this.toHsl();
320
320
  hsl.l -= amount / 100;
321
- hsl.l = util_1.clamp01(hsl.l);
321
+ hsl.l = (0, util_1.clamp01)(hsl.l);
322
322
  return new TinyColor(hsl);
323
323
  };
324
324
  /**
@@ -348,7 +348,7 @@ var TinyColor = /** @class */ (function () {
348
348
  if (amount === void 0) { amount = 10; }
349
349
  var hsl = this.toHsl();
350
350
  hsl.s -= amount / 100;
351
- hsl.s = util_1.clamp01(hsl.s);
351
+ hsl.s = (0, util_1.clamp01)(hsl.s);
352
352
  return new TinyColor(hsl);
353
353
  };
354
354
  /**
@@ -359,7 +359,7 @@ var TinyColor = /** @class */ (function () {
359
359
  if (amount === void 0) { amount = 10; }
360
360
  var hsl = this.toHsl();
361
361
  hsl.s += amount / 100;
362
- hsl.s = util_1.clamp01(hsl.s);
362
+ hsl.s = (0, util_1.clamp01)(hsl.s);
363
363
  return new TinyColor(hsl);
364
364
  };
365
365
  /**
@@ -69,12 +69,12 @@ var CSS_INTEGER = '[-\\+]?\\d+%?';
69
69
  // <http://www.w3.org/TR/css3-values/#number-value>
70
70
  var CSS_NUMBER = '[-\\+]?\\d*\\.\\d+%?';
71
71
  // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.
72
- var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";
72
+ var CSS_UNIT = "(?:".concat(CSS_NUMBER, ")|(?:").concat(CSS_INTEGER, ")");
73
73
  // Actual matching.
74
74
  // Parentheses and commas are optional, but not required.
75
75
  // Whitespace can take the place of commas or opening paren
76
- var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
77
- var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
76
+ var PERMISSIVE_MATCH3 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
77
+ var PERMISSIVE_MATCH4 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
78
78
  var matchers = {
79
79
  CSS_UNIT: new RegExp(CSS_UNIT),
80
80
  rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),
@@ -1,4 +1,4 @@
1
- import { rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv, numberInputToObject } from './conversion';
1
+ import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion';
2
2
  import { names } from './css-color-names';
3
3
  import { inputToRGB } from './format-input';
4
4
  import { bound01, boundAlpha, clamp01 } from './util';
@@ -121,7 +121,7 @@ var TinyColor = /** @class */ (function () {
121
121
  var h = Math.round(hsv.h * 360);
122
122
  var s = Math.round(hsv.s * 100);
123
123
  var v = Math.round(hsv.v * 100);
124
- return this.a === 1 ? "hsv(" + h + ", " + s + "%, " + v + "%)" : "hsva(" + h + ", " + s + "%, " + v + "%, " + this.roundA + ")";
124
+ return this.a === 1 ? "hsv(".concat(h, ", ").concat(s, "%, ").concat(v, "%)") : "hsva(".concat(h, ", ").concat(s, "%, ").concat(v, "%, ").concat(this.roundA, ")");
125
125
  };
126
126
  /**
127
127
  * Returns the object as a HSLA object.
@@ -139,7 +139,7 @@ var TinyColor = /** @class */ (function () {
139
139
  var h = Math.round(hsl.h * 360);
140
140
  var s = Math.round(hsl.s * 100);
141
141
  var l = Math.round(hsl.l * 100);
142
- return this.a === 1 ? "hsl(" + h + ", " + s + "%, " + l + "%)" : "hsla(" + h + ", " + s + "%, " + l + "%, " + this.roundA + ")";
142
+ return this.a === 1 ? "hsl(".concat(h, ", ").concat(s, "%, ").concat(l, "%)") : "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(this.roundA, ")");
143
143
  };
144
144
  /**
145
145
  * Returns the hex value of the color.
@@ -192,13 +192,13 @@ var TinyColor = /** @class */ (function () {
192
192
  var r = Math.round(this.r);
193
193
  var g = Math.round(this.g);
194
194
  var b = Math.round(this.b);
195
- return this.a === 1 ? "rgb(" + r + ", " + g + ", " + b + ")" : "rgba(" + r + ", " + g + ", " + b + ", " + this.roundA + ")";
195
+ return this.a === 1 ? "rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")") : "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(this.roundA, ")");
196
196
  };
197
197
  /**
198
198
  * Returns the object as a RGBA object.
199
199
  */
200
200
  TinyColor.prototype.toPercentageRgb = function () {
201
- var fmt = function (x) { return Math.round(bound01(x, 255) * 100) + "%"; };
201
+ var fmt = function (x) { return "".concat(Math.round(bound01(x, 255) * 100), "%"); };
202
202
  return {
203
203
  r: fmt(this.r),
204
204
  g: fmt(this.g),
@@ -212,8 +212,8 @@ var TinyColor = /** @class */ (function () {
212
212
  TinyColor.prototype.toPercentageRgbString = function () {
213
213
  var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };
214
214
  return this.a === 1
215
- ? "rgb(" + rnd(this.r) + "%, " + rnd(this.g) + "%, " + rnd(this.b) + "%)"
216
- : "rgba(" + rnd(this.r) + "%, " + rnd(this.g) + "%, " + rnd(this.b) + "%, " + this.roundA + ")";
215
+ ? "rgb(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%)")
216
+ : "rgba(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%, ").concat(this.roundA, ")");
217
217
  };
218
218
  /**
219
219
  * The 'real' name of the color -if there is one.
@@ -12,5 +12,5 @@ export function toMsFilter(firstColor, secondColor) {
12
12
  var s = new TinyColor(secondColor);
13
13
  secondHex8String = '#' + rgbaToArgbHex(s.r, s.g, s.b, s.a);
14
14
  }
15
- return "progid:DXImageTransform.Microsoft.gradient(" + gradientType + "startColorstr=" + hex8String + ",endColorstr=" + secondHex8String + ")";
15
+ return "progid:DXImageTransform.Microsoft.gradient(".concat(gradientType, "startColorstr=").concat(hex8String, ",endColorstr=").concat(secondHex8String, ")");
16
16
  }
@@ -1,8 +1,7 @@
1
- /* eslint-disable @typescript-eslint/member-ordering */
2
1
  import { names } from './css-color-names';
3
2
  import { inputToRGB, isValidCSSUnit, stringInputToObject } from './format-input';
4
3
  import { fromRatio, legacyRandom } from './from-ratio';
5
- import { tinycolor, TinyColor } from './index';
4
+ import { TinyColor, tinycolor } from './index';
6
5
  import { random } from './random';
7
6
  import { mostReadable, readability } from './readability';
8
7
  import { toMsFilter } from './to-ms-filter';
@@ -69,7 +69,7 @@ export function boundAlpha(a) {
69
69
  */
70
70
  export function convertToPercentage(n) {
71
71
  if (n <= 1) {
72
- return Number(n) * 100 + "%";
72
+ return "".concat(Number(n) * 100, "%");
73
73
  }
74
74
  return n;
75
75
  }
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -8,13 +8,13 @@ var index_1 = require("./index");
8
8
  */
9
9
  function toMsFilter(firstColor, secondColor) {
10
10
  var color = new index_1.TinyColor(firstColor);
11
- var hex8String = '#' + conversion_1.rgbaToArgbHex(color.r, color.g, color.b, color.a);
11
+ var hex8String = '#' + (0, conversion_1.rgbaToArgbHex)(color.r, color.g, color.b, color.a);
12
12
  var secondHex8String = hex8String;
13
13
  var gradientType = color.gradientType ? 'GradientType = 1, ' : '';
14
14
  if (secondColor) {
15
15
  var s = new index_1.TinyColor(secondColor);
16
- secondHex8String = '#' + conversion_1.rgbaToArgbHex(s.r, s.g, s.b, s.a);
16
+ secondHex8String = '#' + (0, conversion_1.rgbaToArgbHex)(s.r, s.g, s.b, s.a);
17
17
  }
18
- return "progid:DXImageTransform.Microsoft.gradient(" + gradientType + "startColorstr=" + hex8String + ",endColorstr=" + secondHex8String + ")";
18
+ return "progid:DXImageTransform.Microsoft.gradient(".concat(gradientType, "startColorstr=").concat(hex8String, ",endColorstr=").concat(secondHex8String, ")");
19
19
  }
20
20
  exports.toMsFilter = toMsFilter;
package/dist/umd_api.js CHANGED
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable @typescript-eslint/member-ordering */
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  var css_color_names_1 = require("./css-color-names");
5
4
  var format_input_1 = require("./format-input");
package/dist/util.js CHANGED
@@ -77,7 +77,7 @@ exports.boundAlpha = boundAlpha;
77
77
  */
78
78
  function convertToPercentage(n) {
79
79
  if (n <= 1) {
80
- return Number(n) * 100 + "%";
80
+ return "".concat(Number(n) * 100, "%");
81
81
  }
82
82
  return n;
83
83
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ctrl/tinycolor",
3
- "version": "3.4.0",
3
+ "version": "3.4.1",
4
4
  "description": "Fast, small color manipulation and conversion for JavaScript",
5
5
  "author": "Scott Cooper <scttcper@gmail.com>",
6
6
  "publishConfig": {
@@ -38,27 +38,27 @@
38
38
  },
39
39
  "dependencies": {},
40
40
  "devDependencies": {
41
- "@babel/plugin-transform-modules-commonjs": "7.12.1",
42
- "@babel/preset-typescript": "7.12.7",
43
- "@ctrl/eslint-config": "1.2.11",
44
- "@jest/globals": "26.6.2",
45
- "@types/node": "14.14.22",
46
- "del-cli": "3.0.1",
47
- "jest": "26.6.3",
48
- "jest-junit": "12.0.0",
49
- "rollup": "2.38.0",
50
- "rollup-plugin-livereload": "2.0.0",
41
+ "@babel/plugin-transform-modules-commonjs": "7.17.9",
42
+ "@babel/preset-typescript": "7.16.7",
43
+ "@ctrl/eslint-config": "3.4.1",
44
+ "@jest/globals": "27.5.1",
45
+ "@types/node": "17.0.23",
46
+ "del-cli": "4.0.1",
47
+ "jest": "27.5.1",
48
+ "jest-junit": "13.1.0",
49
+ "rollup": "2.70.1",
50
+ "rollup-plugin-livereload": "2.0.5",
51
51
  "rollup-plugin-serve": "1.1.0",
52
52
  "rollup-plugin-sourcemaps": "0.6.3",
53
53
  "rollup-plugin-terser": "7.0.2",
54
- "rollup-plugin-typescript2": "0.29.0",
55
- "rollup-plugin-uglify": "6.0.4",
56
- "ts-node": "9.1.1",
57
- "typedoc": "0.20.16",
58
- "typescript": "4.1.3"
54
+ "rollup-plugin-typescript2": "0.31.2",
55
+ "ts-node": "10.7.0",
56
+ "typedoc": "0.22.14",
57
+ "typescript": "4.6.3"
59
58
  },
60
59
  "jest": {
61
- "testEnvironment": "node"
60
+ "testEnvironment": "node",
61
+ "coverageProvider": "v8"
62
62
  },
63
63
  "babel": {
64
64
  "presets": [