| 1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("chart.js"),require("chart.js/helpers")):"function"==typeof define&&define.amd?define(["exports","chart.js","chart.js/helpers"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ChartFunnel={},e.Chart,e.Chart.helpers)}(this,(function(e,t,r){"use strict";const{min:n,max:o}=Math;var a=(e,t=0,r=1)=>n(o(t,e),r),s=e=>{e._clipped=!1,e._unclipped=e.slice(0);for(let t=0;t<=3;t++)t<3?((e[t]<0||e[t]>255)&&(e._clipped=!0),e[t]=a(e[t],0,255)):3===t&&(e[t]=a(e[t],0,1));return e};const f={};for(let e of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])f[`[object ${e}]`]=e.toLowerCase();function l(e){return f[Object.prototype.toString.call(e)]||"object"}var c=(e,t=null)=>e.length>=3?Array.prototype.slice.call(e):"object"==l(e[0])&&t?t.split("").filter((t=>void 0!==e[0][t])).map((t=>e[0][t])):e[0].slice(0),i=e=>{if(e.length<2)return null;const t=e.length-1;return"string"==l(e[t])?e[t].toLowerCase():null};const{PI:u,min:h,max:d}=Math,b=e=>Math.round(100*e)/100,g=e=>Math.round(100*e)/100,m=2*u,p=u/3,w=u/180,y=180/u;function k(e){return[...e.slice(0,3).reverse(),...e.slice(3)]}var M={format:{},autodetect:[]};class x{constructor(...e){const t=this;if("object"===l(e[0])&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];let r=i(e),n=!1;if(!r){n=!0,M.sorted||(M.autodetect=M.autodetect.sort(((e,t)=>t.p-e.p)),M.sorted=!0);for(let t of M.autodetect)if(r=t.test(...e),r)break}if(!M.format[r])throw new Error("unknown format: "+e);{const o=M.format[r].apply(null,n?e:e.slice(0,-1));t._rgb=s(o)}3===t._rgb.length&&t._rgb.push(1)}toString(){return"function"==l(this.hex)?this.hex():`[${this._rgb.join(",")}]`}}const v=(...e)=>new x(...e);v.version="3.1.2";const N={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",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",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",maroon2:"#7f0000",maroon3:"#b03060",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",purple2:"#7f007f",purple3:"#a020f0",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"},_=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,A=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,j=e=>{if(e.match(_)){4!==e.length&&7!==e.length||(e=e.substr(1)),3===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]);const t=parseInt(e,16);return[t>>16,t>>8&255,255&t,1]}if(e.match(A)){5!==e.length&&9!==e.length||(e=e.substr(1)),4===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]);const t=parseInt(e,16);return[t>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100]}throw new Error(`unknown hex color: ${e}`)},{round:E}=Math,C=(...e)=>{let[t,r,n,o]=c(e,"rgba"),a=i(e)||"auto";void 0===o&&(o=1),"auto"===a&&(a=o<1?"rgba":"rgb"),t=E(t),r=E(r),n=E(n);let s="000000"+(t<<16|r<<8|n).toString(16);s=s.substr(s.length-6);let f="0"+E(255*o).toString(16);switch(f=f.substr(f.length-2),a.toLowerCase()){case"rgba":return`#${s}${f}`;case"argb":return`#${f}${s}`;default:return`#${s}`}};x.prototype.name=function(){const e=C(this._rgb,"rgb");for(let t of Object.keys(N))if(N[t]===e)return t.toLowerCase();return e},M.format.named=e=>{if(e=e.toLowerCase(),N[e])return j(N[e]);throw new Error("unknown color name: "+e)},M.autodetect.push({p:5,test:(e,...t)=>{if(!t.length&&"string"===l(e)&&N[e.toLowerCase()])return"named"}}),x.prototype.alpha=function(e,t=!1){return void 0!==e&&"number"===l(e)?t?(this._rgb[3]=e,this):new x([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]},x.prototype.clipped=function(){return this._rgb._clipped||!1};const R={Kn:18,labWhitePoint:"d65",Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452,kE:216/24389,kKE:8,kK:24389/27,RefWhiteRGB:{X:.95047,Y:1,Z:1.08883},MtxRGB2XYZ:{m00:.4124564390896922,m01:.21267285140562253,m02:.0193338955823293,m10:.357576077643909,m11:.715152155287818,m12:.11919202588130297,m20:.18043748326639894,m21:.07217499330655958,m22:.9503040785363679},MtxXYZ2RGB:{m00:3.2404541621141045,m01:-.9692660305051868,m02:.055643430959114726,m10:-1.5371385127977166,m11:1.8760108454466942,m12:-.2040259135167538,m20:-.498531409556016,m21:.041556017530349834,m22:1.0572251882231791},As:.9414285350000001,Bs:1.040417467,Cs:1.089532651,MtxAdaptMa:{m00:.8951,m01:-.7502,m02:.0389,m10:.2664,m11:1.7135,m12:-.0685,m20:-.1614,m21:.0367,m22:1.0296},MtxAdaptMaI:{m00:.9869929054667123,m01:.43230526972339456,m02:-.008528664575177328,m10:-.14705425642099013,m11:.5183602715367776,m12:.04004282165408487,m20:.15996265166373125,m21:.0492912282128556,m22:.9684866957875502}},P=new Map([["a",[1.0985,.35585]],["b",[1.0985,.35585]],["c",[.98074,1.18232]],["d50",[.96422,.82521]],["d55",[.95682,.92149]],["d65",[.95047,1.08883]],["e",[1,1,1]],["f2",[.99186,.67393]],["f7",[.95041,1.08747]],["f11",[1.00962,.6435]],["icc",[.96422,.82521]]]);function $(e){const t=P.get(String(e).toLowerCase());if(!t)throw new Error("unknown Lab illuminant "+e);R.labWhitePoint=e,R.Xn=t[0],R.Zn=t[1]}function B(){return R.labWhitePoint}const O=(...e)=>{e=c(e,"lab");const[t,r,n]=e,[o,a,s]=L(t,r,n),[f,l,i]=G(o,a,s);return[f,l,i,e.length>3?e[3]:1]},L=(e,t,r)=>{const{kE:n,kK:o,kKE:a,Xn:s,Yn:f,Zn:l}=R,c=(e+16)/116,i=.002*t+c,u=c-.005*r,h=i*i*i,d=u*u*u;return[(h>n?h:(116*i-16)/o)*s,(e>a?Math.pow((e+16)/116,3):e/o)*f,(d>n?d:(116*u-16)/o)*l]},Y=e=>{const t=Math.sign(e);return((e=Math.abs(e))<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)*t},G=(e,t,r)=>{const{MtxAdaptMa:n,MtxAdaptMaI:o,MtxXYZ2RGB:a,RefWhiteRGB:s,Xn:f,Yn:l,Zn:c}=R,i=f*n.m00+l*n.m10+c*n.m20,u=f*n.m01+l*n.m11+c*n.m21,h=f*n.m02+l*n.m12+c*n.m22,d=s.X*n.m00+s.Y*n.m10+s.Z*n.m20,b=s.X*n.m01+s.Y*n.m11+s.Z*n.m21,g=s.X*n.m02+s.Y*n.m12+s.Z*n.m22,m=(e*n.m00+t*n.m10+r*n.m20)*(d/i),p=(e*n.m01+t*n.m11+r*n.m21)*(b/u),w=(e*n.m02+t*n.m12+r*n.m22)*(g/h),y=m*o.m00+p*o.m10+w*o.m20,k=m*o.m01+p*o.m11+w*o.m21,M=m*o.m02+p*o.m12+w*o.m22;return[255*Y(y*a.m00+k*a.m10+M*a.m20),255*Y(y*a.m01+k*a.m11+M*a.m21),255*Y(y*a.m02+k*a.m12+M*a.m22)]},q=(...e)=>{const[t,r,n,...o]=c(e,"rgb"),[a,s,f]=X(t,r,n),[l,i,u]=function(e,t,r){const{Xn:n,Yn:o,Zn:a,kE:s,kK:f}=R,l=e/n,c=t/o,i=r/a,u=l>s?Math.pow(l,1/3):(f*l+16)/116,h=c>s?Math.pow(c,1/3):(f*c+16)/116,d=i>s?Math.pow(i,1/3):(f*i+16)/116;return[116*h-16,500*(u-h),200*(h-d)]}(a,s,f);return[l,i,u,...o.length>0&&o[0]<1?[o[0]]:[]]};function z(e){const t=Math.sign(e);return((e=Math.abs(e))<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4))*t}const X=(e,t,r)=>{e=z(e/255),t=z(t/255),r=z(r/255);const{MtxRGB2XYZ:n,MtxAdaptMa:o,MtxAdaptMaI:a,Xn:s,Yn:f,Zn:l,As:c,Bs:i,Cs:u}=R;let h=e*n.m00+t*n.m10+r*n.m20,d=e*n.m01+t*n.m11+r*n.m21,b=e*n.m02+t*n.m12+r*n.m22;const g=s*o.m00+f*o.m10+l*o.m20,m=s*o.m01+f*o.m11+l*o.m21,p=s*o.m02+f*o.m12+l*o.m22;let w=h*o.m00+d*o.m10+b*o.m20,y=h*o.m01+d*o.m11+b*o.m21,k=h*o.m02+d*o.m12+b*o.m22;return w*=g/c,y*=m/i,k*=p/u,h=w*a.m00+y*a.m10+k*a.m20,d=w*a.m01+y*a.m11+k*a.m21,b=w*a.m02+y*a.m12+k*a.m22,[h,d,b]};x.prototype.lab=function(){return q(this._rgb)};Object.assign(v,{lab:(...e)=>new x(...e,"lab"),getLabWhitePoint:B,setLabWhitePoint:$}),M.format.lab=O,M.autodetect.push({p:2,test:(...e)=>{if("array"===l(e=c(e,"lab"))&&3===e.length)return"lab"}}),x.prototype.darken=function(e=1){const t=this.lab();return t[0]-=R.Kn*e,new x(t,"lab").alpha(this.alpha(),!0)},x.prototype.brighten=function(e=1){return this.darken(-e)},x.prototype.darker=x.prototype.darken,x.prototype.brighter=x.prototype.brighten,x.prototype.get=function(e){const[t,r]=e.split("."),n=this[t]();if(r){const e=t.indexOf(r)-("ok"===t.substr(0,2)?2:0);if(e>-1)return n[e];throw new Error(`unknown channel ${r} in mode ${t}`)}return n};const{pow:S}=Math;x.prototype.luminance=function(e,t="rgb"){if(void 0!==e&&"number"===l(e)){if(0===e)return new x([0,0,0,this._rgb[3]],"rgb");if(1===e)return new x([255,255,255,this._rgb[3]],"rgb");let r=this.luminance(),n=20;const o=(r,a)=>{const s=r.interpolate(a,.5,t),f=s.luminance();return Math.abs(e-f)<1e-7||!n--?s:f>e?o(r,s):o(s,a)},a=(r>e?o(new x([0,0,0]),this):o(this,new x([255,255,255]))).rgb();return new x([...a,this._rgb[3]])}return Z(...this._rgb.slice(0,3))};const Z=(e,t,r)=>.2126*(e=I(e))+.7152*(t=I(t))+.0722*(r=I(r)),I=e=>(e/=255)<=.03928?e/12.92:S((e+.055)/1.055,2.4);var F={},W=(e,t,r=.5,...n)=>{let o=n[0]||"lrgb";if(F[o]||n.length||(o=Object.keys(F)[0]),!F[o])throw new Error(`interpolation mode ${o} is not defined`);return"object"!==l(e)&&(e=new x(e)),"object"!==l(t)&&(t=new x(t)),F[o](e,t,r).alpha(e.alpha()+r*(t.alpha()-e.alpha()))};x.prototype.mix=x.prototype.interpolate=function(e,t=.5,...r){return W(this,e,t,...r)},x.prototype.premultiply=function(e=!1){const t=this._rgb,r=t[3];return e?(this._rgb=[t[0]*r,t[1]*r,t[2]*r,r],this):new x([t[0]*r,t[1]*r,t[2]*r,r],"rgb")};const{sin:K,cos:T}=Math,U=(...e)=>{let[t,r,n]=c(e,"lch");return isNaN(n)&&(n=0),n*=w,[t,T(n)*r,K(n)*r]},V=(...e)=>{e=c(e,"lch");const[t,r,n]=e,[o,a,s]=U(t,r,n),[f,l,i]=O(o,a,s);return[f,l,i,e.length>3?e[3]:1]},{sqrt:D,atan2:H,round:J}=Math,Q=(...e)=>{const[t,r,n]=c(e,"lab"),o=D(r*r+n*n);let a=(H(n,r)*y+360)%360;return 0===J(1e4*o)&&(a=Number.NaN),[t,o,a]},ee=(...e)=>{const[t,r,n,...o]=c(e,"rgb"),[a,s,f]=q(t,r,n),[l,i,u]=Q(a,s,f);return[l,i,u,...o.length>0&&o[0]<1?[o[0]]:[]]};x.prototype.lch=function(){return ee(this._rgb)},x.prototype.hcl=function(){return k(ee(this._rgb))};Object.assign(v,{lch:(...e)=>new x(...e,"lch"),hcl:(...e)=>new x(...e,"hcl")}),M.format.lch=V,M.format.hcl=(...e)=>{const t=k(c(e,"hcl"));return V(...t)},["lch","hcl"].forEach((e=>M.autodetect.push({p:2,test:(...t)=>{if("array"===l(t=c(t,e))&&3===t.length)return e}}))),x.prototype.saturate=function(e=1){const t=this.lch();return t[1]+=R.Kn*e,t[1]<0&&(t[1]=0),new x(t,"lch").alpha(this.alpha(),!0)},x.prototype.desaturate=function(e=1){return this.saturate(-e)},x.prototype.set=function(e,t,r=!1){const[n,o]=e.split("."),a=this[n]();if(o){const e=n.indexOf(o)-("ok"===n.substr(0,2)?2:0);if(e>-1){if("string"==l(t))switch(t.charAt(0)){case"+":case"-":a[e]+=+t;break;case"*":a[e]*=+t.substr(1);break;case"/":a[e]/=+t.substr(1);break;default:a[e]=+t}else{if("number"!==l(t))throw new Error("unsupported value for Color.set");a[e]=t}const o=new x(a,n);return r?(this._rgb=o._rgb,this):o}throw new Error(`unknown channel ${o} in mode ${n}`)}return a},x.prototype.tint=function(e=.5,...t){return W(this,"white",e,...t)},x.prototype.shade=function(e=.5,...t){return W(this,"black",e,...t)};F.rgb=(e,t,r)=>{const n=e._rgb,o=t._rgb;return new x(n[0]+r*(o[0]-n[0]),n[1]+r*(o[1]-n[1]),n[2]+r*(o[2]-n[2]),"rgb")};const{sqrt:te,pow:re}=Math;F.lrgb=(e,t,r)=>{const[n,o,a]=e._rgb,[s,f,l]=t._rgb;return new x(te(re(n,2)*(1-r)+re(s,2)*r),te(re(o,2)*(1-r)+re(f,2)*r),te(re(a,2)*(1-r)+re(l,2)*r),"rgb")};F.lab=(e,t,r)=>{const n=e.lab(),o=t.lab();return new x(n[0]+r*(o[0]-n[0]),n[1]+r*(o[1]-n[1]),n[2]+r*(o[2]-n[2]),"lab")};var ne=(e,t,r,n)=>{let o,a,s,f,l,c,i,u,h,d,b,g;return"hsl"===n?(o=e.hsl(),a=t.hsl()):"hsv"===n?(o=e.hsv(),a=t.hsv()):"hcg"===n?(o=e.hcg(),a=t.hcg()):"hsi"===n?(o=e.hsi(),a=t.hsi()):"lch"===n||"hcl"===n?(n="hcl",o=e.hcl(),a=t.hcl()):"oklch"===n&&(o=e.oklch().reverse(),a=t.oklch().reverse()),"h"!==n.substr(0,1)&&"oklch"!==n||([s,l,i]=o,[f,c,u]=a),isNaN(s)||isNaN(f)?isNaN(s)?isNaN(f)?d=Number.NaN:(d=f,1!=i&&0!=i||"hsv"==n||(h=c)):(d=s,1!=u&&0!=u||"hsv"==n||(h=l)):(g=f>s&&f-s>180?f-(s+360):f<s&&s-f>180?f+360-s:f-s,d=s+r*g),void 0===h&&(h=l+r*(c-l)),b=i+r*(u-i),new x("oklch"===n?[b,h,d]:[d,h,b],n)};const oe=(e,t,r)=>ne(e,t,r,"lch");F.lch=oe,F.hcl=oe;x.prototype.num=function(){return((...e)=>{const[t,r,n]=c(e,"rgb");return(t<<16)+(r<<8)+n})(this._rgb)};Object.assign(v,{num:(...e)=>new x(...e,"num")}),M.format.num=e=>{if("number"==l(e)&&e>=0&&e<=16777215){return[e>>16,e>>8&255,255&e,1]}throw new Error("unknown num color: "+e)},M.autodetect.push({p:5,test:(...e)=>{if(1===e.length&&"number"===l(e[0])&&e[0]>=0&&e[0]<=16777215)return"num"}});F.num=(e,t,r)=>{const n=e.num(),o=t.num();return new x(n+r*(o-n),"num")};const{floor:ae}=Math;x.prototype.hcg=function(){return((...e)=>{const[t,r,n]=c(e,"rgb"),o=h(t,r,n),a=d(t,r,n),s=a-o,f=100*s/255,l=o/(255-s)*100;let i;return 0===s?i=Number.NaN:(t===a&&(i=(r-n)/s),r===a&&(i=2+(n-t)/s),n===a&&(i=4+(t-r)/s),i*=60,i<0&&(i+=360)),[i,f,l]})(this._rgb)};v.hcg=(...e)=>new x(...e,"hcg"),M.format.hcg=(...e)=>{e=c(e,"hcg");let t,r,n,[o,a,s]=e;s*=255;const f=255*a;if(0===a)t=r=n=s;else{360===o&&(o=0),o>360&&(o-=360),o<0&&(o+=360),o/=60;const e=ae(o),l=o-e,c=s*(1-a),i=c+f*(1-l),u=c+f*l,h=c+f;switch(e){case 0:[t,r,n]=[h,u,c];break;case 1:[t,r,n]=[i,h,c];break;case 2:[t,r,n]=[c,h,u];break;case 3:[t,r,n]=[c,i,h];break;case 4:[t,r,n]=[u,c,h];break;case 5:[t,r,n]=[h,c,i]}}return[t,r,n,e.length>3?e[3]:1]},M.autodetect.push({p:1,test:(...e)=>{if("array"===l(e=c(e,"hcg"))&&3===e.length)return"hcg"}});F.hcg=(e,t,r)=>ne(e,t,r,"hcg");const{cos:se}=Math,{min:fe,sqrt:le,acos:ce}=Math;x.prototype.hsi=function(){return((...e)=>{let t,[r,n,o]=c(e,"rgb");r/=255,n/=255,o/=255;const a=fe(r,n,o),s=(r+n+o)/3,f=s>0?1-a/s:0;return 0===f?t=NaN:(t=(r-n+(r-o))/2,t/=le((r-n)*(r-n)+(r-o)*(n-o)),t=ce(t),o>n&&(t=m-t),t/=m),[360*t,f,s]})(this._rgb)};v.hsi=(...e)=>new x(...e,"hsi"),M.format.hsi=(...e)=>{e=c(e,"hsi");let t,r,n,[o,s,f]=e;return isNaN(o)&&(o=0),isNaN(s)&&(s=0),o>360&&(o-=360),o<0&&(o+=360),o/=360,o<1/3?(n=(1-s)/3,t=(1+s*se(m*o)/se(p-m*o))/3,r=1-(n+t)):o<2/3?(o-=1/3,t=(1-s)/3,r=(1+s*se(m*o)/se(p-m*o))/3,n=1-(t+r)):(o-=2/3,r=(1-s)/3,n=(1+s*se(m*o)/se(p-m*o))/3,t=1-(r+n)),t=a(f*t*3),r=a(f*r*3),n=a(f*n*3),[255*t,255*r,255*n,e.length>3?e[3]:1]},M.autodetect.push({p:2,test:(...e)=>{if("array"===l(e=c(e,"hsi"))&&3===e.length)return"hsi"}});F.hsi=(e,t,r)=>ne(e,t,r,"hsi");const ie=(...e)=>{e=c(e,"hsl");const[t,r,n]=e;let o,a,s;if(0===r)o=a=s=255*n;else{const e=[0,0,0],f=[0,0,0],l=n<.5?n*(1+r):n+r-n*r,c=2*n-l,i=t/360;e[0]=i+1/3,e[1]=i,e[2]=i-1/3;for(let t=0;t<3;t++)e[t]<0&&(e[t]+=1),e[t]>1&&(e[t]-=1),6*e[t]<1?f[t]=c+6*(l-c)*e[t]:2*e[t]<1?f[t]=l:3*e[t]<2?f[t]=c+(l-c)*(2/3-e[t])*6:f[t]=c;[o,a,s]=[255*f[0],255*f[1],255*f[2]]}return e.length>3?[o,a,s,e[3]]:[o,a,s,1]},ue=(...e)=>{e=c(e,"rgba");let[t,r,n]=e;t/=255,r/=255,n/=255;const o=h(t,r,n),a=d(t,r,n),s=(a+o)/2;let f,l;return a===o?(f=0,l=Number.NaN):f=s<.5?(a-o)/(a+o):(a-o)/(2-a-o),t==a?l=(r-n)/(a-o):r==a?l=2+(n-t)/(a-o):n==a&&(l=4+(t-r)/(a-o)),l*=60,l<0&&(l+=360),e.length>3&&void 0!==e[3]?[l,f,s,e[3]]:[l,f,s]};x.prototype.hsl=function(){return ue(this._rgb)};v.hsl=(...e)=>new x(...e,"hsl"),M.format.hsl=ie,M.autodetect.push({p:2,test:(...e)=>{if("array"===l(e=c(e,"hsl"))&&3===e.length)return"hsl"}});F.hsl=(e,t,r)=>ne(e,t,r,"hsl");const{floor:he}=Math,{min:de,max:be}=Math;x.prototype.hsv=function(){return((...e)=>{e=c(e,"rgb");let[t,r,n]=e;const o=de(t,r,n),a=be(t,r,n),s=a-o;let f,l,i;return i=a/255,0===a?(f=Number.NaN,l=0):(l=s/a,t===a&&(f=(r-n)/s),r===a&&(f=2+(n-t)/s),n===a&&(f=4+(t-r)/s),f*=60,f<0&&(f+=360)),[f,l,i]})(this._rgb)};v.hsv=(...e)=>new x(...e,"hsv"),M.format.hsv=(...e)=>{e=c(e,"hsv");let t,r,n,[o,a,s]=e;if(s*=255,0===a)t=r=n=s;else{360===o&&(o=0),o>360&&(o-=360),o<0&&(o+=360),o/=60;const e=he(o),f=o-e,l=s*(1-a),c=s*(1-a*f),i=s*(1-a*(1-f));switch(e){case 0:[t,r,n]=[s,i,l];break;case 1:[t,r,n]=[c,s,l];break;case 2:[t,r,n]=[l,s,i];break;case 3:[t,r,n]=[l,c,s];break;case 4:[t,r,n]=[i,l,s];break;case 5:[t,r,n]=[s,l,c]}}return[t,r,n,e.length>3?e[3]:1]},M.autodetect.push({p:2,test:(...e)=>{if("array"===l(e=c(e,"hsv"))&&3===e.length)return"hsv"}});function ge(e,t){let r=e.length;Array.isArray(e[0])||(e=[e]),Array.isArray(t[0])||(t=t.map((e=>[e])));let n=t[0].length,o=t[0].map(((e,r)=>t.map((e=>e[r])))),a=e.map((e=>o.map((t=>Array.isArray(e)?e.reduce(((e,r,n)=>e+r*(t[n]||0)),0):t.reduce(((t,r)=>t+r*e),0)))));return 1===r&&(a=a[0]),1===n?a.map((e=>e[0])):a}F.hsv=(e,t,r)=>ne(e,t,r,"hsv");const me=(...e)=>{e=c(e,"lab");const[t,r,n,...o]=e,[a,s,f]=(l=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],i=ge([[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],[t,r,n]),ge(l,i.map((e=>e**3))));var l,i;const[u,h,d]=G(a,s,f);return[u,h,d,...o.length>0&&o[0]<1?[o[0]]:[]]};const pe=(...e)=>{const[t,r,n,...o]=c(e,"rgb");return[...function(e){const t=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],r=ge([[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],e);return ge(t,r.map((e=>Math.cbrt(e))))}(X(t,r,n)),...o.length>0&&o[0]<1?[o[0]]:[]]};x.prototype.oklab=function(){return pe(this._rgb)};Object.assign(v,{oklab:(...e)=>new x(...e,"oklab")}),M.format.oklab=me,M.autodetect.push({p:2,test:(...e)=>{if("array"===l(e=c(e,"oklab"))&&3===e.length)return"oklab"}});F.oklab=(e,t,r)=>{const n=e.oklab(),o=t.oklab();return new x(n[0]+r*(o[0]-n[0]),n[1]+r*(o[1]-n[1]),n[2]+r*(o[2]-n[2]),"oklab")};F.oklch=(e,t,r)=>ne(e,t,r,"oklch");const{pow:we,sqrt:ye,PI:ke,cos:Me,sin:xe,atan2:ve}=Math;const Ne=(e,t)=>{const r=e.length,n=[0,0,0,0];for(let o=0;o<e.length;o++){const a=e[o],s=t[o]/r,f=a._rgb;n[0]+=we(f[0],2)*s,n[1]+=we(f[1],2)*s,n[2]+=we(f[2],2)*s,n[3]+=f[3]*s}return n[0]=ye(n[0]),n[1]=ye(n[1]),n[2]=ye(n[2]),n[3]>.9999999&&(n[3]=1),new x(s(n))},{pow:_e}=Math;function Ae(e){let t="rgb",r=v("#ccc"),n=0,o=[0,1],s=[],f=[0,0],c=!1,i=[],u=!1,h=0,d=1,b=!1,g={},m=!0,p=1;const w=function(e){if((e=e||["#fff","#000"])&&"string"===l(e)&&v.brewer&&v.brewer[e.toLowerCase()]&&(e=v.brewer[e.toLowerCase()]),"array"===l(e)){1===e.length&&(e=[e[0],e[0]]),e=e.slice(0);for(let t=0;t<e.length;t++)e[t]=v(e[t]);s.length=0;for(let t=0;t<e.length;t++)s.push(t/(e.length-1))}return x(),i=e};let y=e=>e,k=e=>e;const M=function(e,n){let o,u;if(null==n&&(n=!1),isNaN(e)||null===e)return r;if(n)u=e;else if(c&&c.length>2){u=function(e){if(null!=c){const t=c.length-1;let r=0;for(;r<t&&e>=c[r];)r++;return r-1}return 0}(e)/(c.length-2)}else u=d!==h?(e-h)/(d-h):1;u=k(u),n||(u=y(u)),1!==p&&(u=_e(u,p)),u=f[0]+u*(1-f[0]-f[1]),u=a(u,0,1);const b=Math.floor(1e4*u);if(m&&g[b])o=g[b];else{if("array"===l(i))for(let e=0;e<s.length;e++){const r=s[e];if(u<=r){o=i[e];break}if(u>=r&&e===s.length-1){o=i[e];break}if(u>r&&u<s[e+1]){u=(u-r)/(s[e+1]-r),o=v.interpolate(i[e],i[e+1],u,t);break}}else"function"===l(i)&&(o=i(u));m&&(g[b]=o)}return o};var x=()=>g={};w(e);const N=function(e){const t=v(M(e));return u&&t[u]?t[u]():t};return N.classes=function(e){if(null!=e){if("array"===l(e))c=e,o=[e[0],e[e.length-1]];else{const t=v.analyze(o);c=0===e?[t.min,t.max]:v.limits(t,"e",e)}return N}return c},N.domain=function(e){if(!arguments.length)return o;h=e[0],d=e[e.length-1],s=[];const t=i.length;if(e.length===t&&h!==d)for(let t of Array.from(e))s.push((t-h)/(d-h));else{for(let e=0;e<t;e++)s.push(e/(t-1));if(e.length>2){const t=e.map(((t,r)=>r/(e.length-1))),r=e.map((e=>(e-h)/(d-h)));r.every(((e,r)=>t[r]===e))||(k=e=>{if(e<=0||e>=1)return e;let n=0;for(;e>=r[n+1];)n++;const o=(e-r[n])/(r[n+1]-r[n]);return t[n]+o*(t[n+1]-t[n])})}}return o=[h,d],N},N.mode=function(e){return arguments.length?(t=e,x(),N):t},N.range=function(e,t){return w(e),N},N.out=function(e){return u=e,N},N.spread=function(e){return arguments.length?(n=e,N):n},N.correctLightness=function(e){return null==e&&(e=!0),b=e,x(),y=b?function(e){const t=M(0,!0).lab()[0],r=M(1,!0).lab()[0],n=t>r;let o=M(e,!0).lab()[0];const a=t+(r-t)*e;let s=o-a,f=0,l=1,c=20;for(;Math.abs(s)>.01&&c-- >0;)n&&(s*=-1),s<0?(f=e,e+=.5*(l-e)):(l=e,e+=.5*(f-e)),o=M(e,!0).lab()[0],s=o-a;return e}:e=>e,N},N.padding=function(e){return null!=e?("number"===l(e)&&(e=[e,e]),f=e,N):f},N.colors=function(t,r){arguments.length<2&&(r="hex");let n=[];if(0===arguments.length)n=i.slice(0);else if(1===t)n=[N(.5)];else if(t>1){const e=o[0],r=o[1]-e;n=function(e,t){let r=[],n=e<t,o=t;for(let t=e;n?t<o:t>o;n?t++:t--)r.push(t);return r}(0,t).map((n=>N(e+n/(t-1)*r)))}else{e=[];let t=[];if(c&&c.length>2)for(let e=1,r=c.length,n=1<=r;n?e<r:e>r;n?e++:e--)t.push(.5*(c[e-1]+c[e]));else t=o;n=t.map((e=>N(e)))}return v[r]&&(n=n.map((e=>e[r]()))),n},N.cache=function(e){return null!=e?(m=e,N):m},N.gamma=function(e){return null!=e?(p=e,N):p},N.nodata=function(e){return null!=e?(r=v(e),N):r},N}const{round:je}=Math;x.prototype.rgb=function(e=!0){return!1===e?this._rgb.slice(0,3):this._rgb.slice(0,3).map(je)},x.prototype.rgba=function(e=!0){return this._rgb.slice(0,4).map(((t,r)=>r<3?!1===e?t:je(t):t))};Object.assign(v,{rgb:(...e)=>new x(...e,"rgb")}),M.format.rgb=(...e)=>{const t=c(e,"rgba");return void 0===t[3]&&(t[3]=1),t},M.autodetect.push({p:3,test:(...e)=>{if("array"===l(e=c(e,"rgba"))&&(3===e.length||4===e.length&&"number"==l(e[3])&&e[3]>=0&&e[3]<=1))return"rgb"}});const Ee=(e,t,r)=>{if(!Ee[r])throw new Error("unknown blend mode "+r);return Ee[r](e,t)},Ce=e=>(t,r)=>{const n=v(r).rgb(),o=v(t).rgb();return v.rgb(e(n,o))},Re=e=>(t,r)=>{const n=[];return n[0]=e(t[0],r[0]),n[1]=e(t[1],r[1]),n[2]=e(t[2],r[2]),n};Ee.normal=Ce(Re((e=>e))),Ee.multiply=Ce(Re(((e,t)=>e*t/255))),Ee.screen=Ce(Re(((e,t)=>255*(1-(1-e/255)*(1-t/255))))),Ee.overlay=Ce(Re(((e,t)=>t<128?2*e*t/255:255*(1-2*(1-e/255)*(1-t/255))))),Ee.darken=Ce(Re(((e,t)=>e>t?t:e))),Ee.lighten=Ce(Re(((e,t)=>e>t?e:t))),Ee.dodge=Ce(Re(((e,t)=>255===e||(e=t/255*255/(1-e/255))>255?255:e))),Ee.burn=Ce(Re(((e,t)=>255*(1-(1-t/255)/(e/255)))));const{pow:Pe,sin:$e,cos:Be}=Math;const{floor:Oe,random:Le}=Math;const{log:Ye,pow:Ge,floor:qe,abs:ze}=Math;function Xe(e,t=null){const r={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0};return"object"===l(e)&&(e=Object.values(e)),e.forEach((e=>{t&&"object"===l(e)&&(e=e[t]),null==e||isNaN(e)||(r.values.push(e),r.sum+=e,e<r.min&&(r.min=e),e>r.max&&(r.max=e),r.count+=1)})),r.domain=[r.min,r.max],r.limits=(e,t)=>Se(r,e,t),r}function Se(e,t="equal",r=7){"array"==l(e)&&(e=Xe(e));const{min:n,max:o}=e,a=e.values.sort(((e,t)=>e-t));if(1===r)return[n,o];const s=[];if("c"===t.substr(0,1)&&(s.push(n),s.push(o)),"e"===t.substr(0,1)){s.push(n);for(let e=1;e<r;e++)s.push(n+e/r*(o-n));s.push(o)}else if("l"===t.substr(0,1)){if(n<=0)throw new Error("Logarithmic scales are only possible for values > 0");const e=Math.LOG10E*Ye(n),t=Math.LOG10E*Ye(o);s.push(n);for(let n=1;n<r;n++)s.push(Ge(10,e+n/r*(t-e)));s.push(o)}else if("q"===t.substr(0,1)){s.push(n);for(let e=1;e<r;e++){const t=(a.length-1)*e/r,n=qe(t);if(n===t)s.push(a[n]);else{const e=t-n;s.push(a[n]*(1-e)+a[n+1]*e)}}s.push(o)}else if("k"===t.substr(0,1)){let e;const t=a.length,f=new Array(t),l=new Array(r);let c=!0,i=0,u=null;u=[],u.push(n);for(let e=1;e<r;e++)u.push(n+e/r*(o-n));for(u.push(o);c;){for(let e=0;e<r;e++)l[e]=0;for(let e=0;e<t;e++){const t=a[e];let n,o=Number.MAX_VALUE;for(let a=0;a<r;a++){const r=ze(u[a]-t);r<o&&(o=r,n=a),l[n]++,f[e]=n}}const n=new Array(r);for(let e=0;e<r;e++)n[e]=null;for(let r=0;r<t;r++)e=f[r],null===n[e]?n[e]=a[r]:n[e]+=a[r];for(let e=0;e<r;e++)n[e]*=1/l[e];c=!1;for(let e=0;e<r;e++)if(n[e]!==u[e]){c=!0;break}u=n,i++,i>200&&(c=!1)}const h={};for(let e=0;e<r;e++)h[e]=[];for(let r=0;r<t;r++)e=f[r],h[e].push(a[r]);let d=[];for(let e=0;e<r;e++)d.push(h[e][0]),d.push(h[e][h[e].length-1]);d=d.sort(((e,t)=>e-t)),s.push(d[0]);for(let e=1;e<d.length;e+=2){const t=d[e];isNaN(t)||-1!==s.indexOf(t)||s.push(t)}}return s} |