heatmap-ts
Advanced tools
Comparing version 0.0.1 to 0.0.2
import { AxisFields, ValueFields } from './interface'; | ||
export interface defaultConfig { | ||
export interface DefaultConfig { | ||
defaultRadius: number; | ||
@@ -13,18 +13,3 @@ defaultGradient: Record<number, string>; | ||
} | ||
declare const _default: { | ||
defaultRadius: number; | ||
defaultGradient: { | ||
0.25: string; | ||
0.55: string; | ||
0.85: string; | ||
1: string; | ||
}; | ||
defaultMaxOpacity: number; | ||
defaultMinOpacity: number; | ||
defaultBlur: number; | ||
defaultXField: string; | ||
defaultYField: string; | ||
defaultValueField: string; | ||
plugins: {}; | ||
}; | ||
export default _default; | ||
declare const defaultConfigs: DefaultConfig; | ||
export default defaultConfigs; |
@@ -1,15 +0,1 @@ | ||
"use strict"; | ||
/*! ***************************************************************************** | ||
Copyright (c) Microsoft Corporation. | ||
Permission to use, copy, modify, and/or distribute this software for any | ||
purpose with or without fee is hereby granted. | ||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */var t=function(){return(t=Object.assign||function(t){for(var e,i=1,a=arguments.length;i<a;i++)for(var r in e=arguments[i])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},e=function(){function t(){this.eStore={}}return t.prototype.on=function(t,e,i){this.eStore[t]||(this.eStore[t]=[]),this.eStore[t].push((function(t){return e.call(i,t)}))},t.prototype.emit=function(t,e){this.eStore[t]&&this.eStore[t].forEach((function(t){return t(e)}))},t}(),i=function(){function t(t){this.coordinator=new e,this.data=[],this.radi=[],this.min=10,this.max=1,this.xField=t.xField||t.defaultXField,this.yField=t.yField||t.defaultYField,this.valueField=t.valueField||t.defaultValueField,this.radius=t.radius||t.defaultRadius}return t.prototype._organiseData=function(t,e){var i=t[this.xField],a=t[this.yField],r=this.radi,n=this.data,s=this.max,h=this.min,o=t[this.valueField]||1,d=t.radius||this.radius;console.log("x",i),r[i]||(n[i]=[],r[i]=[]),r[i][a]?n[i][a]+=o:(n[i][a]=o,r[i][a]=d);var l=n[i][a];return l?l>s?(e?this.setDataMax(l):this.max=l,!1):l<h?(e?this.setDataMin(l):this.min=l,!1):void 0:{x:i,y:a,value:o,radius:d,min:h,max:s}},t.prototype._unOrganizeData=function(){for(var t=[],e=0;e<this.radi.length;e++)for(var i=0;i<this.radi[e].length;i++)t.push({x:e,y:i,radius:this.radi[e][i],value:this.radi[e][i]});return{min:this.min,max:this.max,data:t}},t.prototype._onExtremaChange=function(){this.coordinator.emit("extremachange",{min:this.min,max:this.max})},t.prototype.addData=function(t){var e=this._organiseData(t,!0);e&&(0===this.data.length&&(this.min=e.value,this.max=e.value),this.coordinator.emit("renderpartial",{min:this.min,max:this.max,data:[e]}))},t.prototype.setData=function(t){var e=t.data;this.data=[],this.radi=[];for(var i=0;i<e.length;i++)this._organiseData(e[i],!1);return this.max=t.max,this.min=t.min||0,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},t.prototype.setDataMax=function(t){return this.max=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},t.prototype.setDataMin=function(t){return this.min=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},t.prototype._getInternalData=function(){return{max:this.max,min:this.min,data:this.data,radi:this.radi}},t.prototype.getData=function(){return this._unOrganizeData()},t}(),a=function(){function t(t){var e=getComputedStyle(t.container),i=t.canvas||document.createElement("canvas"),a=t.shadowCanvas||document.createElement("canvas");this.canvas=i,this.ctx=i.getContext("2d"),this.shadowCanvas=a,this.shadowCtx=a.getContext("2d");var r=t.width||+e.width.replace(/px/,""),n=t.height||+e.height.replace(/px/,"");this.width=i.width=a.width=r,this.height=i.height=a.height=n,this.max=0,this.min=0,this.blur=1,this.opacity=1,this.maxOpacity=1,this.minOpacity=0,this.useGradientOpacity=!1,i.style.cssText=a.style.cssText="position:absolute;left:0;top:0;",t.container.style.position="relative",t.container.appendChild(i),this.renderBoundaries=[1e4,1e4,0,0],this.palette=this._getColorPalette(t),this.templates=[],this._setStyles(t)}return t.prototype.renderPartial=function(t){t.data.length>0&&(this._drawAlpha(t),this._colorize())},t.prototype.renderAll=function(t){this._clear(),t.data.length>0&&(this._drawAlpha(this._prepareData(t)),this._colorize())},t.prototype.updateConfig=function(t){t.gradient&&this._updateGradient(t),this._setStyles(t)},t.prototype.setDimensions=function(t,e){this.width=this.canvas.width=this.shadowCanvas.width=t,this.height=this.canvas.height=this.shadowCanvas.height=e},t.prototype.getValueAt=function(t){if(!this.shadowCtx)return 0;var e=this.shadowCtx.getImageData(t.x,t.y,1,1);return Math.abs(this.max-this.min)*(e.data[3]/255)>>0},t.prototype.getDataURL=function(){return this.canvas.toDataURL()},t.prototype._getColorPalette=function(t){var e=t.gradient||t.defaultGradient,i=document.createElement("canvas"),a=i.getContext("2d");if(i.width=256,i.height=1,!a)return new Uint8ClampedArray(1024);var r=a.createLinearGradient(0,0,256,1);for(var n in e)r.addColorStop(Number(n),e[n]);return a.fillStyle=r,a.fillRect(0,0,256,1),a.getImageData(0,0,256,1).data},t.prototype._getPointTemplate=function(t,e){var i=document.createElement("canvas"),a=i.getContext("2d");if(!a)return i;var r=t,n=t;if(i.width=i.height=2*t,1===e)a.beginPath(),a.arc(r,n,t,0,2*Math.PI,!1),a.fillStyle="rgba(0,0,0,1)",a.fill();else{var s=a.createRadialGradient(r,n,t*e,r,n,t);s.addColorStop(0,"rgba(0,0,0,1)"),s.addColorStop(1,"rgba(0,0,0,0)"),a.fillStyle=s,a.fillRect(0,0,2*t,2*t)}return i},t.prototype._prepareData=function(t){for(var e=[],i=t.min,a=t.max,r=t.radi,n=t.data,s=Object.keys(n),h=s.length;h--;)for(var o=s[h],d=Object.keys(n[o]),l=d.length;l--;){var u=d[l],c=n[o][u],p=r[o][u];e.push({x:Number(o),y:Number(u),value:c,radius:p})}return{min:i,max:a,data:e}},t.prototype._setStyles=function(t){this.blur=0===t.blur?0:t.blur||t.defaultBlur,t.backgroundColor&&(this.canvas.style.backgroundColor=t.backgroundColor),this.width=this.canvas.width=this.shadowCanvas.width=t.width||this.width,this.height=this.canvas.height=this.shadowCanvas.height=t.height||this.height,this.opacity=255*(t.opacity||0),this.maxOpacity=255*(t.maxOpacity||t.defaultMaxOpacity),this.minOpacity=255*(t.minOpacity||t.defaultMinOpacity),this.useGradientOpacity=!!t.useGradientOpacity},t.prototype._updateGradient=function(t){this.palette=this._getColorPalette(t)},t.prototype._drawAlpha=function(t){for(var e=this.min=t.min,i=this.max=t.max,a=t.data||[],r=a.length,n=1-this.blur;r--;){var s=a[r],h=s.x,o=s.y,d=s.radius,l=Math.min(s.value,i),u=h-d,c=o-d;if(!this.shadowCtx)return;var p=void 0;this.templates[d]?p=this.templates[d]:this.templates[d]=p=this._getPointTemplate(d,n);var g=(l-e)/(i-e);this.shadowCtx.globalAlpha=g<.01?.01:g,this.shadowCtx.drawImage(p,u,c),u<this.renderBoundaries[0]&&(this.renderBoundaries[0]=u),c<this.renderBoundaries[1]&&(this.renderBoundaries[1]=c),u+2*d>this.renderBoundaries[2]&&(this.renderBoundaries[2]=u+2*d),c+2*d>this.renderBoundaries[3]&&(this.renderBoundaries[3]=c+2*d)}},t.prototype._colorize=function(){var t=this.renderBoundaries[0],e=this.renderBoundaries[1],i=this.renderBoundaries[2]-t,a=this.renderBoundaries[3]-e,r=this.width,n=this.height;if(t<0&&(t=0),e<0&&(e=0),t+i>r&&(i=r-t),e+a>n&&(a=n-e),this.ctx&&this.shadowCtx){for(var s=this.shadowCtx.getImageData(t,e,i,a),h=3;h<s.data.length;h+=4){var o,d=s.data[h],l=4*d;if(l)o=this.opacity>0?this.opacity:d<this.maxOpacity?d<this.minOpacity?this.minOpacity:d:this.maxOpacity,s.data[h-3]=this.palette[l],s.data[h-2]=this.palette[l+1],s.data[h-1]=this.palette[l+2],s.data[h]=this.useGradientOpacity?this.palette[l+3]:o}this.ctx.putImageData(s,t,e),this.renderBoundaries=[1e3,1e3,0,0]}},t.prototype._clear=function(){this.ctx&&this.shadowCtx&&(this.ctx.clearRect(0,0,this.width,this.height),this.shadowCtx.clearRect(0,0,this.width,this.height))},t}(),r={defaultRadius:40,defaultGradient:{.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},defaultMaxOpacity:1,defaultMinOpacity:0,defaultBlur:.85,defaultXField:"x",defaultYField:"y",defaultValueField:"value",plugins:{}},n=function(){function e(e){this.config=t(t({},r),e),this.renderer=new a(this.config),this.store=new i(this.config),this._init()}return e.prototype._init=function(){var t=this;this.store.coordinator.on("renderpartial",this.renderer.renderPartial,this.renderer),this.store.coordinator.on("renderall",this.renderer.renderAll,this.renderer),this.store.coordinator.on("extremachange",(function(e){t.config.onExtremaChange&&t.config.onExtremaChange({min:e.min,max:e.max,gradient:t.config.gradient||t.config.defaultGradient})}))},e.prototype.addData=function(t){return this.store.addData(t),this},e.prototype.setData=function(t){return this.store.setData(t),this},e.prototype.setDataMaxx=function(t){return this.store.setDataMax(t),this},e.prototype.setDataMin=function(t){return this.store.setDataMin(t),this},e.prototype.repaint=function(){return this.store.coordinator.emit("renderall",this.store._getInternalData()),this},e.prototype.getData=function(){return this.store.getData()},e.prototype.getDataURL=function(){return this.renderer.getDataURL()},e.prototype.getValueAt=function(t){return this.renderer.getValueAt(t)},e}();module.exports=n; | ||
"use strict";var t={defaultRadius:40,defaultGradient:{.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},defaultMaxOpacity:1,defaultMinOpacity:0,defaultBlur:.85,defaultXField:"x",defaultYField:"y",defaultValueField:"value",plugins:{}},i=function(){function t(){this.eStore={}}return t.prototype.on=function(t,i,a){this.eStore[t]||(this.eStore[t]=[]),this.eStore[t].push((function(t){return i.call(a,t)}))},t.prototype.emit=function(t,i){this.eStore[t]&&this.eStore[t].forEach((function(t){return t(i)}))},t}(),a=function(){function a(a){this.coordinator=new i,this.data=[],this.radi=[],this.min=10,this.max=1,this.xField=a.xField||t.defaultXField,this.yField=a.yField||t.defaultYField,this.valueField=a.valueField||t.defaultValueField,this.radius=a.radius||t.defaultRadius}return a.prototype._organiseData=function(t,i){var a=t[this.xField],e=t[this.yField],r=this.radi,n=this.data,s=this.max,h=this.min,o=t[this.valueField]||1,d=t.radius||this.radius;r[a]||(n[a]=[],r[a]=[]),r[a][e]?n[a][e]+=o:(n[a][e]=o,r[a][e]=d);var u=n[a][e];return u?u>s?(i?this.setDataMax(u):this.max=u,!1):u<h?(i?this.setDataMin(u):this.min=u,!1):void 0:{x:a,y:e,value:o,radius:d,min:h,max:s}},a.prototype._unOrganizeData=function(){for(var t=[],i=0;i<this.radi.length;i++)for(var a=0;a<this.radi[i].length;a++)t.push({x:i,y:a,radius:this.radi[i][a],value:this.radi[i][a]});return{min:this.min,max:this.max,data:t}},a.prototype._onExtremaChange=function(){this.coordinator.emit("extremachange",{min:this.min,max:this.max})},a.prototype.addData=function(t){var i=this._organiseData(t,!0);i&&(0===this.data.length&&(this.min=i.value,this.max=i.value),this.coordinator.emit("renderpartial",{min:this.min,max:this.max,data:[i]}))},a.prototype.setData=function(t){var i=t.data;this.data=[],this.radi=[];for(var a=0;a<i.length;a++)this._organiseData(i[a],!1);return this.max=t.max,this.min=t.min||0,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},a.prototype.setDataMax=function(t){return this.max=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},a.prototype.setDataMin=function(t){return this.min=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},a.prototype._getInternalData=function(){return{max:this.max,min:this.min,data:this.data,radi:this.radi}},a.prototype.getData=function(){return this._unOrganizeData()},a}(),e=function(){function i(t){this.canvas=t.canvas||document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.shadowCanvas=t.shadowCanvas||document.createElement("canvas"),this.shadowCtx=this.shadowCanvas.getContext("2d"),this.width=t.width||512,this.height=t.height||512,this.max=100,this.min=1,this.blur=1,this.opacity=1,this.maxOpacity=1,this.minOpacity=0,this.useGradientOpacity=!1,this.canvas.style.cssText=this.shadowCanvas.style.cssText="position:absolute;left:0;top:0;",t.container&&(t.container.style.position="relative",t.container.appendChild(this.canvas)),this.renderBoundaries=[1e4,1e4,0,0],this.palette=this._getColorPalette(t),this.templates=[],this._setStyles(t)}return i.prototype.renderPartial=function(t){t.data.length>0&&(this._drawAlpha(t),this._colorize())},i.prototype.renderAll=function(t){this._clear(),t.data.length>0&&(this._drawAlpha(this._prepareData(t)),this._colorize())},i.prototype.updateConfig=function(t){t.gradient&&this._updateGradient(t),this._setStyles(t)},i.prototype.setDimensions=function(t,i){this.width=this.canvas.width=this.shadowCanvas.width=t,this.height=this.canvas.height=this.shadowCanvas.height=i},i.prototype.getValueAt=function(t){if(!this.shadowCtx)return 0;var i=this.shadowCtx.getImageData(t.x,t.y,1,1);return Math.abs(this.max-this.min)*(i.data[3]/255)>>0},i.prototype.getDataURL=function(){return this.canvas.toDataURL()},i.prototype._getColorPalette=function(i){var a=i.gradient||t.defaultGradient,e=document.createElement("canvas"),r=e.getContext("2d");if(e.width=256,e.height=1,!r)return new Uint8ClampedArray(1024);var n=r.createLinearGradient(0,0,256,1);for(var s in a)n.addColorStop(Number(s),a[s]);return r.fillStyle=n,r.fillRect(0,0,256,1),r.getImageData(0,0,256,1).data},i.prototype._getPointTemplate=function(t,i){var a=document.createElement("canvas"),e=a.getContext("2d");if(!e)return a;var r=t,n=t;if(a.width=a.height=2*t,1===i)e.beginPath(),e.arc(r,n,t,0,2*Math.PI,!1),e.fillStyle="rgba(0,0,0,1)",e.fill();else{var s=e.createRadialGradient(r,n,t*i,r,n,t);s.addColorStop(0,"rgba(0,0,0,1)"),s.addColorStop(1,"rgba(0,0,0,0)"),e.fillStyle=s,e.fillRect(0,0,2*t,2*t)}return a},i.prototype._prepareData=function(t){for(var i=[],a=t.min,e=t.max,r=t.radi,n=t.data,s=Object.keys(n),h=s.length;h--;)for(var o=s[h],d=Object.keys(n[o]),u=d.length;u--;){var l=d[u],c=n[o][l],p=r[o][l];i.push({x:Number(o),y:Number(l),value:c,radius:p})}return{min:a,max:e,data:i}},i.prototype._setStyles=function(i){this.blur=0===i.blur?0:i.blur||t.defaultBlur,i.backgroundColor&&(this.canvas.style.backgroundColor=i.backgroundColor),this.width=this.canvas.width=this.shadowCanvas.width=i.width||this.width,this.height=this.canvas.height=this.shadowCanvas.height=i.height||this.height,this.opacity=255*(i.opacity||0),this.maxOpacity=255*(i.maxOpacity||t.defaultMaxOpacity),this.minOpacity=255*(i.minOpacity||t.defaultMinOpacity),this.useGradientOpacity=!!i.useGradientOpacity},i.prototype._updateGradient=function(t){this.palette=this._getColorPalette(t)},i.prototype._drawAlpha=function(t){for(var i=this.min=t.min,a=this.max=t.max,e=t.data||[],r=e.length,n=1-this.blur;r--;){var s=e[r],h=s.x,o=s.y,d=s.radius,u=Math.min(s.value,a),l=h-d,c=o-d;if(!this.shadowCtx)return;var p=void 0;this.templates[d]?p=this.templates[d]:this.templates[d]=p=this._getPointTemplate(d,n);var m=(u-i)/(a-i);this.shadowCtx.globalAlpha=m<.01?.01:m,this.shadowCtx.drawImage(p,l,c),l<this.renderBoundaries[0]&&(this.renderBoundaries[0]=l),c<this.renderBoundaries[1]&&(this.renderBoundaries[1]=c),l+2*d>this.renderBoundaries[2]&&(this.renderBoundaries[2]=l+2*d),c+2*d>this.renderBoundaries[3]&&(this.renderBoundaries[3]=c+2*d)}},i.prototype._colorize=function(){var t=this.renderBoundaries[0],i=this.renderBoundaries[1],a=this.renderBoundaries[2]-t,e=this.renderBoundaries[3]-i,r=this.width,n=this.height;if(t<0&&(t=0),i<0&&(i=0),t+a>r&&(a=r-t),i+e>n&&(e=n-i),this.ctx&&this.shadowCtx){for(var s=this.shadowCtx.getImageData(t,i,a,e),h=3;h<s.data.length;h+=4){var o,d=s.data[h],u=4*d;if(u)o=this.opacity>0?this.opacity:d<this.maxOpacity?d<this.minOpacity?this.minOpacity:d:this.maxOpacity,s.data[h-3]=this.palette[u],s.data[h-2]=this.palette[u+1],s.data[h-1]=this.palette[u+2],s.data[h]=this.useGradientOpacity?this.palette[u+3]:o}this.ctx.putImageData(s,t,i),this.renderBoundaries=[1e3,1e3,0,0]}},i.prototype._clear=function(){this.ctx&&this.shadowCtx&&(this.ctx.clearRect(0,0,this.width,this.height),this.shadowCtx.clearRect(0,0,this.width,this.height))},i}(),r=function(){function i(t){this.config=t,this.renderer=new e(this.config),this.store=new a(this.config),this._init()}return i.prototype._init=function(){var i=this;this.store.coordinator.on("renderpartial",this.renderer.renderPartial,this.renderer),this.store.coordinator.on("renderall",this.renderer.renderAll,this.renderer),this.store.coordinator.on("extremachange",(function(a){i.config.onExtremaChange&&i.config.onExtremaChange({min:a.min,max:a.max,gradient:i.config.gradient||t.defaultGradient})}))},i.prototype.addData=function(t){return this.store.addData(t),this},i.prototype.setData=function(t){return this.store.setData(t),this},i.prototype.setDataMaxx=function(t){return this.store.setDataMax(t),this},i.prototype.setDataMin=function(t){return this.store.setDataMin(t),this},i.prototype.repaint=function(){return this.store.coordinator.emit("renderall",this.store._getInternalData()),this},i.prototype.getData=function(){return this.store.getData()},i.prototype.getDataURL=function(){return this.renderer.getDataURL()},i.prototype.getValueAt=function(t){return this.renderer.getValueAt(t)},i}();module.exports=r; |
@@ -1,15 +0,1 @@ | ||
/*! ***************************************************************************** | ||
Copyright (c) Microsoft Corporation. | ||
Permission to use, copy, modify, and/or distribute this software for any | ||
purpose with or without fee is hereby granted. | ||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */ | ||
var t=function(){return(t=Object.assign||function(t){for(var e,i=1,a=arguments.length;i<a;i++)for(var r in e=arguments[i])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},e=function(){function t(){this.eStore={}}return t.prototype.on=function(t,e,i){this.eStore[t]||(this.eStore[t]=[]),this.eStore[t].push((function(t){return e.call(i,t)}))},t.prototype.emit=function(t,e){this.eStore[t]&&this.eStore[t].forEach((function(t){return t(e)}))},t}(),i=function(){function t(t){this.coordinator=new e,this.data=[],this.radi=[],this.min=10,this.max=1,this.xField=t.xField||t.defaultXField,this.yField=t.yField||t.defaultYField,this.valueField=t.valueField||t.defaultValueField,this.radius=t.radius||t.defaultRadius}return t.prototype._organiseData=function(t,e){var i=t[this.xField],a=t[this.yField],r=this.radi,n=this.data,s=this.max,h=this.min,o=t[this.valueField]||1,d=t.radius||this.radius;console.log("x",i),r[i]||(n[i]=[],r[i]=[]),r[i][a]?n[i][a]+=o:(n[i][a]=o,r[i][a]=d);var l=n[i][a];return l?l>s?(e?this.setDataMax(l):this.max=l,!1):l<h?(e?this.setDataMin(l):this.min=l,!1):void 0:{x:i,y:a,value:o,radius:d,min:h,max:s}},t.prototype._unOrganizeData=function(){for(var t=[],e=0;e<this.radi.length;e++)for(var i=0;i<this.radi[e].length;i++)t.push({x:e,y:i,radius:this.radi[e][i],value:this.radi[e][i]});return{min:this.min,max:this.max,data:t}},t.prototype._onExtremaChange=function(){this.coordinator.emit("extremachange",{min:this.min,max:this.max})},t.prototype.addData=function(t){var e=this._organiseData(t,!0);e&&(0===this.data.length&&(this.min=e.value,this.max=e.value),this.coordinator.emit("renderpartial",{min:this.min,max:this.max,data:[e]}))},t.prototype.setData=function(t){var e=t.data;this.data=[],this.radi=[];for(var i=0;i<e.length;i++)this._organiseData(e[i],!1);return this.max=t.max,this.min=t.min||0,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},t.prototype.setDataMax=function(t){return this.max=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},t.prototype.setDataMin=function(t){return this.min=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},t.prototype._getInternalData=function(){return{max:this.max,min:this.min,data:this.data,radi:this.radi}},t.prototype.getData=function(){return this._unOrganizeData()},t}(),a=function(){function t(t){var e=getComputedStyle(t.container),i=t.canvas||document.createElement("canvas"),a=t.shadowCanvas||document.createElement("canvas");this.canvas=i,this.ctx=i.getContext("2d"),this.shadowCanvas=a,this.shadowCtx=a.getContext("2d");var r=t.width||+e.width.replace(/px/,""),n=t.height||+e.height.replace(/px/,"");this.width=i.width=a.width=r,this.height=i.height=a.height=n,this.max=0,this.min=0,this.blur=1,this.opacity=1,this.maxOpacity=1,this.minOpacity=0,this.useGradientOpacity=!1,i.style.cssText=a.style.cssText="position:absolute;left:0;top:0;",t.container.style.position="relative",t.container.appendChild(i),this.renderBoundaries=[1e4,1e4,0,0],this.palette=this._getColorPalette(t),this.templates=[],this._setStyles(t)}return t.prototype.renderPartial=function(t){t.data.length>0&&(this._drawAlpha(t),this._colorize())},t.prototype.renderAll=function(t){this._clear(),t.data.length>0&&(this._drawAlpha(this._prepareData(t)),this._colorize())},t.prototype.updateConfig=function(t){t.gradient&&this._updateGradient(t),this._setStyles(t)},t.prototype.setDimensions=function(t,e){this.width=this.canvas.width=this.shadowCanvas.width=t,this.height=this.canvas.height=this.shadowCanvas.height=e},t.prototype.getValueAt=function(t){if(!this.shadowCtx)return 0;var e=this.shadowCtx.getImageData(t.x,t.y,1,1);return Math.abs(this.max-this.min)*(e.data[3]/255)>>0},t.prototype.getDataURL=function(){return this.canvas.toDataURL()},t.prototype._getColorPalette=function(t){var e=t.gradient||t.defaultGradient,i=document.createElement("canvas"),a=i.getContext("2d");if(i.width=256,i.height=1,!a)return new Uint8ClampedArray(1024);var r=a.createLinearGradient(0,0,256,1);for(var n in e)r.addColorStop(Number(n),e[n]);return a.fillStyle=r,a.fillRect(0,0,256,1),a.getImageData(0,0,256,1).data},t.prototype._getPointTemplate=function(t,e){var i=document.createElement("canvas"),a=i.getContext("2d");if(!a)return i;var r=t,n=t;if(i.width=i.height=2*t,1===e)a.beginPath(),a.arc(r,n,t,0,2*Math.PI,!1),a.fillStyle="rgba(0,0,0,1)",a.fill();else{var s=a.createRadialGradient(r,n,t*e,r,n,t);s.addColorStop(0,"rgba(0,0,0,1)"),s.addColorStop(1,"rgba(0,0,0,0)"),a.fillStyle=s,a.fillRect(0,0,2*t,2*t)}return i},t.prototype._prepareData=function(t){for(var e=[],i=t.min,a=t.max,r=t.radi,n=t.data,s=Object.keys(n),h=s.length;h--;)for(var o=s[h],d=Object.keys(n[o]),l=d.length;l--;){var u=d[l],c=n[o][u],p=r[o][u];e.push({x:Number(o),y:Number(u),value:c,radius:p})}return{min:i,max:a,data:e}},t.prototype._setStyles=function(t){this.blur=0===t.blur?0:t.blur||t.defaultBlur,t.backgroundColor&&(this.canvas.style.backgroundColor=t.backgroundColor),this.width=this.canvas.width=this.shadowCanvas.width=t.width||this.width,this.height=this.canvas.height=this.shadowCanvas.height=t.height||this.height,this.opacity=255*(t.opacity||0),this.maxOpacity=255*(t.maxOpacity||t.defaultMaxOpacity),this.minOpacity=255*(t.minOpacity||t.defaultMinOpacity),this.useGradientOpacity=!!t.useGradientOpacity},t.prototype._updateGradient=function(t){this.palette=this._getColorPalette(t)},t.prototype._drawAlpha=function(t){for(var e=this.min=t.min,i=this.max=t.max,a=t.data||[],r=a.length,n=1-this.blur;r--;){var s=a[r],h=s.x,o=s.y,d=s.radius,l=Math.min(s.value,i),u=h-d,c=o-d;if(!this.shadowCtx)return;var p=void 0;this.templates[d]?p=this.templates[d]:this.templates[d]=p=this._getPointTemplate(d,n);var g=(l-e)/(i-e);this.shadowCtx.globalAlpha=g<.01?.01:g,this.shadowCtx.drawImage(p,u,c),u<this.renderBoundaries[0]&&(this.renderBoundaries[0]=u),c<this.renderBoundaries[1]&&(this.renderBoundaries[1]=c),u+2*d>this.renderBoundaries[2]&&(this.renderBoundaries[2]=u+2*d),c+2*d>this.renderBoundaries[3]&&(this.renderBoundaries[3]=c+2*d)}},t.prototype._colorize=function(){var t=this.renderBoundaries[0],e=this.renderBoundaries[1],i=this.renderBoundaries[2]-t,a=this.renderBoundaries[3]-e,r=this.width,n=this.height;if(t<0&&(t=0),e<0&&(e=0),t+i>r&&(i=r-t),e+a>n&&(a=n-e),this.ctx&&this.shadowCtx){for(var s=this.shadowCtx.getImageData(t,e,i,a),h=3;h<s.data.length;h+=4){var o,d=s.data[h],l=4*d;if(l)o=this.opacity>0?this.opacity:d<this.maxOpacity?d<this.minOpacity?this.minOpacity:d:this.maxOpacity,s.data[h-3]=this.palette[l],s.data[h-2]=this.palette[l+1],s.data[h-1]=this.palette[l+2],s.data[h]=this.useGradientOpacity?this.palette[l+3]:o}this.ctx.putImageData(s,t,e),this.renderBoundaries=[1e3,1e3,0,0]}},t.prototype._clear=function(){this.ctx&&this.shadowCtx&&(this.ctx.clearRect(0,0,this.width,this.height),this.shadowCtx.clearRect(0,0,this.width,this.height))},t}(),r={defaultRadius:40,defaultGradient:{.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},defaultMaxOpacity:1,defaultMinOpacity:0,defaultBlur:.85,defaultXField:"x",defaultYField:"y",defaultValueField:"value",plugins:{}},n=function(){function e(e){this.config=t(t({},r),e),this.renderer=new a(this.config),this.store=new i(this.config),this._init()}return e.prototype._init=function(){var t=this;this.store.coordinator.on("renderpartial",this.renderer.renderPartial,this.renderer),this.store.coordinator.on("renderall",this.renderer.renderAll,this.renderer),this.store.coordinator.on("extremachange",(function(e){t.config.onExtremaChange&&t.config.onExtremaChange({min:e.min,max:e.max,gradient:t.config.gradient||t.config.defaultGradient})}))},e.prototype.addData=function(t){return this.store.addData(t),this},e.prototype.setData=function(t){return this.store.setData(t),this},e.prototype.setDataMaxx=function(t){return this.store.setDataMax(t),this},e.prototype.setDataMin=function(t){return this.store.setDataMin(t),this},e.prototype.repaint=function(){return this.store.coordinator.emit("renderall",this.store._getInternalData()),this},e.prototype.getData=function(){return this.store.getData()},e.prototype.getDataURL=function(){return this.renderer.getDataURL()},e.prototype.getValueAt=function(t){return this.renderer.getValueAt(t)},e}();export default n; | ||
var t={defaultRadius:40,defaultGradient:{.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},defaultMaxOpacity:1,defaultMinOpacity:0,defaultBlur:.85,defaultXField:"x",defaultYField:"y",defaultValueField:"value",plugins:{}},i=function(){function t(){this.eStore={}}return t.prototype.on=function(t,i,a){this.eStore[t]||(this.eStore[t]=[]),this.eStore[t].push((function(t){return i.call(a,t)}))},t.prototype.emit=function(t,i){this.eStore[t]&&this.eStore[t].forEach((function(t){return t(i)}))},t}(),a=function(){function a(a){this.coordinator=new i,this.data=[],this.radi=[],this.min=10,this.max=1,this.xField=a.xField||t.defaultXField,this.yField=a.yField||t.defaultYField,this.valueField=a.valueField||t.defaultValueField,this.radius=a.radius||t.defaultRadius}return a.prototype._organiseData=function(t,i){var a=t[this.xField],e=t[this.yField],r=this.radi,n=this.data,s=this.max,h=this.min,o=t[this.valueField]||1,d=t.radius||this.radius;r[a]||(n[a]=[],r[a]=[]),r[a][e]?n[a][e]+=o:(n[a][e]=o,r[a][e]=d);var u=n[a][e];return u?u>s?(i?this.setDataMax(u):this.max=u,!1):u<h?(i?this.setDataMin(u):this.min=u,!1):void 0:{x:a,y:e,value:o,radius:d,min:h,max:s}},a.prototype._unOrganizeData=function(){for(var t=[],i=0;i<this.radi.length;i++)for(var a=0;a<this.radi[i].length;a++)t.push({x:i,y:a,radius:this.radi[i][a],value:this.radi[i][a]});return{min:this.min,max:this.max,data:t}},a.prototype._onExtremaChange=function(){this.coordinator.emit("extremachange",{min:this.min,max:this.max})},a.prototype.addData=function(t){var i=this._organiseData(t,!0);i&&(0===this.data.length&&(this.min=i.value,this.max=i.value),this.coordinator.emit("renderpartial",{min:this.min,max:this.max,data:[i]}))},a.prototype.setData=function(t){var i=t.data;this.data=[],this.radi=[];for(var a=0;a<i.length;a++)this._organiseData(i[a],!1);return this.max=t.max,this.min=t.min||0,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},a.prototype.setDataMax=function(t){return this.max=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},a.prototype.setDataMin=function(t){return this.min=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},a.prototype._getInternalData=function(){return{max:this.max,min:this.min,data:this.data,radi:this.radi}},a.prototype.getData=function(){return this._unOrganizeData()},a}(),e=function(){function i(t){this.canvas=t.canvas||document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.shadowCanvas=t.shadowCanvas||document.createElement("canvas"),this.shadowCtx=this.shadowCanvas.getContext("2d"),this.width=t.width||512,this.height=t.height||512,this.max=100,this.min=1,this.blur=1,this.opacity=1,this.maxOpacity=1,this.minOpacity=0,this.useGradientOpacity=!1,this.canvas.style.cssText=this.shadowCanvas.style.cssText="position:absolute;left:0;top:0;",t.container&&(t.container.style.position="relative",t.container.appendChild(this.canvas)),this.renderBoundaries=[1e4,1e4,0,0],this.palette=this._getColorPalette(t),this.templates=[],this._setStyles(t)}return i.prototype.renderPartial=function(t){t.data.length>0&&(this._drawAlpha(t),this._colorize())},i.prototype.renderAll=function(t){this._clear(),t.data.length>0&&(this._drawAlpha(this._prepareData(t)),this._colorize())},i.prototype.updateConfig=function(t){t.gradient&&this._updateGradient(t),this._setStyles(t)},i.prototype.setDimensions=function(t,i){this.width=this.canvas.width=this.shadowCanvas.width=t,this.height=this.canvas.height=this.shadowCanvas.height=i},i.prototype.getValueAt=function(t){if(!this.shadowCtx)return 0;var i=this.shadowCtx.getImageData(t.x,t.y,1,1);return Math.abs(this.max-this.min)*(i.data[3]/255)>>0},i.prototype.getDataURL=function(){return this.canvas.toDataURL()},i.prototype._getColorPalette=function(i){var a=i.gradient||t.defaultGradient,e=document.createElement("canvas"),r=e.getContext("2d");if(e.width=256,e.height=1,!r)return new Uint8ClampedArray(1024);var n=r.createLinearGradient(0,0,256,1);for(var s in a)n.addColorStop(Number(s),a[s]);return r.fillStyle=n,r.fillRect(0,0,256,1),r.getImageData(0,0,256,1).data},i.prototype._getPointTemplate=function(t,i){var a=document.createElement("canvas"),e=a.getContext("2d");if(!e)return a;var r=t,n=t;if(a.width=a.height=2*t,1===i)e.beginPath(),e.arc(r,n,t,0,2*Math.PI,!1),e.fillStyle="rgba(0,0,0,1)",e.fill();else{var s=e.createRadialGradient(r,n,t*i,r,n,t);s.addColorStop(0,"rgba(0,0,0,1)"),s.addColorStop(1,"rgba(0,0,0,0)"),e.fillStyle=s,e.fillRect(0,0,2*t,2*t)}return a},i.prototype._prepareData=function(t){for(var i=[],a=t.min,e=t.max,r=t.radi,n=t.data,s=Object.keys(n),h=s.length;h--;)for(var o=s[h],d=Object.keys(n[o]),u=d.length;u--;){var l=d[u],c=n[o][l],p=r[o][l];i.push({x:Number(o),y:Number(l),value:c,radius:p})}return{min:a,max:e,data:i}},i.prototype._setStyles=function(i){this.blur=0===i.blur?0:i.blur||t.defaultBlur,i.backgroundColor&&(this.canvas.style.backgroundColor=i.backgroundColor),this.width=this.canvas.width=this.shadowCanvas.width=i.width||this.width,this.height=this.canvas.height=this.shadowCanvas.height=i.height||this.height,this.opacity=255*(i.opacity||0),this.maxOpacity=255*(i.maxOpacity||t.defaultMaxOpacity),this.minOpacity=255*(i.minOpacity||t.defaultMinOpacity),this.useGradientOpacity=!!i.useGradientOpacity},i.prototype._updateGradient=function(t){this.palette=this._getColorPalette(t)},i.prototype._drawAlpha=function(t){for(var i=this.min=t.min,a=this.max=t.max,e=t.data||[],r=e.length,n=1-this.blur;r--;){var s=e[r],h=s.x,o=s.y,d=s.radius,u=Math.min(s.value,a),l=h-d,c=o-d;if(!this.shadowCtx)return;var p=void 0;this.templates[d]?p=this.templates[d]:this.templates[d]=p=this._getPointTemplate(d,n);var m=(u-i)/(a-i);this.shadowCtx.globalAlpha=m<.01?.01:m,this.shadowCtx.drawImage(p,l,c),l<this.renderBoundaries[0]&&(this.renderBoundaries[0]=l),c<this.renderBoundaries[1]&&(this.renderBoundaries[1]=c),l+2*d>this.renderBoundaries[2]&&(this.renderBoundaries[2]=l+2*d),c+2*d>this.renderBoundaries[3]&&(this.renderBoundaries[3]=c+2*d)}},i.prototype._colorize=function(){var t=this.renderBoundaries[0],i=this.renderBoundaries[1],a=this.renderBoundaries[2]-t,e=this.renderBoundaries[3]-i,r=this.width,n=this.height;if(t<0&&(t=0),i<0&&(i=0),t+a>r&&(a=r-t),i+e>n&&(e=n-i),this.ctx&&this.shadowCtx){for(var s=this.shadowCtx.getImageData(t,i,a,e),h=3;h<s.data.length;h+=4){var o,d=s.data[h],u=4*d;if(u)o=this.opacity>0?this.opacity:d<this.maxOpacity?d<this.minOpacity?this.minOpacity:d:this.maxOpacity,s.data[h-3]=this.palette[u],s.data[h-2]=this.palette[u+1],s.data[h-1]=this.palette[u+2],s.data[h]=this.useGradientOpacity?this.palette[u+3]:o}this.ctx.putImageData(s,t,i),this.renderBoundaries=[1e3,1e3,0,0]}},i.prototype._clear=function(){this.ctx&&this.shadowCtx&&(this.ctx.clearRect(0,0,this.width,this.height),this.shadowCtx.clearRect(0,0,this.width,this.height))},i}(),r=function(){function i(t){this.config=t,this.renderer=new e(this.config),this.store=new a(this.config),this._init()}return i.prototype._init=function(){var i=this;this.store.coordinator.on("renderpartial",this.renderer.renderPartial,this.renderer),this.store.coordinator.on("renderall",this.renderer.renderAll,this.renderer),this.store.coordinator.on("extremachange",(function(a){i.config.onExtremaChange&&i.config.onExtremaChange({min:a.min,max:a.max,gradient:i.config.gradient||t.defaultGradient})}))},i.prototype.addData=function(t){return this.store.addData(t),this},i.prototype.setData=function(t){return this.store.setData(t),this},i.prototype.setDataMaxx=function(t){return this.store.setDataMax(t),this},i.prototype.setDataMin=function(t){return this.store.setDataMin(t),this},i.prototype.repaint=function(){return this.store.coordinator.emit("renderall",this.store._getInternalData()),this},i.prototype.getData=function(){return this.store.getData()},i.prototype.getDataURL=function(){return this.renderer.getDataURL()},i.prototype.getValueAt=function(t){return this.renderer.getValueAt(t)},i}();export default r; |
@@ -1,15 +0,1 @@ | ||
var HeatMap=function(){"use strict"; | ||
/*! ***************************************************************************** | ||
Copyright (c) Microsoft Corporation. | ||
Permission to use, copy, modify, and/or distribute this software for any | ||
purpose with or without fee is hereby granted. | ||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */var t=function(){return(t=Object.assign||function(t){for(var e,i=1,a=arguments.length;i<a;i++)for(var r in e=arguments[i])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},e=function(){function t(){this.eStore={}}return t.prototype.on=function(t,e,i){this.eStore[t]||(this.eStore[t]=[]),this.eStore[t].push((function(t){return e.call(i,t)}))},t.prototype.emit=function(t,e){this.eStore[t]&&this.eStore[t].forEach((function(t){return t(e)}))},t}(),i=function(){function t(t){this.coordinator=new e,this.data=[],this.radi=[],this.min=10,this.max=1,this.xField=t.xField||t.defaultXField,this.yField=t.yField||t.defaultYField,this.valueField=t.valueField||t.defaultValueField,this.radius=t.radius||t.defaultRadius}return t.prototype._organiseData=function(t,e){var i=t[this.xField],a=t[this.yField],r=this.radi,n=this.data,s=this.max,h=this.min,o=t[this.valueField]||1,d=t.radius||this.radius;console.log("x",i),r[i]||(n[i]=[],r[i]=[]),r[i][a]?n[i][a]+=o:(n[i][a]=o,r[i][a]=d);var l=n[i][a];return l?l>s?(e?this.setDataMax(l):this.max=l,!1):l<h?(e?this.setDataMin(l):this.min=l,!1):void 0:{x:i,y:a,value:o,radius:d,min:h,max:s}},t.prototype._unOrganizeData=function(){for(var t=[],e=0;e<this.radi.length;e++)for(var i=0;i<this.radi[e].length;i++)t.push({x:e,y:i,radius:this.radi[e][i],value:this.radi[e][i]});return{min:this.min,max:this.max,data:t}},t.prototype._onExtremaChange=function(){this.coordinator.emit("extremachange",{min:this.min,max:this.max})},t.prototype.addData=function(t){var e=this._organiseData(t,!0);e&&(0===this.data.length&&(this.min=e.value,this.max=e.value),this.coordinator.emit("renderpartial",{min:this.min,max:this.max,data:[e]}))},t.prototype.setData=function(t){var e=t.data;this.data=[],this.radi=[];for(var i=0;i<e.length;i++)this._organiseData(e[i],!1);return this.max=t.max,this.min=t.min||0,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},t.prototype.setDataMax=function(t){return this.max=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},t.prototype.setDataMin=function(t){return this.min=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},t.prototype._getInternalData=function(){return{max:this.max,min:this.min,data:this.data,radi:this.radi}},t.prototype.getData=function(){return this._unOrganizeData()},t}(),a=function(){function t(t){var e=getComputedStyle(t.container),i=t.canvas||document.createElement("canvas"),a=t.shadowCanvas||document.createElement("canvas");this.canvas=i,this.ctx=i.getContext("2d"),this.shadowCanvas=a,this.shadowCtx=a.getContext("2d");var r=t.width||+e.width.replace(/px/,""),n=t.height||+e.height.replace(/px/,"");this.width=i.width=a.width=r,this.height=i.height=a.height=n,this.max=0,this.min=0,this.blur=1,this.opacity=1,this.maxOpacity=1,this.minOpacity=0,this.useGradientOpacity=!1,i.style.cssText=a.style.cssText="position:absolute;left:0;top:0;",t.container.style.position="relative",t.container.appendChild(i),this.renderBoundaries=[1e4,1e4,0,0],this.palette=this._getColorPalette(t),this.templates=[],this._setStyles(t)}return t.prototype.renderPartial=function(t){t.data.length>0&&(this._drawAlpha(t),this._colorize())},t.prototype.renderAll=function(t){this._clear(),t.data.length>0&&(this._drawAlpha(this._prepareData(t)),this._colorize())},t.prototype.updateConfig=function(t){t.gradient&&this._updateGradient(t),this._setStyles(t)},t.prototype.setDimensions=function(t,e){this.width=this.canvas.width=this.shadowCanvas.width=t,this.height=this.canvas.height=this.shadowCanvas.height=e},t.prototype.getValueAt=function(t){if(!this.shadowCtx)return 0;var e=this.shadowCtx.getImageData(t.x,t.y,1,1);return Math.abs(this.max-this.min)*(e.data[3]/255)>>0},t.prototype.getDataURL=function(){return this.canvas.toDataURL()},t.prototype._getColorPalette=function(t){var e=t.gradient||t.defaultGradient,i=document.createElement("canvas"),a=i.getContext("2d");if(i.width=256,i.height=1,!a)return new Uint8ClampedArray(1024);var r=a.createLinearGradient(0,0,256,1);for(var n in e)r.addColorStop(Number(n),e[n]);return a.fillStyle=r,a.fillRect(0,0,256,1),a.getImageData(0,0,256,1).data},t.prototype._getPointTemplate=function(t,e){var i=document.createElement("canvas"),a=i.getContext("2d");if(!a)return i;var r=t,n=t;if(i.width=i.height=2*t,1===e)a.beginPath(),a.arc(r,n,t,0,2*Math.PI,!1),a.fillStyle="rgba(0,0,0,1)",a.fill();else{var s=a.createRadialGradient(r,n,t*e,r,n,t);s.addColorStop(0,"rgba(0,0,0,1)"),s.addColorStop(1,"rgba(0,0,0,0)"),a.fillStyle=s,a.fillRect(0,0,2*t,2*t)}return i},t.prototype._prepareData=function(t){for(var e=[],i=t.min,a=t.max,r=t.radi,n=t.data,s=Object.keys(n),h=s.length;h--;)for(var o=s[h],d=Object.keys(n[o]),l=d.length;l--;){var u=d[l],c=n[o][u],p=r[o][u];e.push({x:Number(o),y:Number(u),value:c,radius:p})}return{min:i,max:a,data:e}},t.prototype._setStyles=function(t){this.blur=0===t.blur?0:t.blur||t.defaultBlur,t.backgroundColor&&(this.canvas.style.backgroundColor=t.backgroundColor),this.width=this.canvas.width=this.shadowCanvas.width=t.width||this.width,this.height=this.canvas.height=this.shadowCanvas.height=t.height||this.height,this.opacity=255*(t.opacity||0),this.maxOpacity=255*(t.maxOpacity||t.defaultMaxOpacity),this.minOpacity=255*(t.minOpacity||t.defaultMinOpacity),this.useGradientOpacity=!!t.useGradientOpacity},t.prototype._updateGradient=function(t){this.palette=this._getColorPalette(t)},t.prototype._drawAlpha=function(t){for(var e=this.min=t.min,i=this.max=t.max,a=t.data||[],r=a.length,n=1-this.blur;r--;){var s=a[r],h=s.x,o=s.y,d=s.radius,l=Math.min(s.value,i),u=h-d,c=o-d;if(!this.shadowCtx)return;var p=void 0;this.templates[d]?p=this.templates[d]:this.templates[d]=p=this._getPointTemplate(d,n);var g=(l-e)/(i-e);this.shadowCtx.globalAlpha=g<.01?.01:g,this.shadowCtx.drawImage(p,u,c),u<this.renderBoundaries[0]&&(this.renderBoundaries[0]=u),c<this.renderBoundaries[1]&&(this.renderBoundaries[1]=c),u+2*d>this.renderBoundaries[2]&&(this.renderBoundaries[2]=u+2*d),c+2*d>this.renderBoundaries[3]&&(this.renderBoundaries[3]=c+2*d)}},t.prototype._colorize=function(){var t=this.renderBoundaries[0],e=this.renderBoundaries[1],i=this.renderBoundaries[2]-t,a=this.renderBoundaries[3]-e,r=this.width,n=this.height;if(t<0&&(t=0),e<0&&(e=0),t+i>r&&(i=r-t),e+a>n&&(a=n-e),this.ctx&&this.shadowCtx){for(var s=this.shadowCtx.getImageData(t,e,i,a),h=3;h<s.data.length;h+=4){var o,d=s.data[h],l=4*d;if(l)o=this.opacity>0?this.opacity:d<this.maxOpacity?d<this.minOpacity?this.minOpacity:d:this.maxOpacity,s.data[h-3]=this.palette[l],s.data[h-2]=this.palette[l+1],s.data[h-1]=this.palette[l+2],s.data[h]=this.useGradientOpacity?this.palette[l+3]:o}this.ctx.putImageData(s,t,e),this.renderBoundaries=[1e3,1e3,0,0]}},t.prototype._clear=function(){this.ctx&&this.shadowCtx&&(this.ctx.clearRect(0,0,this.width,this.height),this.shadowCtx.clearRect(0,0,this.width,this.height))},t}(),r={defaultRadius:40,defaultGradient:{.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},defaultMaxOpacity:1,defaultMinOpacity:0,defaultBlur:.85,defaultXField:"x",defaultYField:"y",defaultValueField:"value",plugins:{}};return function(){function e(e){this.config=t(t({},r),e),this.renderer=new a(this.config),this.store=new i(this.config),this._init()}return e.prototype._init=function(){var t=this;this.store.coordinator.on("renderpartial",this.renderer.renderPartial,this.renderer),this.store.coordinator.on("renderall",this.renderer.renderAll,this.renderer),this.store.coordinator.on("extremachange",(function(e){t.config.onExtremaChange&&t.config.onExtremaChange({min:e.min,max:e.max,gradient:t.config.gradient||t.config.defaultGradient})}))},e.prototype.addData=function(t){return this.store.addData(t),this},e.prototype.setData=function(t){return this.store.setData(t),this},e.prototype.setDataMaxx=function(t){return this.store.setDataMax(t),this},e.prototype.setDataMin=function(t){return this.store.setDataMin(t),this},e.prototype.repaint=function(){return this.store.coordinator.emit("renderall",this.store._getInternalData()),this},e.prototype.getData=function(){return this.store.getData()},e.prototype.getDataURL=function(){return this.renderer.getDataURL()},e.prototype.getValueAt=function(t){return this.renderer.getValueAt(t)},e}()}(); | ||
var HeatMap=function(){"use strict";var t={defaultRadius:40,defaultGradient:{.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},defaultMaxOpacity:1,defaultMinOpacity:0,defaultBlur:.85,defaultXField:"x",defaultYField:"y",defaultValueField:"value",plugins:{}},i=function(){function t(){this.eStore={}}return t.prototype.on=function(t,i,a){this.eStore[t]||(this.eStore[t]=[]),this.eStore[t].push((function(t){return i.call(a,t)}))},t.prototype.emit=function(t,i){this.eStore[t]&&this.eStore[t].forEach((function(t){return t(i)}))},t}(),a=function(){function a(a){this.coordinator=new i,this.data=[],this.radi=[],this.min=10,this.max=1,this.xField=a.xField||t.defaultXField,this.yField=a.yField||t.defaultYField,this.valueField=a.valueField||t.defaultValueField,this.radius=a.radius||t.defaultRadius}return a.prototype._organiseData=function(t,i){var a=t[this.xField],e=t[this.yField],r=this.radi,n=this.data,s=this.max,h=this.min,o=t[this.valueField]||1,d=t.radius||this.radius;r[a]||(n[a]=[],r[a]=[]),r[a][e]?n[a][e]+=o:(n[a][e]=o,r[a][e]=d);var u=n[a][e];return u?u>s?(i?this.setDataMax(u):this.max=u,!1):u<h?(i?this.setDataMin(u):this.min=u,!1):void 0:{x:a,y:e,value:o,radius:d,min:h,max:s}},a.prototype._unOrganizeData=function(){for(var t=[],i=0;i<this.radi.length;i++)for(var a=0;a<this.radi[i].length;a++)t.push({x:i,y:a,radius:this.radi[i][a],value:this.radi[i][a]});return{min:this.min,max:this.max,data:t}},a.prototype._onExtremaChange=function(){this.coordinator.emit("extremachange",{min:this.min,max:this.max})},a.prototype.addData=function(t){var i=this._organiseData(t,!0);i&&(0===this.data.length&&(this.min=i.value,this.max=i.value),this.coordinator.emit("renderpartial",{min:this.min,max:this.max,data:[i]}))},a.prototype.setData=function(t){var i=t.data;this.data=[],this.radi=[];for(var a=0;a<i.length;a++)this._organiseData(i[a],!1);return this.max=t.max,this.min=t.min||0,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},a.prototype.setDataMax=function(t){return this.max=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},a.prototype.setDataMin=function(t){return this.min=t,this._onExtremaChange(),this.coordinator.emit("renderall",this._getInternalData()),this},a.prototype._getInternalData=function(){return{max:this.max,min:this.min,data:this.data,radi:this.radi}},a.prototype.getData=function(){return this._unOrganizeData()},a}(),e=function(){function i(t){this.canvas=t.canvas||document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.shadowCanvas=t.shadowCanvas||document.createElement("canvas"),this.shadowCtx=this.shadowCanvas.getContext("2d"),this.width=t.width||512,this.height=t.height||512,this.max=100,this.min=1,this.blur=1,this.opacity=1,this.maxOpacity=1,this.minOpacity=0,this.useGradientOpacity=!1,this.canvas.style.cssText=this.shadowCanvas.style.cssText="position:absolute;left:0;top:0;",t.container&&(t.container.style.position="relative",t.container.appendChild(this.canvas)),this.renderBoundaries=[1e4,1e4,0,0],this.palette=this._getColorPalette(t),this.templates=[],this._setStyles(t)}return i.prototype.renderPartial=function(t){t.data.length>0&&(this._drawAlpha(t),this._colorize())},i.prototype.renderAll=function(t){this._clear(),t.data.length>0&&(this._drawAlpha(this._prepareData(t)),this._colorize())},i.prototype.updateConfig=function(t){t.gradient&&this._updateGradient(t),this._setStyles(t)},i.prototype.setDimensions=function(t,i){this.width=this.canvas.width=this.shadowCanvas.width=t,this.height=this.canvas.height=this.shadowCanvas.height=i},i.prototype.getValueAt=function(t){if(!this.shadowCtx)return 0;var i=this.shadowCtx.getImageData(t.x,t.y,1,1);return Math.abs(this.max-this.min)*(i.data[3]/255)>>0},i.prototype.getDataURL=function(){return this.canvas.toDataURL()},i.prototype._getColorPalette=function(i){var a=i.gradient||t.defaultGradient,e=document.createElement("canvas"),r=e.getContext("2d");if(e.width=256,e.height=1,!r)return new Uint8ClampedArray(1024);var n=r.createLinearGradient(0,0,256,1);for(var s in a)n.addColorStop(Number(s),a[s]);return r.fillStyle=n,r.fillRect(0,0,256,1),r.getImageData(0,0,256,1).data},i.prototype._getPointTemplate=function(t,i){var a=document.createElement("canvas"),e=a.getContext("2d");if(!e)return a;var r=t,n=t;if(a.width=a.height=2*t,1===i)e.beginPath(),e.arc(r,n,t,0,2*Math.PI,!1),e.fillStyle="rgba(0,0,0,1)",e.fill();else{var s=e.createRadialGradient(r,n,t*i,r,n,t);s.addColorStop(0,"rgba(0,0,0,1)"),s.addColorStop(1,"rgba(0,0,0,0)"),e.fillStyle=s,e.fillRect(0,0,2*t,2*t)}return a},i.prototype._prepareData=function(t){for(var i=[],a=t.min,e=t.max,r=t.radi,n=t.data,s=Object.keys(n),h=s.length;h--;)for(var o=s[h],d=Object.keys(n[o]),u=d.length;u--;){var l=d[u],c=n[o][l],p=r[o][l];i.push({x:Number(o),y:Number(l),value:c,radius:p})}return{min:a,max:e,data:i}},i.prototype._setStyles=function(i){this.blur=0===i.blur?0:i.blur||t.defaultBlur,i.backgroundColor&&(this.canvas.style.backgroundColor=i.backgroundColor),this.width=this.canvas.width=this.shadowCanvas.width=i.width||this.width,this.height=this.canvas.height=this.shadowCanvas.height=i.height||this.height,this.opacity=255*(i.opacity||0),this.maxOpacity=255*(i.maxOpacity||t.defaultMaxOpacity),this.minOpacity=255*(i.minOpacity||t.defaultMinOpacity),this.useGradientOpacity=!!i.useGradientOpacity},i.prototype._updateGradient=function(t){this.palette=this._getColorPalette(t)},i.prototype._drawAlpha=function(t){for(var i=this.min=t.min,a=this.max=t.max,e=t.data||[],r=e.length,n=1-this.blur;r--;){var s=e[r],h=s.x,o=s.y,d=s.radius,u=Math.min(s.value,a),l=h-d,c=o-d;if(!this.shadowCtx)return;var p=void 0;this.templates[d]?p=this.templates[d]:this.templates[d]=p=this._getPointTemplate(d,n);var m=(u-i)/(a-i);this.shadowCtx.globalAlpha=m<.01?.01:m,this.shadowCtx.drawImage(p,l,c),l<this.renderBoundaries[0]&&(this.renderBoundaries[0]=l),c<this.renderBoundaries[1]&&(this.renderBoundaries[1]=c),l+2*d>this.renderBoundaries[2]&&(this.renderBoundaries[2]=l+2*d),c+2*d>this.renderBoundaries[3]&&(this.renderBoundaries[3]=c+2*d)}},i.prototype._colorize=function(){var t=this.renderBoundaries[0],i=this.renderBoundaries[1],a=this.renderBoundaries[2]-t,e=this.renderBoundaries[3]-i,r=this.width,n=this.height;if(t<0&&(t=0),i<0&&(i=0),t+a>r&&(a=r-t),i+e>n&&(e=n-i),this.ctx&&this.shadowCtx){for(var s=this.shadowCtx.getImageData(t,i,a,e),h=3;h<s.data.length;h+=4){var o,d=s.data[h],u=4*d;if(u)o=this.opacity>0?this.opacity:d<this.maxOpacity?d<this.minOpacity?this.minOpacity:d:this.maxOpacity,s.data[h-3]=this.palette[u],s.data[h-2]=this.palette[u+1],s.data[h-1]=this.palette[u+2],s.data[h]=this.useGradientOpacity?this.palette[u+3]:o}this.ctx.putImageData(s,t,i),this.renderBoundaries=[1e3,1e3,0,0]}},i.prototype._clear=function(){this.ctx&&this.shadowCtx&&(this.ctx.clearRect(0,0,this.width,this.height),this.shadowCtx.clearRect(0,0,this.width,this.height))},i}();return function(){function i(t){this.config=t,this.renderer=new e(this.config),this.store=new a(this.config),this._init()}return i.prototype._init=function(){var i=this;this.store.coordinator.on("renderpartial",this.renderer.renderPartial,this.renderer),this.store.coordinator.on("renderall",this.renderer.renderAll,this.renderer),this.store.coordinator.on("extremachange",(function(a){i.config.onExtremaChange&&i.config.onExtremaChange({min:a.min,max:a.max,gradient:i.config.gradient||t.defaultGradient})}))},i.prototype.addData=function(t){return this.store.addData(t),this},i.prototype.setData=function(t){return this.store.setData(t),this},i.prototype.setDataMaxx=function(t){return this.store.setDataMax(t),this},i.prototype.setDataMin=function(t){return this.store.setDataMin(t),this},i.prototype.repaint=function(){return this.store.coordinator.emit("renderall",this.store._getInternalData()),this},i.prototype.getData=function(){return this.store.getData()},i.prototype.getDataURL=function(){return this.renderer.getDataURL()},i.prototype.getValueAt=function(t){return this.renderer.getValueAt(t)},i}()}(); |
import { StoreConfig, StoreData } from './store'; | ||
import { defaultConfig } from './defaultConfig'; | ||
import { DefaultConfig } from './defaultConfig'; | ||
import { Point } from './interface'; | ||
interface RendererConfig extends StoreConfig, defaultConfig { | ||
container: HTMLElement; | ||
interface RendererConfig extends StoreConfig { | ||
container?: HTMLElement; | ||
canvas?: HTMLCanvasElement; | ||
@@ -10,4 +10,4 @@ shadowCanvas?: HTMLCanvasElement; | ||
height?: number; | ||
gradient?: defaultConfig['defaultGradient']; | ||
blur?: defaultConfig['defaultBlur']; | ||
gradient?: DefaultConfig['defaultGradient']; | ||
blur?: DefaultConfig['defaultBlur']; | ||
backgroundColor?: string; | ||
@@ -14,0 +14,0 @@ opacity?: number; |
import { AxisFields, ValueFields, DataPoint } from './interface'; | ||
import { defaultConfig } from './defaultConfig'; | ||
import Coordinator from './coordinator'; | ||
interface StoreConfig extends defaultConfig { | ||
interface StoreConfig { | ||
xField?: AxisFields; | ||
@@ -6,0 +5,0 @@ yField?: AxisFields; |
{ | ||
"name": "heatmap-ts", | ||
"version": "0.0.1", | ||
"version": "0.0.2", | ||
"description": "Forked from [pa7/heatmap.js](https://github.com/pa7/heatmap.js) for TypeScript.", | ||
@@ -10,3 +10,3 @@ "main": "dist/index.js", | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\" && exit 1", | ||
"dev": "rollup --config ./rollup.config.js --watch", | ||
"build": "rollup --config ./rollup.config.js" | ||
@@ -13,0 +13,0 @@ }, |
import { AxisFields, ValueFields } from './interface' | ||
export interface defaultConfig { | ||
export interface DefaultConfig { | ||
defaultRadius: number; | ||
@@ -16,4 +16,3 @@ defaultGradient: Record<number, string>; | ||
// Heatmap Config stores default values and will be merged with instance config | ||
export default { | ||
const defaultConfigs: DefaultConfig = { | ||
defaultRadius: 40, | ||
@@ -29,1 +28,4 @@ defaultGradient: { 0.25: "rgb(0,0,255)", 0.55: "rgb(0,255,0)", 0.85: "yellow", 1.0: "rgb(255,0,0)" }, | ||
} | ||
// Heatmap Config stores default values and will be merged with instance config | ||
export default defaultConfigs |
import Store, { StoreData } from './store' | ||
import Renderer, { RendererConfig } from './renderer' | ||
import DefaultConfig from './defaultConfig' | ||
import DefaultConfigs, { DefaultConfig } from './defaultConfig' | ||
import { Point, DataPoint } from './interface' | ||
@@ -17,3 +17,3 @@ | ||
constructor(config: Config) { | ||
this.config = { ...DefaultConfig, ...config } | ||
this.config = config | ||
this.renderer = new Renderer(this.config) | ||
@@ -33,3 +33,3 @@ this.store = new Store(this.config) | ||
max: data.max, | ||
gradient: this.config.gradient || this.config.defaultGradient | ||
gradient: this.config.gradient || DefaultConfigs.defaultGradient | ||
}); | ||
@@ -36,0 +36,0 @@ }) |
import { StoreConfig, StoreData } from './store' | ||
import { defaultConfig } from './defaultConfig' | ||
import DefaultConfigs, { DefaultConfig } from './defaultConfig' | ||
import { Point, DataPoint } from './interface' | ||
interface RendererConfig extends StoreConfig, defaultConfig { | ||
container: HTMLElement; | ||
interface RendererConfig extends StoreConfig { | ||
container?: HTMLElement; | ||
canvas?: HTMLCanvasElement; | ||
@@ -11,4 +11,4 @@ shadowCanvas?: HTMLCanvasElement; | ||
height?: number; | ||
gradient?: defaultConfig['defaultGradient']; | ||
blur?: defaultConfig['defaultBlur']; | ||
gradient?: DefaultConfig['defaultGradient']; | ||
blur?: DefaultConfig['defaultBlur']; | ||
backgroundColor?: string; | ||
@@ -20,3 +20,2 @@ opacity?: number; | ||
} | ||
class Renderer { | ||
@@ -45,20 +44,13 @@ | ||
const styles = getComputedStyle(config.container) | ||
const canvas = config.canvas || document.createElement('canvas') | ||
const shadowCanvas = config.shadowCanvas || document.createElement('canvas') | ||
this.canvas = config.canvas || document.createElement('canvas') | ||
this.ctx = this.canvas.getContext('2d') | ||
this.canvas = canvas | ||
this.ctx = canvas.getContext('2d') | ||
this.shadowCanvas = config.shadowCanvas || document.createElement('canvas') | ||
this.shadowCtx = this.shadowCanvas.getContext('2d') | ||
this.shadowCanvas = shadowCanvas | ||
this.shadowCtx = shadowCanvas.getContext('2d') | ||
this.width = config.width || 512 | ||
this.height = config.height || 512 | ||
const width = config.width || +(styles.width.replace(/px/, '')) | ||
const height = config.height || +(styles.height.replace(/px/, '')) | ||
this.width = canvas.width = shadowCanvas.width = width | ||
this.height = canvas.height = shadowCanvas.height = height | ||
this.max = 0 | ||
this.min = 0 | ||
this.max = 100 | ||
this.min = 1 | ||
this.blur = 1 | ||
@@ -71,7 +63,11 @@ this.opacity = 1 | ||
canvas.style.cssText = shadowCanvas.style.cssText = 'position:absolute;left:0;top:0;' | ||
this.canvas.style.cssText = this.shadowCanvas.style.cssText = 'position:absolute;left:0;top:0;' | ||
config.container.style.position = 'relative' | ||
config.container.appendChild(canvas) | ||
if (config.container) { | ||
config.container.style.position = 'relative' | ||
config.container.appendChild(this.canvas) | ||
} | ||
this.renderBoundaries = [10000, 10000, 0, 0] | ||
@@ -122,3 +118,3 @@ this.palette = this._getColorPalette(config) | ||
_getColorPalette(config: RendererConfig): Uint8ClampedArray { | ||
const gradientConfig = config.gradient || config.defaultGradient | ||
const gradientConfig = config.gradient || DefaultConfigs.defaultGradient | ||
const paletteCanvas = document.createElement('canvas') | ||
@@ -212,3 +208,3 @@ const paletteCtx = paletteCanvas.getContext('2d') | ||
_setStyles(config: RendererConfig): void { | ||
this.blur = config.blur === 0 ? 0 : (config.blur || config.defaultBlur) | ||
this.blur = config.blur === 0 ? 0 : (config.blur || DefaultConfigs.defaultBlur) | ||
@@ -223,4 +219,4 @@ if (config.backgroundColor) { | ||
this.opacity = (config.opacity || 0) * 255 | ||
this.maxOpacity = (config.maxOpacity || config.defaultMaxOpacity) * 255 | ||
this.minOpacity = (config.minOpacity || config.defaultMinOpacity) * 255 | ||
this.maxOpacity = (config.maxOpacity || DefaultConfigs.defaultMaxOpacity) * 255 | ||
this.minOpacity = (config.minOpacity || DefaultConfigs.defaultMinOpacity) * 255 | ||
this.useGradientOpacity = !!config.useGradientOpacity | ||
@@ -227,0 +223,0 @@ } |
import { AxisFields, ValueFields, DataPoint } from './interface' | ||
import { defaultConfig } from './defaultConfig' | ||
import DefaultConfigs, { DefaultConfig } from './defaultConfig' | ||
import Coordinator from './coordinator' | ||
interface StoreConfig extends defaultConfig { | ||
interface StoreConfig { | ||
xField?: AxisFields; | ||
@@ -43,6 +43,6 @@ yField?: AxisFields; | ||
this.max = 1 | ||
this.xField = config.xField || config.defaultXField | ||
this.yField = config.yField || config.defaultYField | ||
this.valueField = config.valueField || config.defaultValueField | ||
this.radius = config.radius || config.defaultRadius | ||
this.xField = config.xField || DefaultConfigs.defaultXField | ||
this.yField = config.yField || DefaultConfigs.defaultYField | ||
this.valueField = config.valueField || DefaultConfigs.defaultValueField | ||
this.radius = config.radius || DefaultConfigs.defaultRadius | ||
} | ||
@@ -61,8 +61,6 @@ | ||
console.log('x', x) | ||
if (!radi[x]) { | ||
data[x] = []; | ||
radi[x] = [] | ||
} | ||
} | ||
if (!radi[x][y]) { | ||
@@ -69,0 +67,0 @@ data[x][y] = value; |
Sorry, the diff of this file is not supported yet
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
2
54596
908