diff --git a/dist/color-thief.cjs b/dist/color-thief.cjs index 6e4286a..0769176 100644 --- a/dist/color-thief.cjs +++ b/dist/color-thief.cjs @@ -1 +1 @@ -if(!t)var t={map:function(t,r){var n={};return r?t.map(function(t,o){return n.index=o,r.call(n,t)}):t.slice()},naturalOrder:function(t,r){return tr?1:0},sum:function(t,r){var n={};return t.reduce(r?function(t,o,e){return n.index=e,t+r.call(n,o)}:function(t,r){return t+r},0)},max:function(r,n){return Math.max.apply(null,n?t.map(r,n):r)}};var r=function(){var r=5,n=8-r;function o(t,n,o){return(t<<2*r)+(n<h/2){for(e=n.copy(),a=n.copy(),u=(r=i-n[c])<=(o=n[f]-i)?Math.min(n[f]-1,~~(i+o/2)):Math.max(n[c],~~(i-1-r/2));!v[u];)u++;for(s=l[u];!s&&v[u-1];)s=l[--u];return e[f]=u,a[c]=e[f]+1,[e,a]}}(u==e?"r":u==a?"g":"b")}}return a.prototype={volume:function(t){var r=this;return r._volume&&!t||(r._volume=(r.r2-r.r1+1)*(r.g2-r.g1+1)*(r.b2-r.b1+1)),r._volume},count:function(t){var r=this,n=r.histo;if(!r._count_set||t){var e,a,u,i=0;for(e=r.r1;e<=r.r2;e++)for(a=r.g1;a<=r.g2;a++)for(u=r.b1;u<=r.b2;u++)i+=n[o(e,a,u)]||0;r._count=i,r._count_set=!0}return r._count},copy:function(){var t=this;return new a(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var n=this,e=n.histo;if(!n._avg||t){var a,u,i,c,f=0,s=1<<8-r,h=0,v=0,l=0;for(u=n.r1;u<=n.r2;u++)for(i=n.g1;i<=n.g2;i++)for(c=n.b1;c<=n.b2;c++)f+=a=e[o(u,i,c)]||0,h+=a*(u+.5)*s,v+=a*(i+.5)*s,l+=a*(c+.5)*s;n._avg=f?[~~(h/f),~~(v/f),~~(l/f)]:[~~(s*(n.r1+n.r2+1)/2),~~(s*(n.g1+n.g2+1)/2),~~(s*(n.b1+n.b2+1)/2)]}return n._avg},contains:function(t){var r=this,o=t[0]>>n;return gval=t[1]>>n,bval=t[2]>>n,o>=r.r1&&o<=r.r2&&gval>=r.g1&&gval<=r.g2&&bval>=r.b1&&bval<=r.b2}},u.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n251&&e[1]>251&&e[2]>251&&(r[o].color=[255,255,255])}},{quantize:function(c,f){if(!c.length||f<2||f>256)return!1;var s=function(t){var e,a=new Array(1<<3*r);return t.forEach(function(t){e=o(t[0]>>n,t[1]>>n,t[2]>>n),a[e]=(a[e]||0)+1}),a}(c);s.forEach(function(){});var h=function(t,r){var o,e,u,i=1e6,c=0,f=1e6,s=0,h=1e6,v=0;return t.forEach(function(t){(o=t[0]>>n)c&&(c=o),(e=t[1]>>n)s&&(s=e),(u=t[2]>>n)v&&(v=u)}),new a(i,c,f,s,h,v,r)}(c,s),v=new e(function(r,n){return t.naturalOrder(r.count(),n.count())});function l(t,r){for(var n,o=t.size(),e=0;e<1e3;){if(o>=r)return;if(e++>1e3)return;if((n=t.pop()).count()){var a=i(s,n),u=a[0],c=a[1];if(!u)return;t.push(u),c&&(t.push(c),o++)}else t.push(n),e++}}v.push(h),l(v,.75*f);for(var g=new e(function(r,n){return t.naturalOrder(r.count()*r.volume(),n.count()*n.volume())});v.size();)g.push(v.pop());l(g,f);for(var m=new u;g.size();)m.push(g.pop());return m}}}().quantize,n=function(t){this.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)};module.exports=/*#__PURE__*/function(){function t(){var t=this;this.getColorAsync=function(r,n,o){var e=t;t.getImageDataFromURL(r).then(function(t){var r=document.createElement("img");r.addEventListener("load",function(){var t=e.getPalette(r,5,o);n(t[0],r)}),r.src=t})},this.getColorPromise=function(r,n){return new Promise(function(o,e){var a=t;t.getImageDataFromURL(r).then(function(t){var r=document.createElement("img");r.addEventListener("load",function(){var t=a.getPalette(r,5,n);o({color:t[0],img:r})}),r.src=t}).catch(function(t){e(t)})})}}var o=t.prototype;return o.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},o.getPalette=function(t,o,e){void 0===e&&(e=10);var a=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===n||!Number.isInteger(n)||n<1)&&(n=10),{colorCount:r,quality:n}}({colorCount:o,quality:e}),u=new n(t),i=function(t,r,n){for(var o=[],e=0;e=125)&&(u>250&&i>250&&c>250||o.push([u,i,c]))}return o}(u.getImageData().data,u.width*u.height,a.quality),c=r(i,a.colorCount);return c?c.palette():null},o.getColorFromUrl=function(t,r,n){var o=this;void 0===n&&(n=10);var e=document.createElement("img");e.addEventListener("load",function(){var a=o.getPalette(e,5,n);r(a[0],t)}),e.src=t},o.getImageData=function(t,r){fetch(t).then(function(t){200===t.status&&t.arrayBuffer().then(function(t){for(var n=new Uint8Array(t),o=new Array(n.length),e=0;en?1:0},sum:function(t,n){var r={};return t.reduce(n?function(t,e,o){return r.index=o,t+n.call(r,e)}:function(t,n){return t+n},0)},max:function(n,r){return Math.max.apply(null,r?t.map(n,r):n)}};var n=function(){var n=5,r=8-n;function e(t,r,e){return(t<<2*n)+(r<h/2){for(o=r.copy(),a=r.copy(),i=(n=u-r[c])<=(e=r[f]-u)?Math.min(r[f]-1,~~(u+e/2)):Math.max(r[c],~~(u-1-n/2));!v[i];)i++;for(s=l[i];!s&&v[i-1];)s=l[--i];return o[f]=i,a[c]=o[f]+1,[o,a]}}(i==o?"r":i==a?"g":"b")}}return a.prototype={volume:function(t){var n=this;return n._volume&&!t||(n._volume=(n.r2-n.r1+1)*(n.g2-n.g1+1)*(n.b2-n.b1+1)),n._volume},count:function(t){var n=this,r=n.histo;if(!n._count_set||t){var o,a,i,u=0;for(o=n.r1;o<=n.r2;o++)for(a=n.g1;a<=n.g2;a++)for(i=n.b1;i<=n.b2;i++)u+=r[e(o,a,i)]||0;n._count=u,n._count_set=!0}return n._count},copy:function(){var t=this;return new a(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,o=r.histo;if(!r._avg||t){var a,i,u,c,f=0,s=1<<8-n,h=0,v=0,l=0;for(i=r.r1;i<=r.r2;i++)for(u=r.g1;u<=r.g2;u++)for(c=r.b1;c<=r.b2;c++)f+=a=o[e(i,u,c)]||0,h+=a*(i+.5)*s,v+=a*(u+.5)*s,l+=a*(c+.5)*s;r._avg=f?[~~(h/f),~~(v/f),~~(l/f)]:[~~(s*(r.r1+r.r2+1)/2),~~(s*(r.g1+r.g2+1)/2),~~(s*(r.b1+r.b2+1)/2)]}return r._avg},contains:function(t){var n=this,e=t[0]>>r;return gval=t[1]>>r,bval=t[2]>>r,e>=n.r1&&e<=n.r2&&gval>=n.g1&&gval<=n.g2&&bval>=n.b1&&bval<=n.b2}},i.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var n=this.vboxes,r=0;r251&&o[1]>251&&o[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(c,f){if(!c.length||f<2||f>256)return!1;var s=function(t){var o,a=new Array(1<<3*n);return t.forEach(function(t){o=e(t[0]>>r,t[1]>>r,t[2]>>r),a[o]=(a[o]||0)+1}),a}(c);s.forEach(function(){});var h=function(t,n){var e,o,i,u=1e6,c=0,f=1e6,s=0,h=1e6,v=0;return t.forEach(function(t){(e=t[0]>>r)c&&(c=e),(o=t[1]>>r)s&&(s=o),(i=t[2]>>r)v&&(v=i)}),new a(u,c,f,s,h,v,n)}(c,s),v=new o(function(n,r){return t.naturalOrder(n.count(),r.count())});function l(t,n){for(var r,e=t.size(),o=0;o<1e3;){if(e>=n)return;if(o++>1e3)return;if((r=t.pop()).count()){var a=u(s,r),i=a[0],c=a[1];if(!i)return;t.push(i),c&&(t.push(c),e++)}else t.push(r),o++}}v.push(h),l(v,.75*f);for(var g=new o(function(n,r){return t.naturalOrder(n.count()*n.volume(),r.count()*r.volume())});v.size();)g.push(v.pop());l(g,f);for(var m=new i;g.size();)m.push(g.pop());return m}}}().quantize,r=function(t){if(this.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},t instanceof HTMLImageElement)this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height);else{if(!(t instanceof HTMLCanvasElement))throw new Error("One of the two constructor arguments needed");this.canvas=t,this.context=this.canvas.getContext("2d"),this.width=this.canvas.width,this.height=this.canvas.height}};module.exports=/*#__PURE__*/function(){function t(){}var e=t.prototype;return e.getColor=function(t,n){return void 0===n&&(n=10),this.getPalette(t,5,n)[0]},e.getPalette=function(t,e,o){void 0===o&&(o=10);var a=function(t){var n=t.colorCount,r=t.quality;if(void 0!==n&&Number.isInteger(n)){if(1===n)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");n=Math.max(n,2),n=Math.min(n,20)}else n=10;return(void 0===r||!Number.isInteger(r)||r<1)&&(r=10),{colorCount:n,quality:r}}({colorCount:e,quality:o}),i=new r(t),u=function(t,n,r){for(var e=[],o=0;o=125)&&(i>250&&u>250&&c>250||e.push([i,u,c]))}return e}(i.getImageData().data,i.width*i.height,a.quality),c=n(u,a.colorCount);return c?c.palette():null},e.getColorFromUrl=function(t,n,r){var e=this;void 0===r&&(r=10);var o=document.createElement("img");o.addEventListener("load",function(){var a=e.getPalette(o,5,r);n(a[0],t)}),o.src=t},e.getImageData=function(t,n){fetch(t).then(function(t){200===t.status&&t.arrayBuffer().then(function(t){for(var r=new Uint8Array(t),e=new Array(r.length),o=0;o void, quality: number | null) => void; + getColorAsync(imageUrl: string, callback: (data: ColorThiefResult, img: HTMLImageElement) => void, quality: number | null): void; /** - * Same as getColor, but promise-based + * Get the dominant color of an image from an image URL promise-based. Replaces getColorFromUrl * @param {string} imageUrl * @param {number?} quality (Optional) 1 = highest quality, 10 = default. The bigger the number, the * faster a color will be returned but the greater the likelihood that it will not be the visually * most dominant color. * @returns {Promise<{ 'color': ColorThiefResult, 'img': HTMLImageElement }>} Returns a promise resolving to an object containing the color and the image element */ - getColorPromise: (imageUrl: string, quality: number | null) => Promise<{ - "color": ColorThiefResult; - "img": HTMLImageElement; + getColorFromURLPromise(imageUrl: string, quality: number | null): Promise<{ + 'color': ColorThiefResult; + 'img': HTMLImageElement; }>; } export default ColorThief; diff --git a/dist/color-thief.min.js b/dist/color-thief.min.js index 483b5c2..93dbc50 100644 --- a/dist/color-thief.min.js +++ b/dist/color-thief.min.js @@ -1,2 +1,2 @@ -!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t||self).ColorThief=n()}(this,function(){if(!t)var t={map:function(t,n){var r={};return n?t.map(function(t,e){return r.index=e,n.call(r,t)}):t.slice()},naturalOrder:function(t,n){return tn?1:0},sum:function(t,n){var r={};return t.reduce(n?function(t,e,o){return r.index=o,t+n.call(r,e)}:function(t,n){return t+n},0)},max:function(n,r){return Math.max.apply(null,r?t.map(n,r):n)}};var n=function(){var n=5,r=8-n;function e(t,r,e){return(t<<2*n)+(r<h/2){for(o=r.copy(),i=r.copy(),a=(n=u-r[c])<=(e=r[f]-u)?Math.min(r[f]-1,~~(u+e/2)):Math.max(r[c],~~(u-1-n/2));!l[a];)a++;for(s=v[a];!s&&l[a-1];)s=v[--a];return o[f]=a,i[c]=o[f]+1,[o,i]}}(a==o?"r":a==i?"g":"b")}}return i.prototype={volume:function(t){var n=this;return n._volume&&!t||(n._volume=(n.r2-n.r1+1)*(n.g2-n.g1+1)*(n.b2-n.b1+1)),n._volume},count:function(t){var n=this,r=n.histo;if(!n._count_set||t){var o,i,a,u=0;for(o=n.r1;o<=n.r2;o++)for(i=n.g1;i<=n.g2;i++)for(a=n.b1;a<=n.b2;a++)u+=r[e(o,i,a)]||0;n._count=u,n._count_set=!0}return n._count},copy:function(){var t=this;return new i(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,o=r.histo;if(!r._avg||t){var i,a,u,c,f=0,s=1<<8-n,h=0,l=0,v=0;for(a=r.r1;a<=r.r2;a++)for(u=r.g1;u<=r.g2;u++)for(c=r.b1;c<=r.b2;c++)f+=i=o[e(a,u,c)]||0,h+=i*(a+.5)*s,l+=i*(u+.5)*s,v+=i*(c+.5)*s;r._avg=f?[~~(h/f),~~(l/f),~~(v/f)]:[~~(s*(r.r1+r.r2+1)/2),~~(s*(r.g1+r.g2+1)/2),~~(s*(r.b1+r.b2+1)/2)]}return r._avg},contains:function(t){var n=this,e=t[0]>>r;return gval=t[1]>>r,bval=t[2]>>r,e>=n.r1&&e<=n.r2&&gval>=n.g1&&gval<=n.g2&&bval>=n.b1&&bval<=n.b2}},a.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var n=this.vboxes,r=0;r251&&o[1]>251&&o[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(c,f){if(!c.length||f<2||f>256)return!1;var s=function(t){var o,i=new Array(1<<3*n);return t.forEach(function(t){o=e(t[0]>>r,t[1]>>r,t[2]>>r),i[o]=(i[o]||0)+1}),i}(c);s.forEach(function(){});var h=function(t,n){var e,o,a,u=1e6,c=0,f=1e6,s=0,h=1e6,l=0;return t.forEach(function(t){(e=t[0]>>r)c&&(c=e),(o=t[1]>>r)s&&(s=o),(a=t[2]>>r)l&&(l=a)}),new i(u,c,f,s,h,l,n)}(c,s),l=new o(function(n,r){return t.naturalOrder(n.count(),r.count())});function v(t,n){for(var r,e=t.size(),o=0;o<1e3;){if(e>=n)return;if(o++>1e3)return;if((r=t.pop()).count()){var i=u(s,r),a=i[0],c=i[1];if(!a)return;t.push(a),c&&(t.push(c),e++)}else t.push(r),o++}}l.push(h),v(l,.75*f);for(var g=new o(function(n,r){return t.naturalOrder(n.count()*n.volume(),r.count()*r.volume())});l.size();)g.push(l.pop());v(g,f);for(var m=new a;g.size();)m.push(g.pop());return m}}}().quantize,r=function(t){this.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)};/*#__PURE__*/ -return function(){function t(){var t=this;this.getColorAsync=function(n,r,e){var o=t;t.getImageDataFromURL(n).then(function(t){var n=document.createElement("img");n.addEventListener("load",function(){var t=o.getPalette(n,5,e);r(t[0],n)}),n.src=t})},this.getColorPromise=function(n,r){return new Promise(function(e,o){var i=t;t.getImageDataFromURL(n).then(function(t){var n=document.createElement("img");n.addEventListener("load",function(){var t=i.getPalette(n,5,r);e({color:t[0],img:n})}),n.src=t}).catch(function(t){o(t)})})}}var e=t.prototype;return e.getColor=function(t,n){return void 0===n&&(n=10),this.getPalette(t,5,n)[0]},e.getPalette=function(t,e,o){void 0===o&&(o=10);var i=function(t){var n=t.colorCount,r=t.quality;if(void 0!==n&&Number.isInteger(n)){if(1===n)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");n=Math.max(n,2),n=Math.min(n,20)}else n=10;return(void 0===r||!Number.isInteger(r)||r<1)&&(r=10),{colorCount:n,quality:r}}({colorCount:e,quality:o}),a=new r(t),u=function(t,n,r){for(var e=[],o=0;o=125)&&(a>250&&u>250&&c>250||e.push([a,u,c]))}return e}(a.getImageData().data,a.width*a.height,i.quality),c=n(u,i.colorCount);return c?c.palette():null},e.getColorFromUrl=function(t,n,r){var e=this;void 0===r&&(r=10);var o=document.createElement("img");o.addEventListener("load",function(){var i=e.getPalette(o,5,r);n(i[0],t)}),o.src=t},e.getImageData=function(t,n){fetch(t).then(function(t){200===t.status&&t.arrayBuffer().then(function(t){for(var r=new Uint8Array(t),e=new Array(r.length),o=0;on?1:0},sum:function(t,n){var r={};return t.reduce(n?function(t,e,o){return r.index=o,t+n.call(r,e)}:function(t,n){return t+n},0)},max:function(n,r){return Math.max.apply(null,r?t.map(n,r):n)}};var n=function(){var n=5,r=8-n;function e(t,r,e){return(t<<2*n)+(r<h/2){for(o=r.copy(),i=r.copy(),a=(n=u-r[c])<=(e=r[f]-u)?Math.min(r[f]-1,~~(u+e/2)):Math.max(r[c],~~(u-1-n/2));!l[a];)a++;for(s=v[a];!s&&l[a-1];)s=v[--a];return o[f]=a,i[c]=o[f]+1,[o,i]}}(a==o?"r":a==i?"g":"b")}}return i.prototype={volume:function(t){var n=this;return n._volume&&!t||(n._volume=(n.r2-n.r1+1)*(n.g2-n.g1+1)*(n.b2-n.b1+1)),n._volume},count:function(t){var n=this,r=n.histo;if(!n._count_set||t){var o,i,a,u=0;for(o=n.r1;o<=n.r2;o++)for(i=n.g1;i<=n.g2;i++)for(a=n.b1;a<=n.b2;a++)u+=r[e(o,i,a)]||0;n._count=u,n._count_set=!0}return n._count},copy:function(){var t=this;return new i(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,o=r.histo;if(!r._avg||t){var i,a,u,c,f=0,s=1<<8-n,h=0,l=0,v=0;for(a=r.r1;a<=r.r2;a++)for(u=r.g1;u<=r.g2;u++)for(c=r.b1;c<=r.b2;c++)f+=i=o[e(a,u,c)]||0,h+=i*(a+.5)*s,l+=i*(u+.5)*s,v+=i*(c+.5)*s;r._avg=f?[~~(h/f),~~(l/f),~~(v/f)]:[~~(s*(r.r1+r.r2+1)/2),~~(s*(r.g1+r.g2+1)/2),~~(s*(r.b1+r.b2+1)/2)]}return r._avg},contains:function(t){var n=this,e=t[0]>>r;return gval=t[1]>>r,bval=t[2]>>r,e>=n.r1&&e<=n.r2&&gval>=n.g1&&gval<=n.g2&&bval>=n.b1&&bval<=n.b2}},a.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var n=this.vboxes,r=0;r251&&o[1]>251&&o[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(c,f){if(!c.length||f<2||f>256)return!1;var s=function(t){var o,i=new Array(1<<3*n);return t.forEach(function(t){o=e(t[0]>>r,t[1]>>r,t[2]>>r),i[o]=(i[o]||0)+1}),i}(c);s.forEach(function(){});var h=function(t,n){var e,o,a,u=1e6,c=0,f=1e6,s=0,h=1e6,l=0;return t.forEach(function(t){(e=t[0]>>r)c&&(c=e),(o=t[1]>>r)s&&(s=o),(a=t[2]>>r)l&&(l=a)}),new i(u,c,f,s,h,l,n)}(c,s),l=new o(function(n,r){return t.naturalOrder(n.count(),r.count())});function v(t,n){for(var r,e=t.size(),o=0;o<1e3;){if(e>=n)return;if(o++>1e3)return;if((r=t.pop()).count()){var i=u(s,r),a=i[0],c=i[1];if(!a)return;t.push(a),c&&(t.push(c),e++)}else t.push(r),o++}}l.push(h),v(l,.75*f);for(var g=new o(function(n,r){return t.naturalOrder(n.count()*n.volume(),r.count()*r.volume())});l.size();)g.push(l.pop());v(g,f);for(var m=new a;g.size();)m.push(g.pop());return m}}}().quantize,r=function(t){if(this.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},t instanceof HTMLImageElement)this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height);else{if(!(t instanceof HTMLCanvasElement))throw new Error("One of the two constructor arguments needed");this.canvas=t,this.context=this.canvas.getContext("2d"),this.width=this.canvas.width,this.height=this.canvas.height}};/*#__PURE__*/ +return function(){function t(){}var e=t.prototype;return e.getColor=function(t,n){return void 0===n&&(n=10),this.getPalette(t,5,n)[0]},e.getPalette=function(t,e,o){void 0===o&&(o=10);var i=function(t){var n=t.colorCount,r=t.quality;if(void 0!==n&&Number.isInteger(n)){if(1===n)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");n=Math.max(n,2),n=Math.min(n,20)}else n=10;return(void 0===r||!Number.isInteger(r)||r<1)&&(r=10),{colorCount:n,quality:r}}({colorCount:e,quality:o}),a=new r(t),u=function(t,n,r){for(var e=[],o=0;o=125)&&(a>250&&u>250&&c>250||e.push([a,u,c]))}return e}(a.getImageData().data,a.width*a.height,i.quality),c=n(u,i.colorCount);return c?c.palette():null},e.getColorFromUrl=function(t,n,r){var e=this;void 0===r&&(r=10);var o=document.createElement("img");o.addEventListener("load",function(){var i=e.getPalette(o,5,r);n(i[0],t)}),o.src=t},e.getImageData=function(t,n){fetch(t).then(function(t){200===t.status&&t.arrayBuffer().then(function(t){for(var r=new Uint8Array(t),e=new Array(r.length),o=0;or?1:0},sum:function(t,r){var n={};return t.reduce(r?function(t,e,o){return n.index=o,t+r.call(n,e)}:function(t,r){return t+r},0)},max:function(r,n){return Math.max.apply(null,n?t.map(r,n):r)}};var r=function(){var r=5,n=8-r;function e(t,n,e){return(t<<2*r)+(n<h/2){for(o=n.copy(),a=n.copy(),u=(r=i-n[c])<=(e=n[f]-i)?Math.min(n[f]-1,~~(i+e/2)):Math.max(n[c],~~(i-1-r/2));!v[u];)u++;for(s=l[u];!s&&v[u-1];)s=l[--u];return o[f]=u,a[c]=o[f]+1,[o,a]}}(u==o?"r":u==a?"g":"b")}}return a.prototype={volume:function(t){var r=this;return r._volume&&!t||(r._volume=(r.r2-r.r1+1)*(r.g2-r.g1+1)*(r.b2-r.b1+1)),r._volume},count:function(t){var r=this,n=r.histo;if(!r._count_set||t){var o,a,u,i=0;for(o=r.r1;o<=r.r2;o++)for(a=r.g1;a<=r.g2;a++)for(u=r.b1;u<=r.b2;u++)i+=n[e(o,a,u)]||0;r._count=i,r._count_set=!0}return r._count},copy:function(){var t=this;return new a(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var n=this,o=n.histo;if(!n._avg||t){var a,u,i,c,f=0,s=1<<8-r,h=0,v=0,l=0;for(u=n.r1;u<=n.r2;u++)for(i=n.g1;i<=n.g2;i++)for(c=n.b1;c<=n.b2;c++)f+=a=o[e(u,i,c)]||0,h+=a*(u+.5)*s,v+=a*(i+.5)*s,l+=a*(c+.5)*s;n._avg=f?[~~(h/f),~~(v/f),~~(l/f)]:[~~(s*(n.r1+n.r2+1)/2),~~(s*(n.g1+n.g2+1)/2),~~(s*(n.b1+n.b2+1)/2)]}return n._avg},contains:function(t){var r=this,e=t[0]>>n;return gval=t[1]>>n,bval=t[2]>>n,e>=r.r1&&e<=r.r2&&gval>=r.g1&&gval<=r.g2&&bval>=r.b1&&bval<=r.b2}},u.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n251&&o[1]>251&&o[2]>251&&(r[e].color=[255,255,255])}},{quantize:function(c,f){if(!c.length||f<2||f>256)return!1;var s=function(t){var o,a=new Array(1<<3*r);return t.forEach(function(t){o=e(t[0]>>n,t[1]>>n,t[2]>>n),a[o]=(a[o]||0)+1}),a}(c);s.forEach(function(){});var h=function(t,r){var e,o,u,i=1e6,c=0,f=1e6,s=0,h=1e6,v=0;return t.forEach(function(t){(e=t[0]>>n)c&&(c=e),(o=t[1]>>n)s&&(s=o),(u=t[2]>>n)v&&(v=u)}),new a(i,c,f,s,h,v,r)}(c,s),v=new o(function(r,n){return t.naturalOrder(r.count(),n.count())});function l(t,r){for(var n,e=t.size(),o=0;o<1e3;){if(e>=r)return;if(o++>1e3)return;if((n=t.pop()).count()){var a=i(s,n),u=a[0],c=a[1];if(!u)return;t.push(u),c&&(t.push(c),e++)}else t.push(n),o++}}v.push(h),l(v,.75*f);for(var g=new o(function(r,n){return t.naturalOrder(r.count()*r.volume(),n.count()*n.volume())});v.size();)g.push(v.pop());l(g,f);for(var m=new u;g.size();)m.push(g.pop());return m}}}().quantize,n=function(t){this.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)},e=/*#__PURE__*/function(){function t(){var t=this;this.getColorAsync=function(r,n,e){var o=t;t.getImageDataFromURL(r).then(function(t){var r=document.createElement("img");r.addEventListener("load",function(){var t=o.getPalette(r,5,e);n(t[0],r)}),r.src=t})},this.getColorPromise=function(r,n){return new Promise(function(e,o){var a=t;t.getImageDataFromURL(r).then(function(t){var r=document.createElement("img");r.addEventListener("load",function(){var t=a.getPalette(r,5,n);e({color:t[0],img:r})}),r.src=t}).catch(function(t){o(t)})})}}var e=t.prototype;return e.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},e.getPalette=function(t,e,o){void 0===o&&(o=10);var a=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===n||!Number.isInteger(n)||n<1)&&(n=10),{colorCount:r,quality:n}}({colorCount:e,quality:o}),u=new n(t),i=function(t,r,n){for(var e=[],o=0;o=125)&&(u>250&&i>250&&c>250||e.push([u,i,c]))}return e}(u.getImageData().data,u.width*u.height,a.quality),c=r(i,a.colorCount);return c?c.palette():null},e.getColorFromUrl=function(t,r,n){var e=this;void 0===n&&(n=10);var o=document.createElement("img");o.addEventListener("load",function(){var a=e.getPalette(o,5,n);r(a[0],t)}),o.src=t},e.getImageData=function(t,r){fetch(t).then(function(t){200===t.status&&t.arrayBuffer().then(function(t){for(var n=new Uint8Array(t),e=new Array(n.length),o=0;on?1:0},sum:function(t,n){var r={};return t.reduce(n?function(t,e,o){return r.index=o,t+n.call(r,e)}:function(t,n){return t+n},0)},max:function(n,r){return Math.max.apply(null,r?t.map(n,r):n)}};var n=function(){var n=5,r=8-n;function e(t,r,e){return(t<<2*n)+(r<h/2){for(o=r.copy(),a=r.copy(),i=(n=u-r[c])<=(e=r[f]-u)?Math.min(r[f]-1,~~(u+e/2)):Math.max(r[c],~~(u-1-n/2));!v[i];)i++;for(s=l[i];!s&&v[i-1];)s=l[--i];return o[f]=i,a[c]=o[f]+1,[o,a]}}(i==o?"r":i==a?"g":"b")}}return a.prototype={volume:function(t){var n=this;return n._volume&&!t||(n._volume=(n.r2-n.r1+1)*(n.g2-n.g1+1)*(n.b2-n.b1+1)),n._volume},count:function(t){var n=this,r=n.histo;if(!n._count_set||t){var o,a,i,u=0;for(o=n.r1;o<=n.r2;o++)for(a=n.g1;a<=n.g2;a++)for(i=n.b1;i<=n.b2;i++)u+=r[e(o,a,i)]||0;n._count=u,n._count_set=!0}return n._count},copy:function(){var t=this;return new a(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,o=r.histo;if(!r._avg||t){var a,i,u,c,f=0,s=1<<8-n,h=0,v=0,l=0;for(i=r.r1;i<=r.r2;i++)for(u=r.g1;u<=r.g2;u++)for(c=r.b1;c<=r.b2;c++)f+=a=o[e(i,u,c)]||0,h+=a*(i+.5)*s,v+=a*(u+.5)*s,l+=a*(c+.5)*s;r._avg=f?[~~(h/f),~~(v/f),~~(l/f)]:[~~(s*(r.r1+r.r2+1)/2),~~(s*(r.g1+r.g2+1)/2),~~(s*(r.b1+r.b2+1)/2)]}return r._avg},contains:function(t){var n=this,e=t[0]>>r;return gval=t[1]>>r,bval=t[2]>>r,e>=n.r1&&e<=n.r2&&gval>=n.g1&&gval<=n.g2&&bval>=n.b1&&bval<=n.b2}},i.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var n=this.vboxes,r=0;r251&&o[1]>251&&o[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(c,f){if(!c.length||f<2||f>256)return!1;var s=function(t){var o,a=new Array(1<<3*n);return t.forEach(function(t){o=e(t[0]>>r,t[1]>>r,t[2]>>r),a[o]=(a[o]||0)+1}),a}(c);s.forEach(function(){});var h=function(t,n){var e,o,i,u=1e6,c=0,f=1e6,s=0,h=1e6,v=0;return t.forEach(function(t){(e=t[0]>>r)c&&(c=e),(o=t[1]>>r)s&&(s=o),(i=t[2]>>r)v&&(v=i)}),new a(u,c,f,s,h,v,n)}(c,s),v=new o(function(n,r){return t.naturalOrder(n.count(),r.count())});function l(t,n){for(var r,e=t.size(),o=0;o<1e3;){if(e>=n)return;if(o++>1e3)return;if((r=t.pop()).count()){var a=u(s,r),i=a[0],c=a[1];if(!i)return;t.push(i),c&&(t.push(c),e++)}else t.push(r),o++}}v.push(h),l(v,.75*f);for(var g=new o(function(n,r){return t.naturalOrder(n.count()*n.volume(),r.count()*r.volume())});v.size();)g.push(v.pop());l(g,f);for(var m=new i;g.size();)m.push(g.pop());return m}}}().quantize,r=function(t){if(this.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},t instanceof HTMLImageElement)this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height);else{if(!(t instanceof HTMLCanvasElement))throw new Error("One of the two constructor arguments needed");this.canvas=t,this.context=this.canvas.getContext("2d"),this.width=this.canvas.width,this.height=this.canvas.height}},e=/*#__PURE__*/function(){function t(){}var e=t.prototype;return e.getColor=function(t,n){return void 0===n&&(n=10),this.getPalette(t,5,n)[0]},e.getPalette=function(t,e,o){void 0===o&&(o=10);var a=function(t){var n=t.colorCount,r=t.quality;if(void 0!==n&&Number.isInteger(n)){if(1===n)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");n=Math.max(n,2),n=Math.min(n,20)}else n=10;return(void 0===r||!Number.isInteger(r)||r<1)&&(r=10),{colorCount:n,quality:r}}({colorCount:e,quality:o}),i=new r(t),u=function(t,n,r){for(var e=[],o=0;o=125)&&(i>250&&u>250&&c>250||e.push([i,u,c]))}return e}(i.getImageData().data,i.width*i.height,a.quality),c=n(u,a.colorCount);return c?c.palette():null},e.getColorFromUrl=function(t,n,r){var e=this;void 0===r&&(r=10);var o=document.createElement("img");o.addEventListener("load",function(){var a=e.getPalette(o,5,r);n(a[0],t)}),o.src=t},e.getImageData=function(t,n){fetch(t).then(function(t){200===t.status&&t.arrayBuffer().then(function(t){for(var r=new Uint8Array(t),e=new Array(r.length),o=0;or?1:0},sum:function(t,r){var n={};return t.reduce(r?function(t,e,o){return n.index=o,t+r.call(n,e)}:function(t,r){return t+r},0)},max:function(r,n){return Math.max.apply(null,n?t.map(r,n):r)}};var r=function(){var r=5,n=8-r;function e(t,n,e){return(t<<2*r)+(n<h/2){for(o=n.copy(),a=n.copy(),u=(r=i-n[c])<=(e=n[s]-i)?Math.min(n[s]-1,~~(i+e/2)):Math.max(n[c],~~(i-1-r/2));!l[u];)u++;for(f=g[u];!f&&l[u-1];)f=g[--u];return o[s]=u,a[c]=o[s]+1,[o,a]}}(u==o?"r":u==a?"g":"b")}}return a.prototype={volume:function(t){var r=this;return r._volume&&!t||(r._volume=(r.r2-r.r1+1)*(r.g2-r.g1+1)*(r.b2-r.b1+1)),r._volume},count:function(t){var r=this,n=r.histo;if(!r._count_set||t){var o,a,u,i=0;for(o=r.r1;o<=r.r2;o++)for(a=r.g1;a<=r.g2;a++)for(u=r.b1;u<=r.b2;u++)i+=n[e(o,a,u)]||0;r._count=i,r._count_set=!0}return r._count},copy:function(){var t=this;return new a(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var n=this,o=n.histo;if(!n._avg||t){var a,u,i,c,s=0,f=1<<8-r,h=0,l=0,g=0;for(u=n.r1;u<=n.r2;u++)for(i=n.g1;i<=n.g2;i++)for(c=n.b1;c<=n.b2;c++)s+=a=o[e(u,i,c)]||0,h+=a*(u+.5)*f,l+=a*(i+.5)*f,g+=a*(c+.5)*f;n._avg=s?[~~(h/s),~~(l/s),~~(g/s)]:[~~(f*(n.r1+n.r2+1)/2),~~(f*(n.g1+n.g2+1)/2),~~(f*(n.b1+n.b2+1)/2)]}return n._avg},contains:function(t){var r=this,e=t[0]>>n;return gval=t[1]>>n,bval=t[2]>>n,e>=r.r1&&e<=r.r2&&gval>=r.g1&&gval<=r.g2&&bval>=r.b1&&bval<=r.b2}},u.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n251&&o[1]>251&&o[2]>251&&(r[e].color=[255,255,255])}},{quantize:function(c,s){if(!c.length||s<2||s>256)return!1;var f=function(t){var o,a=new Array(1<<3*r);return t.forEach(function(t){o=e(t[0]>>n,t[1]>>n,t[2]>>n),a[o]=(a[o]||0)+1}),a}(c);f.forEach(function(){});var h=function(t,r){var e,o,u,i=1e6,c=0,s=1e6,f=0,h=1e6,l=0;return t.forEach(function(t){(e=t[0]>>n)c&&(c=e),(o=t[1]>>n)f&&(f=o),(u=t[2]>>n)l&&(l=u)}),new a(i,c,s,f,h,l,r)}(c,f),l=new o(function(r,n){return t.naturalOrder(r.count(),n.count())});function g(t,r){for(var n,e=t.size(),o=0;o<1e3;){if(e>=r)return;if(o++>1e3)return;if((n=t.pop()).count()){var a=i(f,n),u=a[0],c=a[1];if(!u)return;t.push(u),c&&(t.push(c),e++)}else t.push(n),o++}}l.push(h),g(l,.75*s);for(var v=new o(function(r,n){return t.naturalOrder(r.count()*r.volume(),n.count()*n.volume())});l.size();)v.push(l.pop());g(v,s);for(var m=new u;v.size();)m.push(v.pop());return m}}}().quantize;class n{constructor(t){this.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)}}class e{constructor(){this.getColorAsync=(t,r,n)=>{const e=this;this.getImageDataFromURL(t).then(t=>{const o=document.createElement("img");o.addEventListener("load",()=>{const t=e.getPalette(o,5,n);r(t[0],o)}),o.src=t})},this.getColorPromise=(t,r)=>new Promise((n,e)=>{const o=this;this.getImageDataFromURL(t).then(t=>{const e=document.createElement("img");e.addEventListener("load",()=>{const t=o.getPalette(e,5,r);n({color:t[0],img:e})}),e.src=t}).catch(t=>{e(t)})})}getColor(t,r=10){return this.getPalette(t,5,r)[0]}getPalette(t,e,o=10){const a=(t=>{let r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===n||!Number.isInteger(n)||n<1)&&(n=10),{colorCount:r,quality:n}})({colorCount:e,quality:o}),u=new n(t),i=((t,r,n)=>{const e=[];for(let o=0;o=125)&&(n>250&&a>250&&u>250||e.push([n,a,u]))}return e})(u.getImageData().data,u.width*u.height,a.quality),c=r(i,a.colorCount);return c?c.palette():null}getColorFromUrl(t,r,n=10){const e=document.createElement("img");e.addEventListener("load",()=>{const o=this.getPalette(e,5,n);r(o[0],t)}),e.src=t}getImageData(t,r){fetch(t).then(t=>{200===t.status&&t.arrayBuffer().then(t=>{const n=new Uint8Array(t),e=new Array(n.length);for(let t=0;t{fetch(t).then(t=>{200===t.status?t.arrayBuffer().then(t=>{const n=new Uint8Array(t),e=new Array(n.length);for(let t=0;tr?1:0},sum:function(t,r){var e={};return t.reduce(r?function(t,n,o){return e.index=o,t+r.call(e,n)}:function(t,r){return t+r},0)},max:function(r,e){return Math.max.apply(null,e?t.map(r,e):r)}};var r=function(){var r=5,e=8-r;function n(t,e,n){return(t<<2*r)+(e<f/2){for(o=e.copy(),a=e.copy(),i=(r=u-e[c])<=(n=e[s]-u)?Math.min(e[s]-1,~~(u+n/2)):Math.max(e[c],~~(u-1-r/2));!l[i];)i++;for(h=g[i];!h&&l[i-1];)h=g[--i];return o[s]=i,a[c]=o[s]+1,[o,a]}}(i==o?"r":i==a?"g":"b")}}return a.prototype={volume:function(t){var r=this;return r._volume&&!t||(r._volume=(r.r2-r.r1+1)*(r.g2-r.g1+1)*(r.b2-r.b1+1)),r._volume},count:function(t){var r=this,e=r.histo;if(!r._count_set||t){var o,a,i,u=0;for(o=r.r1;o<=r.r2;o++)for(a=r.g1;a<=r.g2;a++)for(i=r.b1;i<=r.b2;i++)u+=e[n(o,a,i)]||0;r._count=u,r._count_set=!0}return r._count},copy:function(){var t=this;return new a(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var e=this,o=e.histo;if(!e._avg||t){var a,i,u,c,s=0,h=1<<8-r,f=0,l=0,g=0;for(i=e.r1;i<=e.r2;i++)for(u=e.g1;u<=e.g2;u++)for(c=e.b1;c<=e.b2;c++)s+=a=o[n(i,u,c)]||0,f+=a*(i+.5)*h,l+=a*(u+.5)*h,g+=a*(c+.5)*h;e._avg=s?[~~(f/s),~~(l/s),~~(g/s)]:[~~(h*(e.r1+e.r2+1)/2),~~(h*(e.g1+e.g2+1)/2),~~(h*(e.b1+e.b2+1)/2)]}return e._avg},contains:function(t){var r=this,n=t[0]>>e;return gval=t[1]>>e,bval=t[2]>>e,n>=r.r1&&n<=r.r2&&gval>=r.g1&&gval<=r.g2&&bval>=r.b1&&bval<=r.b2}},i.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,e=0;e251&&o[1]>251&&o[2]>251&&(r[n].color=[255,255,255])}},{quantize:function(c,s){if(!c.length||s<2||s>256)return!1;var h=function(t){var o,a=new Array(1<<3*r);return t.forEach(function(t){o=n(t[0]>>e,t[1]>>e,t[2]>>e),a[o]=(a[o]||0)+1}),a}(c);h.forEach(function(){});var f=function(t,r){var n,o,i,u=1e6,c=0,s=1e6,h=0,f=1e6,l=0;return t.forEach(function(t){(n=t[0]>>e)c&&(c=n),(o=t[1]>>e)h&&(h=o),(i=t[2]>>e)l&&(l=i)}),new a(u,c,s,h,f,l,r)}(c,h),l=new o(function(r,e){return t.naturalOrder(r.count(),e.count())});function g(t,r){for(var e,n=t.size(),o=0;o<1e3;){if(n>=r)return;if(o++>1e3)return;if((e=t.pop()).count()){var a=u(h,e),i=a[0],c=a[1];if(!i)return;t.push(i),c&&(t.push(c),n++)}else t.push(e),o++}}l.push(f),g(l,.75*s);for(var v=new o(function(r,e){return t.naturalOrder(r.count()*r.volume(),e.count()*e.volume())});l.size();)v.push(l.pop());g(v,s);for(var m=new i;v.size();)m.push(v.pop());return m}}}().quantize;class e{constructor(t){if(this.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},t instanceof HTMLImageElement)this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height);else{if(!(t instanceof HTMLCanvasElement))throw new Error("One of the two constructor arguments needed");this.canvas=t,this.context=this.canvas.getContext("2d"),this.width=this.canvas.width,this.height=this.canvas.height}}}class n{getColor(t,r=10){return this.getPalette(t,5,r)[0]}getPalette(t,n,o=10){const a=(t=>{let r=t.colorCount,e=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===e||!Number.isInteger(e)||e<1)&&(e=10),{colorCount:r,quality:e}})({colorCount:n,quality:o}),i=new e(t),u=((t,r,e)=>{const n=[];for(let o=0;o=125)&&(e>250&&a>250&&i>250||n.push([e,a,i]))}return n})(i.getImageData().data,i.width*i.height,a.quality),c=r(u,a.colorCount);return c?c.palette():null}getColorFromUrl(t,r,e=10){const n=document.createElement("img");n.addEventListener("load",()=>{const o=this.getPalette(n,5,e);r(o[0],t)}),n.src=t}getImageData(t,r){fetch(t).then(t=>{200===t.status&&t.arrayBuffer().then(t=>{const e=new Uint8Array(t),n=new Array(e.length);for(let t=0;t{fetch(t).then(t=>{200===t.status?t.arrayBuffer().then(t=>{const e=new Uint8Array(t),n=new Array(e.length);for(let t=0;t{const o=document.createElement("img");o.addEventListener("load",()=>{const t=n.getPalette(o,5,e);r(t[0],o)}),o.src=t})}getColorFromURLPromise(t,r){return new Promise((e,n)=>{const o=this;this.getImageDataFromURL(t).then(t=>{const n=document.createElement("img");n.addEventListener("load",()=>{const t=o.getPalette(n,5,r);e({color:t[0],img:n})}),n.src=t}).catch(t=>{n(t)})})}}export{n as default}; diff --git a/dist/color-thief.umd.js b/dist/color-thief.umd.js index 483b5c2..93dbc50 100644 --- a/dist/color-thief.umd.js +++ b/dist/color-thief.umd.js @@ -1,2 +1,2 @@ -!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t||self).ColorThief=n()}(this,function(){if(!t)var t={map:function(t,n){var r={};return n?t.map(function(t,e){return r.index=e,n.call(r,t)}):t.slice()},naturalOrder:function(t,n){return tn?1:0},sum:function(t,n){var r={};return t.reduce(n?function(t,e,o){return r.index=o,t+n.call(r,e)}:function(t,n){return t+n},0)},max:function(n,r){return Math.max.apply(null,r?t.map(n,r):n)}};var n=function(){var n=5,r=8-n;function e(t,r,e){return(t<<2*n)+(r<h/2){for(o=r.copy(),i=r.copy(),a=(n=u-r[c])<=(e=r[f]-u)?Math.min(r[f]-1,~~(u+e/2)):Math.max(r[c],~~(u-1-n/2));!l[a];)a++;for(s=v[a];!s&&l[a-1];)s=v[--a];return o[f]=a,i[c]=o[f]+1,[o,i]}}(a==o?"r":a==i?"g":"b")}}return i.prototype={volume:function(t){var n=this;return n._volume&&!t||(n._volume=(n.r2-n.r1+1)*(n.g2-n.g1+1)*(n.b2-n.b1+1)),n._volume},count:function(t){var n=this,r=n.histo;if(!n._count_set||t){var o,i,a,u=0;for(o=n.r1;o<=n.r2;o++)for(i=n.g1;i<=n.g2;i++)for(a=n.b1;a<=n.b2;a++)u+=r[e(o,i,a)]||0;n._count=u,n._count_set=!0}return n._count},copy:function(){var t=this;return new i(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,o=r.histo;if(!r._avg||t){var i,a,u,c,f=0,s=1<<8-n,h=0,l=0,v=0;for(a=r.r1;a<=r.r2;a++)for(u=r.g1;u<=r.g2;u++)for(c=r.b1;c<=r.b2;c++)f+=i=o[e(a,u,c)]||0,h+=i*(a+.5)*s,l+=i*(u+.5)*s,v+=i*(c+.5)*s;r._avg=f?[~~(h/f),~~(l/f),~~(v/f)]:[~~(s*(r.r1+r.r2+1)/2),~~(s*(r.g1+r.g2+1)/2),~~(s*(r.b1+r.b2+1)/2)]}return r._avg},contains:function(t){var n=this,e=t[0]>>r;return gval=t[1]>>r,bval=t[2]>>r,e>=n.r1&&e<=n.r2&&gval>=n.g1&&gval<=n.g2&&bval>=n.b1&&bval<=n.b2}},a.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var n=this.vboxes,r=0;r251&&o[1]>251&&o[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(c,f){if(!c.length||f<2||f>256)return!1;var s=function(t){var o,i=new Array(1<<3*n);return t.forEach(function(t){o=e(t[0]>>r,t[1]>>r,t[2]>>r),i[o]=(i[o]||0)+1}),i}(c);s.forEach(function(){});var h=function(t,n){var e,o,a,u=1e6,c=0,f=1e6,s=0,h=1e6,l=0;return t.forEach(function(t){(e=t[0]>>r)c&&(c=e),(o=t[1]>>r)s&&(s=o),(a=t[2]>>r)l&&(l=a)}),new i(u,c,f,s,h,l,n)}(c,s),l=new o(function(n,r){return t.naturalOrder(n.count(),r.count())});function v(t,n){for(var r,e=t.size(),o=0;o<1e3;){if(e>=n)return;if(o++>1e3)return;if((r=t.pop()).count()){var i=u(s,r),a=i[0],c=i[1];if(!a)return;t.push(a),c&&(t.push(c),e++)}else t.push(r),o++}}l.push(h),v(l,.75*f);for(var g=new o(function(n,r){return t.naturalOrder(n.count()*n.volume(),r.count()*r.volume())});l.size();)g.push(l.pop());v(g,f);for(var m=new a;g.size();)m.push(g.pop());return m}}}().quantize,r=function(t){this.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)};/*#__PURE__*/ -return function(){function t(){var t=this;this.getColorAsync=function(n,r,e){var o=t;t.getImageDataFromURL(n).then(function(t){var n=document.createElement("img");n.addEventListener("load",function(){var t=o.getPalette(n,5,e);r(t[0],n)}),n.src=t})},this.getColorPromise=function(n,r){return new Promise(function(e,o){var i=t;t.getImageDataFromURL(n).then(function(t){var n=document.createElement("img");n.addEventListener("load",function(){var t=i.getPalette(n,5,r);e({color:t[0],img:n})}),n.src=t}).catch(function(t){o(t)})})}}var e=t.prototype;return e.getColor=function(t,n){return void 0===n&&(n=10),this.getPalette(t,5,n)[0]},e.getPalette=function(t,e,o){void 0===o&&(o=10);var i=function(t){var n=t.colorCount,r=t.quality;if(void 0!==n&&Number.isInteger(n)){if(1===n)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");n=Math.max(n,2),n=Math.min(n,20)}else n=10;return(void 0===r||!Number.isInteger(r)||r<1)&&(r=10),{colorCount:n,quality:r}}({colorCount:e,quality:o}),a=new r(t),u=function(t,n,r){for(var e=[],o=0;o=125)&&(a>250&&u>250&&c>250||e.push([a,u,c]))}return e}(a.getImageData().data,a.width*a.height,i.quality),c=n(u,i.colorCount);return c?c.palette():null},e.getColorFromUrl=function(t,n,r){var e=this;void 0===r&&(r=10);var o=document.createElement("img");o.addEventListener("load",function(){var i=e.getPalette(o,5,r);n(i[0],t)}),o.src=t},e.getImageData=function(t,n){fetch(t).then(function(t){200===t.status&&t.arrayBuffer().then(function(t){for(var r=new Uint8Array(t),e=new Array(r.length),o=0;on?1:0},sum:function(t,n){var r={};return t.reduce(n?function(t,e,o){return r.index=o,t+n.call(r,e)}:function(t,n){return t+n},0)},max:function(n,r){return Math.max.apply(null,r?t.map(n,r):n)}};var n=function(){var n=5,r=8-n;function e(t,r,e){return(t<<2*n)+(r<h/2){for(o=r.copy(),i=r.copy(),a=(n=u-r[c])<=(e=r[f]-u)?Math.min(r[f]-1,~~(u+e/2)):Math.max(r[c],~~(u-1-n/2));!l[a];)a++;for(s=v[a];!s&&l[a-1];)s=v[--a];return o[f]=a,i[c]=o[f]+1,[o,i]}}(a==o?"r":a==i?"g":"b")}}return i.prototype={volume:function(t){var n=this;return n._volume&&!t||(n._volume=(n.r2-n.r1+1)*(n.g2-n.g1+1)*(n.b2-n.b1+1)),n._volume},count:function(t){var n=this,r=n.histo;if(!n._count_set||t){var o,i,a,u=0;for(o=n.r1;o<=n.r2;o++)for(i=n.g1;i<=n.g2;i++)for(a=n.b1;a<=n.b2;a++)u+=r[e(o,i,a)]||0;n._count=u,n._count_set=!0}return n._count},copy:function(){var t=this;return new i(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,o=r.histo;if(!r._avg||t){var i,a,u,c,f=0,s=1<<8-n,h=0,l=0,v=0;for(a=r.r1;a<=r.r2;a++)for(u=r.g1;u<=r.g2;u++)for(c=r.b1;c<=r.b2;c++)f+=i=o[e(a,u,c)]||0,h+=i*(a+.5)*s,l+=i*(u+.5)*s,v+=i*(c+.5)*s;r._avg=f?[~~(h/f),~~(l/f),~~(v/f)]:[~~(s*(r.r1+r.r2+1)/2),~~(s*(r.g1+r.g2+1)/2),~~(s*(r.b1+r.b2+1)/2)]}return r._avg},contains:function(t){var n=this,e=t[0]>>r;return gval=t[1]>>r,bval=t[2]>>r,e>=n.r1&&e<=n.r2&&gval>=n.g1&&gval<=n.g2&&bval>=n.b1&&bval<=n.b2}},a.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var n=this.vboxes,r=0;r251&&o[1]>251&&o[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(c,f){if(!c.length||f<2||f>256)return!1;var s=function(t){var o,i=new Array(1<<3*n);return t.forEach(function(t){o=e(t[0]>>r,t[1]>>r,t[2]>>r),i[o]=(i[o]||0)+1}),i}(c);s.forEach(function(){});var h=function(t,n){var e,o,a,u=1e6,c=0,f=1e6,s=0,h=1e6,l=0;return t.forEach(function(t){(e=t[0]>>r)c&&(c=e),(o=t[1]>>r)s&&(s=o),(a=t[2]>>r)l&&(l=a)}),new i(u,c,f,s,h,l,n)}(c,s),l=new o(function(n,r){return t.naturalOrder(n.count(),r.count())});function v(t,n){for(var r,e=t.size(),o=0;o<1e3;){if(e>=n)return;if(o++>1e3)return;if((r=t.pop()).count()){var i=u(s,r),a=i[0],c=i[1];if(!a)return;t.push(a),c&&(t.push(c),e++)}else t.push(r),o++}}l.push(h),v(l,.75*f);for(var g=new o(function(n,r){return t.naturalOrder(n.count()*n.volume(),r.count()*r.volume())});l.size();)g.push(l.pop());v(g,f);for(var m=new a;g.size();)m.push(g.pop());return m}}}().quantize,r=function(t){if(this.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},t instanceof HTMLImageElement)this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height);else{if(!(t instanceof HTMLCanvasElement))throw new Error("One of the two constructor arguments needed");this.canvas=t,this.context=this.canvas.getContext("2d"),this.width=this.canvas.width,this.height=this.canvas.height}};/*#__PURE__*/ +return function(){function t(){}var e=t.prototype;return e.getColor=function(t,n){return void 0===n&&(n=10),this.getPalette(t,5,n)[0]},e.getPalette=function(t,e,o){void 0===o&&(o=10);var i=function(t){var n=t.colorCount,r=t.quality;if(void 0!==n&&Number.isInteger(n)){if(1===n)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");n=Math.max(n,2),n=Math.min(n,20)}else n=10;return(void 0===r||!Number.isInteger(r)||r<1)&&(r=10),{colorCount:n,quality:r}}({colorCount:e,quality:o}),a=new r(t),u=function(t,n,r){for(var e=[],o=0;o=125)&&(a>250&&u>250&&c>250||e.push([a,u,c]))}return e}(a.getImageData().data,a.width*a.height,i.quality),c=n(u,i.colorCount);return c?c.palette():null},e.getColorFromUrl=function(t,n,r){var e=this;void 0===r&&(r=10);var o=document.createElement("img");o.addEventListener("load",function(){var i=e.getPalette(o,5,r);n(i[0],t)}),o.src=t},e.getImageData=function(t,n){fetch(t).then(function(t){200===t.status&&t.arrayBuffer().then(function(t){for(var r=new Uint8Array(t),e=new Array(r.length),o=0;o