var c=Object.defineProperty;var g=(e,t,o)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var a=(e,t,o)=>(g(e,typeof t!="symbol"?t+"":t,o),o);import{t as P,ao as m,ah as b,r as d}from"./index.f2790301.js";const S=e=>{const t=P(e,(o,s)=>{if(typeof o!="number"){if(s==="a")return null;throw new Error(`Invalid RGB value: ${JSON.stringify(e)}`)}let i=m(o*(s==="a"?255:1),0,255);return i=Math.round(i).toString(16),i.length===1?`0${i}`:i});return`#${t.r}${t.g}${t.b}${t.a||""}`};class C{constructor(t){a(this,"a");a(this,"r");a(this,"g");a(this,"b");a(this,"stops",[]);t&&(t.stops?t.stops.forEach(({position:o,color:s})=>{this.addStop(o,s)}):t.r&&t.g&&t.b&&t.a&&Object.keys(t.a.stops).forEach(o=>{var i,r,n,p,l,h,f,u;const s=parseFloat(o);this.addStop(s,{r:(r=(i=t.r)==null?void 0:i.stops[s])!=null?r:0,g:(p=(n=t.g)==null?void 0:n.stops[s])!=null?p:0,b:(h=(l=t.b)==null?void 0:l.stops[s])!=null?h:0,a:(u=(f=t.a)==null?void 0:f.stops[s])!=null?u:0})}))}addStop(t,o){typeof o=="string"&&(o=b(o)),typeof o.a>"u"&&(o.a=1),this.stops.push({position:t,color:o})}removeStopByPosition(t){const o=this.stops.findIndex(s=>s.position===t);o!==-1&&this.removeStop(o)}removeStop(t){this.stops.splice(t,1)}get stopsSortedByPosition(){return[...this.stops].sort((t,o)=>t.position>o.position?1:0)}getColorAtPosition(t){return this.interpolateColor(t)}closestStopToPosition(t){const o=this.nextStopFromPosition(t),s=this.previousStopFromPosition(t);if(!o||!s)return o||s||void 0;const i=o.position-t,r=s.position-t;return Math.abs(i)<=Math.abs(r)?o:s}nextStopFromPosition(t){return this.stopsSortedByPosition.find(o=>o.position>t)}previousStopFromPosition(t){return this.stopsSortedByPosition.reverse().find(o=>o.position<=t)}interpolateColor(t){var i,r;const o=this.nextStopFromPosition(t),s=this.previousStopFromPosition(t);return!o||!s?o?o.color:s?s.color:{r:0,g:0,b:0}:{r:this.interpolateValues(o.color.r,s.color.r,o.position,s.position,t),g:this.interpolateValues(o.color.g,s.color.g,o.position,s.position,t),b:this.interpolateValues(o.color.b,s.color.b,o.position,s.position,t),a:this.interpolateValues((i=o.color.a)!=null?i:1,(r=s.color.a)!=null?r:1,o.position,s.position,t)}}interpolateValues(t,o,s,i,r){const n=r-s,p=i-s;return t+(o-t)*(n*(1/p))}toCanvasGradient(t){let o=null;const s=this.stopsSortedByPosition;for(let i=0;i<s.length;++i){const r=s[i];let n=r.position;if(n>=0){n=Math.min(n,1);const p=d(S(this.getColorAtPosition(n)));t.addColorStop(n,p),o=r}}if(o){const i=d(S(this.getColorAtPosition(o.position)));t.addColorStop(1,i)}return t}}export{C,S as r};
//# sourceMappingURL=colorGradient.9d411cb1.js.map
