realmap 1.1.10 → 1.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/gl.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  /**
3
- * RealMap Gl v1.1.10
3
+ * RealMap Gl v1.1.12
4
4
  * Copyright (C) 2023-2026 WooriTech Inc.
5
5
  * All Rights Reserved.
6
6
  */
7
- import{extend as t,ValueSeries as e,ValuePoint as r,GLPointSeriesType as a,pickNum as i,SeriesView as s,RmElement as n,PointElement as o}from"./index.mjs";class l extends r{}class c extends e{_doApply(t){super._doApply(t)}_createPoint(t){return new l(t)}isPointLabelsVisible(){return!1}_defLabelOff(){return 2}_doPrepareRender(t,e){super._doPrepareRender(t,e),this._hitPoints=void 0}hitTest(t,e){this._hitPoints||!0===this._op.disabled||(console.time("prepare gl hit tests"),this._hitPoints=this._visPoints.slice().sort(((t,e)=>t.glPoint[0]-e.glPoint[0])),console.timeEnd("prepare gl hit tests"));const r=this._hitPoints;if(!r)return;const a=this._getHitRadius(),i=[];let s=0,n=r.length-1,o=-1;for(;s<=n;){const e=Math.floor((s+n)/2),i=r[e];if(t<i.glPoint[0]-a)n=e-1;else{if(!(t>=i.glPoint[0]+a)){o=e;break}s=e+1}}if(-1===o)return i;let l=o;for(;l>=0&&r[l].glPoint[0]-a<=t;)r[l].glPoint[0]+a>t&&i.unshift(r[l]),l--;for(l=o+1;l<r.length&&r[l].glPoint[0]-a<=t;)r[l].glPoint[1]+a>t&&i.push(r[l]),l++;return i.length>0?i.filter((t=>e>=t.glPoint[1]-a&&e<t.glPoint[1]+a)):void 0}}c.defaults=t(e.defaults,{});class h extends l{_readObject(t,e){super._readObject(t,e)}}class f extends c{getRadius(){return i(this._op.radius,f.defaults.radius)}_doApply(t){super._doApply(t)}_createPoint(t){return new h(t)}_defLabelOff(){return 2}_getHitRadius(){return this.getRadius()}}f.type=a,f.defaults=t(c.defaults,{radius:5,position:"center"});const u=Array.isArray,d=Math.min,g=Math.max,_=Math.abs,p=function(t,e){return t=parseFloat(t),isNaN(t)?parseFloat(e):t};let m=0;class b{$_hash;$_destroyed=!1;$_destroying=!1;constructor(t){t||(this.$_hash=String(m++))}destroy(){return!this.$_destroyed&&!this.$_destroying&&(this.$_destroying=!0,this._doDestory(),this.$_destroyed=!0),null}_doDestory(){}get destroying(){return this.$_destroying}get orphaned(){return this.$_destroying||this.$_destroyed}get hash(){return this.$_hash}isMe(t){return t===this.$_hash}toString(){return this.constructor.name}toBool(t){return"string"==typeof t?"true"===t:t}toNum(t,e=NaN){return t=parseFloat(t),isNaN(t)?e:t}}class y extends b{_width;_height;_mat;_gl;_program;constructor(t){super(),this._gl=t._gl}_doDestory(){if(this._program){const t=this._gl;t.getAttachedShaders(this._program).forEach((e=>t.deleteShader(e))),t.deleteProgram(this._program),this._program=null}}_run(t,e,r,a){this._program||(this._program=this.$_createProgram(this._gl,this._getVShader(),this._getFShader())),(r!==this._width||a!==this._height)&&(this.$_useProgram(this._gl,this._program),this._width=r,this._height=a,this._mat=this.$_createMatrix(0,0,r,a),t.viewport(0,0,r,a),t.uniformMatrix4fv(t.getUniformLocation(this._program,"u_matrix"),!1,this._mat)),t.bindBuffer(t.ARRAY_BUFFER,e),this._doRun(t,e,r,a)}$_createShader(t,e,r){const a=t.createShader(e);if(!a)throw new Error("Failed to create a shader");if(t.shaderSource(a,r),t.compileShader(a),!t.getShaderParameter(a,t.COMPILE_STATUS)){const e=t.getShaderInfoLog(a);throw t.deleteShader(a),new Error(`Shader compilation failed:\n${r.split("\n").map(((t,e)=>`${e+1}: ${t}`)).join("\n")}\n\n${e}`)}return a}$_createProgram(t,e,r){const a=this.$_createShader(t,t.VERTEX_SHADER,e),i=this.$_createShader(t,t.FRAGMENT_SHADER,r),s=t.createProgram();if(!s)throw new Error("Failed to create a program");if(t.attachShader(s,a),t.attachShader(s,i),t.linkProgram(s),!t.getProgramParameter(s,t.LINK_STATUS))throw t.getShaderInfoLog(s),t.deleteProgram(s),new Error(t.getProgramInfoLog(s));return s}$_useProgram(t,e){t.useProgram(e)}$_createMatrix(t,e,r,a){return new Float32Array([2/(r-t),0,0,0,0,2/(e-a),0,0,0,0,1,0,-(r+t)/(r-t),-(e+a)/(e-a),0,1])}_drawTrianlges(t,e){t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),t.drawArrays(t.TRIANGLES,0,e.length/2)}_drawPoints(t,e,r){t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),t.drawArrays(t.POINTS,0,e.length/r)}_drawLines(t,e,r,a){t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),t.drawArrays(a?t.LINE_LOOP:t.LINES,0,e.length/r)}}class w extends b{_gl;_buffer;_programs;constructor(t){super();const e=this._gl=t.getContext("webgl");if(!e)throw new Error("WebGL not supported");this._buffer=e.createBuffer()}_doDestory(){const t=this._gl;t&&(t.deleteBuffer(this._buffer),this._programs.forEach((t=>t.destroy())),this._gl=null)}render(t,e=!0,r,a){const i=this._gl;console.time("gl_render"),e&&this.$_clear(),t.forEach((t=>t._run(i,this._buffer,p(r,i.canvas.width),p(a,i.canvas.height)))),console.timeEnd("gl_render")}$_clear(){const t=this._gl;t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT)}}const A=(new Date).getTime();typeof window<"u"&&!Element.prototype.animate&&(Element.prototype.animate=function(t){});const P=typeof navigator<"u"?navigator.userAgent:"",S=P?navigator.appVersion:"";P.match(/Trident.*rv\:11\./),S.indexOf("MSIE 10"),S.indexOf("MSIE 9");class v{static LOGGING=!1;static log(...t){this.LOGGING&&console.log(...t)}static logIf(t,...e){this.LOGGING&&t&&console.log(...e)}static week_days=["일","월","화","수","목","금","토"];static long_week_days=["일요일","월요일","화요일","수요일","목요일","금요일","토요일"];static month_days=[[31,28,31,30,31,30,31,31,30,31,30,31],[31,29,31,30,31,30,31,31,30,31,30,31]];static now(){return+new Date}static parseDate(t,e){const r=new Date(t);return isNaN(r.getTime())?e||new Date:r}static isLeapYear(t){return t%4==0&&t%100!=0||t%400==0}static dateOfYear(t){var e=t.getMonth(),r=t.getDate(),a=[0,31,59,90,120,151,181,212,243,273,304,334][e]+r;return e>1&&v.isLeapYear(t.getFullYear())&&a++,a}static incMonth(t,e){const r=t.getDate();return t.setDate(1),t.setMonth(t.getMonth()+e),t.setDate(d(r,v.month_days[v.isLeapYear(t.getFullYear())?1:0][t.getMonth()])),t}static minDate(t,e){return null!==t?t:null!==e?e:t.getTime()<e.getTime()?t:e}static maxDate(t,e){return null!==t?e:null!==e||t.getTime()>e.getTime()?t:e}static weekOfMonth(t,e,r){const a=t.getMonth(),i=t.getFullYear(),s=new Date(i,a,1).getDay(),n=new Date(i,a+1,0).getDate(),o=t.getDate()+s-1,l=e+Math.ceil((n+s-7)/7),c=e+Math.floor(o/7);return r||c<2+e?c:c===l?e+5:c}static weekOfYear(t,e){const r=t.getFullYear(),a=new Date(r,0,1).getDay(),i=this.dateOfYear(t)+a-1;return e+Math.floor(i/7)}static isObject(t){return t&&"object"==typeof t&&!u(t)}static isValidObject(t){if(this.isObject(t))for(let e in t)if(t.hasOwnProperty(e))return!0}static checkArray(t){return u(t)?t:void 0}static makeArray(t,e=!1){return null!=t?u(t)?t:[t]:e?[]:void 0}static makeNumArray(t){return u(t)?t.map((t=>+t)):null!=t?[+t]:[]}static getIntArray(t,e=0){const r=[];for(let a=e,i=e+t;a<i;a++)r.push(a);return r}static isValueArray(t){if(u(t)){for(let e=t.length-1;e>=0;e--)if(null!=t[e]&&"object"==typeof t[e])return!1;return!0}return!1}static toArray(t){return u(t)?t:null!=t?[t]:null}static copyArray(t){return u(t)?t.slice(0):null!=t?[t]:void 0}static push(t,e){if(e&&e.length>0)for(let r=0,a=e.length;r<a;r++)t.push(e[r])}static isDefined(t){return null!=t}static isNotDefined(t){return null==t}static isNum(t){return"number"==typeof t}static canNumber(t){return!isNaN(t)&&!isNaN(parseFloat(t))}static isValidNum(t){return"number"==typeof t&&!isNaN(t)&&isFinite(t)}static getNum(t,e=0){const r=parseFloat(t);return isFinite(r)?r:e}static toNum(t,e=0){return isNaN(t)||null===t||""===t?e:+t}static compareText(t,e,r=!1){return t=t||"",e=e||"",r&&(t=t.toLocaleLowerCase(),e=e.toLocaleLowerCase()),t>e?1:t<e?-1:0}static getTimeF(){return(new Date).getTime()/1e3}static getTimer(){return(new Date).getTime()-A}static isWhiteSpace(t){return!t||!t.trim()}static pad(t,e,r){return e=g(e||2,1),r=r||"0",new Array(e-String(t).length+1).join(r)+t}static pad16(t,e,r){return e=g(e||2,1),r=r||"0",new Array(e-t.toString(16).length+1).join(r)+t.toString(16)}static pick(...t){const e=t.length;let r;for(let a=0;a<e;a++)if(r=t[a],null!=r)return r}static toStr(t){return Number.isNaN(t)||null==t?"":String(t)}static extend(t,e){t=t||{};for(let r in e)t[r]=e[r];return t}static equalNumbers(t,e){return isNaN(t)==isNaN(e)&&!isNaN(t)&&t==e}static equalArrays(t,e){if(t===e)return!0;if(null==t||null==e)return!1;const r=t.length;if(r!=e.length)return!1;for(let a=0;a<r;++a)if(t[a]!==e[a])return!1;return!0}static isEmpty(t){if(t)for(let e in t)return!1;return!0}static isNotEmpty(t){if(t)for(let e in t)return!0;return!1}static deepClone(t){if(t instanceof Date)return new Date(t);if(null==t||"object"!=typeof t)return t;{const e=u(t)?[]:{};for(let r of Object.keys(t))e[r]=v.deepClone(t[r]);return e}}static getArray(t,e){const r=[];for(let a=0;a<t;a++)r.push(e);return r}static getNumArray(t,e=0){const r=[];for(let a=0;a<t;a++)r.push(e);return r}static dedupe(t,e){t=t.sort(e||((t,e)=>t>e?1:t<e?-1:0));for(let e=t.length-1;e>0;e--)t[e]===t[e-1]&&t.splice(e,1);return t}static sortNum(t){return t.sort(((t,e)=>t-e))}static logElapsed(t,e){const r=+new Date;e(),v.log(t,+new Date-r+"ms")}static clamp(t,e,r){return g(e,d(r,t))}static clampEx(t,e,r){return isNaN(e)||(t=g(e,t)),isNaN(r)||(t=d(r,t)),t}static makeIntArray(t,e){const r=new Array(g(0,e-t));for(let a=t;a<e;a++)r[a-t]=a;return r}static shuffle(t){for(let e=t.length-1;e>0;e--){const r=Math.floor(Math.random()*(e+1));[t[e],t[r]]=[t[r],t[e]]}}static isDate(t){return"[object Date]"===Object.prototype.toString.call(t)}static isValidDate(t){return t.getTime()==t.getTime()}static asFunction(t){return"function"==typeof t?t:void 0}static getFieldProp(t){const e=t.indexOf(".");if(e>=0)return{field:t.substring(0,e),props:t.substring(e+1).split(".")}}static uniqueKey(){return Math.random().toString(36).substring(2,10)}static startsWith(t,e){if(t&&e)return 0===t.indexOf(e)}static endsWith(t,e){if(t&&e)return t.indexOf(e,-t.length)===t.length-e.length}static scaleNumber(t,e,r){const a=_(t);if(a>=1e3){let i=e.length;for(;i>0;){const s=Math.pow(1e3,i--);if(s<=Math.pow(10,Math.log(a)*Math.LOG10E)&&(r||10*a%s==0))return{value:t/s,symbol:e[i]}}}}static jitter(t,e){return t+(2*Math.random()-1)*e}static getLogger(t){if(t>=2)return function(e){return Math.log(e)/Math.log(t)}}static getMinMax(t){let e=t[0],r=t[0];for(let a=1;a<t.length;a++)e=d(e,t[a]),r=g(r,t[a]);return{min:e,max:r}}static valueAt(t,e){if(e&&(this.isObject(t)||u(t))){const r=e.split(".");let a=t;for(let t of r)a=a[t];return a}return t}static normalizeToSteps(t,e){if(t.length<2)return t;const r=Math.min(...t),a=Math.max(...t);if(r===a)return[r];const i=(a-r)/(e-1),s=10**Math.floor(Math.log10(i)),n=i/s;let o;o=n<=1?1:n<=2?2:n<=5?5:10,o*=s;const l=Math.floor(r/o)*o,c=[];o=(Math.ceil(a/o)*o-l)/(e-1);for(let t=0;t<e;t++)c.push(l+t*o);return c}}const N=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],k=["f0f8ff","faebd7","00ffff","7fffd4","f0ffff","f5f5dc","ffe4c4","000000","ffebcd","0000ff","8a2be2","a52a2a","deb887","5f9ea0","7fff00","d2691e","ff7f50","6495ed","fff8dc","dc143c","00ffff","00008b","008b8b","b8860b","a9a9a9","a9a9a9","006400","bdb76b","8b008b","556b2f","ff8c00","9932cc","8b0000","e9967a","8fbc8f","483d8b","2f4f4f","2f4f4f","00ced1","9400d3","ff1493","00bfff","696969","696969","1e90ff","b22222","fffaf0","228b22","ff00ff","dcdcdc","f8f8ff","ffd700","daa520","808080","808080","008000","adff2f","f0fff0","ff69b4","cd5c5c","4b0082","fffff0","f0e68c","e6e6fa","fff0f5","7cfc00","fffacd","add8e6","f08080","e0ffff","fafad2","d3d3d3","d3d3d3","90ee90","ffb6c1","ffa07a","20b2aa","87cefa","778899","778899","b0c4de","ffffe0","00ff00","32cd32","faf0e6","ff00ff","800000","66cdaa","0000cd","ba55d3","9370db","3cb371","7b68ee","00fa9a","48d1cc","c71585","191970","f5fffa","ffe4e1","ffe4b5","ffdead","000080","fdf5e6","808000","6b8e23","ffa500","ff4500","da70d6","eee8aa","98fb98","afeeee","db7093","ffefd5","ffdab9","cd853f","ffc0cb","dda0dd","b0e0e6","800080","663399","ff0000","bc8f8f","4169e1","8b4513","fa8072","f4a460","2e8b57","fff5ee","a0522d","c0c0c0","87ceeb","6a5acd","708090","708090","fffafa","00ff7f","4682b4","d2b48c","008080","d8bfd8","ff6347","40e0d0","ee82ee","f5deb3","ffffff","f5f5f5","ffff00","9acd32"];class M{static COLORS=function(){const t={};for(let e=0;e<N.length;e++)t[N[e]]=k[e];return t}();static create(t){return"string"==typeof t?new M(t):void 0}static isBright(t){return new M(t).isBright()}static getContrast(t,e,r){return new M(t).getContrast(e,r)}static interpolate(t,e,r){const a=new M(null);return a.r=Math.ceil(t.r+(e.r-t.r)*r),a.g=Math.ceil(t.g+(e.g-t.g)*r),a.b=Math.ceil(t.b+(e.b-t.b)*r),a.a=t.a+(e.a-t.a)*r,a}r=0;g=0;b=0;a=1;constructor(t){(t=t&&t.trim())&&(v.startsWith(t,"rgb(")&&v.endsWith(t,")")?this.$_parseRgb(t.substring(4,t.length-1)):v.startsWith(t,"rgba(")&&v.endsWith(t,")")?this.$_parseRgb(t.substring(5,t.length-1)):v.startsWith(t,"#")?this.$_parseNumber(t.substring(1)):M.COLORS[t]&&this.$_parseNumber(M.COLORS[t]))}get rgba(){return"rgba("+[this.r,this.g,this.b,this.a].join(",")+")"}isBright(){return.299*this.r+.587*this.g+.114*this.b>140}getContrast(t,e){return this.isBright()?t||"#000000":e||"#FFFFFF"}brighten(t,e=null){return(e=e||new M(null)).r=Math.ceil(this.r+(255-this.r)*t),e.g=Math.ceil(this.g+(255-this.g)*t),e.b=Math.ceil(this.b+(255-this.b)*t),e.a=this.a,e}toString(){return this.rgba}$_parseRgb(t){const e=t.split(/\,\s*/);e.length>=3&&(this.r=+e[0],this.g=+e[1],this.b=+e[2],e.length>=4?this.a=+e[3]:this.a=1)}$_parseNumber(t){const e=t.length;let r;e>6?(r=parseInt(t.substr(0,6),16),this.a=parseInt(t.substring(6),16)/255):e>0&&(3===e&&(t=t.charAt(0)+t.charAt(0)+t.charAt(1)+t.charAt(1)+t.charAt(2)+t.charAt(2)),r=parseInt(t,16)),this.r=(16711680&r)>>16,this.g=(65280&r)>>8,this.b=255&r}}class x extends y{_points;_radius;_color;constructor(t){super(t)}setOptions(t){const e=this._points=[];this._radius=Math.max(1,p(+t.radius,3)),this._color=new M(t.color||"black");const r=this._color.r/255,a=this._color.g/255,i=this._color.b/255,s=this._color.a;return t.points.forEach((t=>{t.color?M.create(t.color):this._color,e.push(t.x,t.y,r,a,i,s)})),this}_getVShader(){return"\n uniform mat4 u_matrix;\n uniform float u_radius;\n attribute vec2 a_position;\n attribute vec4 a_color;\n varying vec4 v_color;\n\n void main() {\n gl_Position = u_matrix * vec4(a_position, 0.0, 1.0);\n gl_PointSize = u_radius; // 픽셀 단위 점 크기\n v_color = a_color;\n }\n "}_getFShader(){return"\n precision mediump float;\n\n varying vec4 v_color;\n\n void main() {\n gl_FragColor = v_color;\n }\n "}_doRun(t,e,r,a){const i=t.getUniformLocation(this._program,"u_radius"),s=t.getAttribLocation(this._program,"a_position"),n=t.getAttribLocation(this._program,"a_color");t.uniform1f(i,2*this._radius),t.vertexAttribPointer(s,2,t.FLOAT,!1,24,0),t.enableVertexAttribArray(s),t.vertexAttribPointer(n,4,t.FLOAT,!1,24,8),t.enableVertexAttribArray(n),this._drawPoints(t,this._points,6)}}class D extends o{setPoint(t){return this.point=t,this}}class F extends s{constructor(t,e,r,a){super(t,e,r,a);const i=n.createElement(t,"foreignObject");this._pointContainer.add(this._pointView=this._createPointView(t)),this._pointContainer.appendDom(i),i.appendChild(this._canvas=t.createElement("canvas")),this._gl=new w(this._canvas)}getPointView(t,e,r,a){return this.$_pointViewAt(e,r)}render(t,e,r){const a=this._canvas,i=a.parentNode;i.setAttribute("width",t),i.setAttribute("height",e),a.width=t,a.height=e,a.style.width=t+"px",a.style.height=e+"px",super.render(t,e,r),this.trans(0,0)}pointByDom(t,e){return this.$_pointViewAt(e.x,e.y)}_mapToGL(t,e){const{tx:r,ty:a,scale:i,vx:s,vy:n}=this._transInfo;e.forEach((e=>{const s=e.glPoint=t.project([e.lon,e.lat]);s[0]=s[0]*i+r,s[1]=a-s[1]*i}))}$_pointViewAt(t,e){const r=this.model.hitTest(t,e);if(r)return this._pointView.setPoint(r[0])}_drawCircle(t,e,r,a,i){const s=this._ctx;s.beginPath(),s.arc(t,e,r,0,2*Math.PI),s.strokeStyle=a,s.lineWidth=1,s.stroke(),s.beginPath(),s.arc(t,e,r,0,2*Math.PI),s.fillStyle=i,s.fill()}}class O extends D{}class R extends F{constructor(t){super(t,"rm-gl-point-series",!0,!1),this._program=new x(this._gl)}_createPointView(t){return new O(t)}_doPrepeare(t,e,r){}_doRender(t,e){this.$_layoutMarkers(this._getGrowRate())}_doReset(){}$_layoutMarkers(t){const e=this.model,r=e.chart.getProjection(),a=Math.max(0,e.getRadius()),i=e._visPoints,s=new Array(i.length);this._mapToGL(r,i),i.forEach(((t,e)=>{s[e]={x:t.glPoint[0],y:t.glPoint[1]}})),this._program.setOptions({radius:a,points:s,color:String(e.options.color)||"black"}),this._gl.render([this._program])}}function $(t){(function(t){return t.Series&&t.SeriesView})(t)&&(t.Series.register(f),t.SeriesView.register([f,R]))}export{c as GlSeries,$ as default};
7
+ import{extend as t,ValueSeries as e,ValuePoint as r,GLPointSeriesType as a,pickNum as i,SeriesView as s,RmElement as n,PointElement as o}from"./index.mjs";class l extends r{}class c extends e{_doApply(t){super._doApply(t)}_createPoint(t){return new l(t)}isPointLabelsVisible(){return!1}_defLabelOff(){return 2}_doPrepareRender(t,e){super._doPrepareRender(t,e),this._hitPoints=void 0}hitTest(t,e){this._hitPoints||!0===this._op.disabled||(console.time("prepare gl hit tests"),this._hitPoints=this._visPoints.slice().sort(((t,e)=>t.glPoint[0]-e.glPoint[0])),console.timeEnd("prepare gl hit tests"));const r=this._hitPoints;if(!r)return;const a=this._getHitRadius(),i=[];let s=0,n=r.length-1,o=-1;for(;s<=n;){const e=Math.floor((s+n)/2),i=r[e];if(t<i.glPoint[0]-a)n=e-1;else{if(!(t>=i.glPoint[0]+a)){o=e;break}s=e+1}}if(-1===o)return i;let l=o;for(;l>=0&&r[l].glPoint[0]-a<=t;)r[l].glPoint[0]+a>t&&i.unshift(r[l]),l--;for(l=o+1;l<r.length&&r[l].glPoint[0]-a<=t;)r[l].glPoint[1]+a>t&&i.push(r[l]),l++;return i.length>0?i.filter((t=>e>=t.glPoint[1]-a&&e<t.glPoint[1]+a)):void 0}}c.defaults=t(e.defaults,{});class h extends l{_readObject(t,e){super._readObject(t,e)}}class f extends c{getRadius(){return i(this._op.radius,f.defaults.radius)}_doApply(t){super._doApply(t)}_createPoint(t){return new h(t)}_defLabelOff(){return 2}_getHitRadius(){return this.getRadius()}}f.type=a,f.defaults=t(c.defaults,{radius:5,position:"center"});const u=Array.isArray,d=Math.min,g=Math.max,_=Math.abs,p=function(t,e){return t=parseFloat(t),isNaN(t)?parseFloat(e):t};let m=0;class b{$_hash;$_destroyed=!1;$_destroying=!1;constructor(t){t||(this.$_hash=String(m++))}destroy(){return!this.$_destroyed&&!this.$_destroying&&(this.$_destroying=!0,this._doDestory(),this.$_destroyed=!0),null}_doDestory(){}get destroying(){return this.$_destroying}get orphaned(){return this.$_destroying||this.$_destroyed}get hash(){return this.$_hash}isMe(t){return t===this.$_hash}toString(){return this.constructor.name}toBool(t){return"string"==typeof t?"true"===t:t}toNum(t,e=NaN){return t=parseFloat(t),isNaN(t)?e:t}}class y extends b{_width;_height;_mat;_gl;_program;constructor(t){super(),this._gl=t._gl}_doDestory(){if(this._program){const t=this._gl;t.getAttachedShaders(this._program).forEach((e=>t.deleteShader(e))),t.deleteProgram(this._program),this._program=null}}_run(t,e,r,a){this._program||(this._program=this.$_createProgram(this._gl,this._getVShader(),this._getFShader())),(r!==this._width||a!==this._height)&&(this.$_useProgram(this._gl,this._program),this._width=r,this._height=a,this._mat=this.$_createMatrix(0,0,r,a),t.viewport(0,0,r,a),t.uniformMatrix4fv(t.getUniformLocation(this._program,"u_matrix"),!1,this._mat)),t.bindBuffer(t.ARRAY_BUFFER,e),this._doRun(t,e,r,a)}$_createShader(t,e,r){const a=t.createShader(e);if(!a)throw new Error("Failed to create a shader");if(t.shaderSource(a,r),t.compileShader(a),!t.getShaderParameter(a,t.COMPILE_STATUS)){const e=t.getShaderInfoLog(a);throw t.deleteShader(a),new Error(`Shader compilation failed:\n${r.split("\n").map(((t,e)=>`${e+1}: ${t}`)).join("\n")}\n\n${e}`)}return a}$_createProgram(t,e,r){const a=this.$_createShader(t,t.VERTEX_SHADER,e),i=this.$_createShader(t,t.FRAGMENT_SHADER,r),s=t.createProgram();if(!s)throw new Error("Failed to create a program");if(t.attachShader(s,a),t.attachShader(s,i),t.linkProgram(s),!t.getProgramParameter(s,t.LINK_STATUS))throw t.getShaderInfoLog(s),t.deleteProgram(s),new Error(t.getProgramInfoLog(s));return s}$_useProgram(t,e){t.useProgram(e)}$_createMatrix(t,e,r,a){return new Float32Array([2/(r-t),0,0,0,0,2/(e-a),0,0,0,0,1,0,-(r+t)/(r-t),-(e+a)/(e-a),0,1])}_drawTrianlges(t,e){t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),t.drawArrays(t.TRIANGLES,0,e.length/2)}_drawPoints(t,e,r){t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),t.drawArrays(t.POINTS,0,e.length/r)}_drawLines(t,e,r,a){t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),t.drawArrays(a?t.LINE_LOOP:t.LINES,0,e.length/r)}}class w extends b{_gl;_buffer;_programs;constructor(t){super();const e=this._gl=t.getContext("webgl");if(!e)throw new Error("WebGL not supported");this._buffer=e.createBuffer()}_doDestory(){const t=this._gl;t&&(t.deleteBuffer(this._buffer),this._programs.forEach((t=>t.destroy())),this._gl=null)}render(t,e=!0,r,a){const i=this._gl;console.time("gl_render"),e&&this.$_clear(),t.forEach((t=>t._run(i,this._buffer,p(r,i.canvas.width),p(a,i.canvas.height)))),console.timeEnd("gl_render")}$_clear(){const t=this._gl;t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT)}}const A=(new Date).getTime();typeof window<"u"&&!Element.prototype.animate&&(Element.prototype.animate=function(t){});const P=typeof navigator<"u"?navigator.userAgent:"",S=P?navigator.appVersion:"";P.match(/Trident.*rv\:11\./),S.indexOf("MSIE 10"),S.indexOf("MSIE 9");class v{static LOGGING=!1;static log(...t){this.LOGGING&&console.log(...t)}static logIf(t,...e){this.LOGGING&&t&&console.log(...e)}static week_days=["일","월","화","수","목","금","토"];static long_week_days=["일요일","월요일","화요일","수요일","목요일","금요일","토요일"];static month_days=[[31,28,31,30,31,30,31,31,30,31,30,31],[31,29,31,30,31,30,31,31,30,31,30,31]];static now(){return+new Date}static parseDate(t,e){const r=new Date(t);return isNaN(r.getTime())?e||new Date:r}static isLeapYear(t){return t%4==0&&t%100!=0||t%400==0}static dateOfYear(t){var e=t.getMonth(),r=t.getDate(),a=[0,31,59,90,120,151,181,212,243,273,304,334][e]+r;return e>1&&v.isLeapYear(t.getFullYear())&&a++,a}static incMonth(t,e){const r=t.getDate();return t.setDate(1),t.setMonth(t.getMonth()+e),t.setDate(d(r,v.month_days[v.isLeapYear(t.getFullYear())?1:0][t.getMonth()])),t}static minDate(t,e){return null!==t?t:null!==e?e:t.getTime()<e.getTime()?t:e}static maxDate(t,e){return null!==t?e:null!==e||t.getTime()>e.getTime()?t:e}static weekOfMonth(t,e,r){const a=t.getMonth(),i=t.getFullYear(),s=new Date(i,a,1).getDay(),n=new Date(i,a+1,0).getDate(),o=t.getDate()+s-1,l=e+Math.ceil((n+s-7)/7),c=e+Math.floor(o/7);return r||c<2+e?c:c===l?e+5:c}static weekOfYear(t,e){const r=t.getFullYear(),a=new Date(r,0,1).getDay(),i=this.dateOfYear(t)+a-1;return e+Math.floor(i/7)}static isObject(t){return t&&"object"==typeof t&&!u(t)}static isValidObject(t){if(this.isObject(t))for(let e in t)if(t.hasOwnProperty(e))return!0}static checkArray(t){return u(t)?t:void 0}static makeArray(t,e=!1){return null!=t?u(t)?t:[t]:e?[]:void 0}static makeNumArray(t){return u(t)?t.map((t=>+t)):null!=t?[+t]:[]}static getIntArray(t,e=0){const r=[];for(let a=e,i=e+t;a<i;a++)r.push(a);return r}static isValueArray(t){if(u(t)){for(let e=t.length-1;e>=0;e--)if(null!=t[e]&&"object"==typeof t[e])return!1;return!0}return!1}static toArray(t){return u(t)?t:null!=t?[t]:null}static copyArray(t){return u(t)?t.slice(0):null!=t?[t]:void 0}static push(t,e){if(e&&e.length>0)for(let r=0,a=e.length;r<a;r++)t.push(e[r])}static isDefined(t){return null!=t}static isNotDefined(t){return null==t}static isNum(t){return"number"==typeof t}static canNumber(t){return!isNaN(t)&&!isNaN(parseFloat(t))}static isValidNum(t){return"number"==typeof t&&!isNaN(t)&&isFinite(t)}static getNum(t,e=0){const r=parseFloat(t);return isFinite(r)?r:e}static toNum(t,e=0){return isNaN(t)||null===t||""===t?e:+t}static compareText(t,e,r=!1){return t=t||"",e=e||"",r&&(t=t.toLocaleLowerCase(),e=e.toLocaleLowerCase()),t>e?1:t<e?-1:0}static getTimeF(){return(new Date).getTime()/1e3}static getTimer(){return(new Date).getTime()-A}static isWhiteSpace(t){return!t||!t.trim()}static pad(t,e,r){return e=g(e||2,1),r=r||"0",new Array(e-String(t).length+1).join(r)+t}static pad16(t,e,r){return e=g(e||2,1),r=r||"0",new Array(e-t.toString(16).length+1).join(r)+t.toString(16)}static pick(...t){const e=t.length;let r;for(let a=0;a<e;a++)if(r=t[a],null!=r)return r}static toStr(t){return Number.isNaN(t)||null==t?"":String(t)}static extend(t,e){t=t||{};for(let r in e)t[r]=e[r];return t}static equalNumbers(t,e){return isNaN(t)==isNaN(e)&&!isNaN(t)&&t==e}static equalArrays(t,e){if(t===e)return!0;if(null==t||null==e)return!1;const r=t.length;if(r!=e.length)return!1;for(let a=0;a<r;++a)if(t[a]!==e[a])return!1;return!0}static isEmpty(t){if(t)for(let e in t)return!1;return!0}static isNotEmpty(t){if(t)for(let e in t)return!0;return!1}static deepClone(t){if(t instanceof Date)return new Date(t);if(null==t||"object"!=typeof t)return t;{const e=u(t)?[]:{};for(let r of Object.keys(t))e[r]=v.deepClone(t[r]);return e}}static getArray(t,e){const r=[];for(let a=0;a<t;a++)r.push(e);return r}static getNumArray(t,e=0){const r=[];for(let a=0;a<t;a++)r.push(e);return r}static dedupe(t,e){t=t.sort(e||((t,e)=>t>e?1:t<e?-1:0));for(let e=t.length-1;e>0;e--)t[e]===t[e-1]&&t.splice(e,1);return t}static sortNum(t){return t.sort(((t,e)=>t-e))}static logElapsed(t,e){const r=+new Date;e(),v.log(t,+new Date-r+"ms")}static clamp(t,e,r){return g(e,d(r,t))}static clampEx(t,e,r){return isNaN(e)||(t=g(e,t)),isNaN(r)||(t=d(r,t)),t}static makeIntArray(t,e){const r=new Array(g(0,e-t));for(let a=t;a<e;a++)r[a-t]=a;return r}static shuffle(t){for(let e=t.length-1;e>0;e--){const r=Math.floor(Math.random()*(e+1));[t[e],t[r]]=[t[r],t[e]]}}static isDate(t){return"[object Date]"===Object.prototype.toString.call(t)}static isValidDate(t){return t.getTime()==t.getTime()}static asFunction(t){return"function"==typeof t?t:void 0}static getFieldProp(t){const e=t.indexOf(".");if(e>=0)return{field:t.substring(0,e),props:t.substring(e+1).split(".")}}static uniqueKey(){return Math.random().toString(36).substring(2,10)}static startsWith(t,e){if(t&&e)return 0===t.indexOf(e)}static endsWith(t,e){if(t&&e)return t.indexOf(e,-t.length)===t.length-e.length}static scaleNumber(t,e,r){const a=_(t);if(a>=1e3){let i=e.length;for(;i>0;){const s=Math.pow(1e3,i--);if(s<=Math.pow(10,Math.log(a)*Math.LOG10E)&&(r||10*a%s==0))return{value:t/s,symbol:e[i]}}}}static jitter(t,e){return t+(2*Math.random()-1)*e}static getLogger(t){if(t>=2)return function(e){return Math.log(e)/Math.log(t)}}static getMinMax(t){let e=t[0],r=t[0];for(let a=1;a<t.length;a++)e=d(e,t[a]),r=g(r,t[a]);return{min:e,max:r}}static valueAt(t,e){if(e&&(this.isObject(t)||u(t))){const r=e.split(".");let a=t;for(let t of r)a=a[t];return a}return t}static normalizeToSteps(t,e){if(t.length<2)return t;const r=Math.min(...t),a=Math.max(...t);if(r===a)return[r];const i=(a-r)/(e-1),s=10**Math.floor(Math.log10(i)),n=i/s;let o;o=n<=1?1:n<=2?2:n<=5?5:10,o*=s;const l=Math.floor(r/o)*o,c=[];o=(Math.ceil(a/o)*o-l)/(e-1);for(let t=0;t<e;t++)c.push(l+t*o);return c}}const N=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],k=["f0f8ff","faebd7","00ffff","7fffd4","f0ffff","f5f5dc","ffe4c4","000000","ffebcd","0000ff","8a2be2","a52a2a","deb887","5f9ea0","7fff00","d2691e","ff7f50","6495ed","fff8dc","dc143c","00ffff","00008b","008b8b","b8860b","a9a9a9","a9a9a9","006400","bdb76b","8b008b","556b2f","ff8c00","9932cc","8b0000","e9967a","8fbc8f","483d8b","2f4f4f","2f4f4f","00ced1","9400d3","ff1493","00bfff","696969","696969","1e90ff","b22222","fffaf0","228b22","ff00ff","dcdcdc","f8f8ff","ffd700","daa520","808080","808080","008000","adff2f","f0fff0","ff69b4","cd5c5c","4b0082","fffff0","f0e68c","e6e6fa","fff0f5","7cfc00","fffacd","add8e6","f08080","e0ffff","fafad2","d3d3d3","d3d3d3","90ee90","ffb6c1","ffa07a","20b2aa","87cefa","778899","778899","b0c4de","ffffe0","00ff00","32cd32","faf0e6","ff00ff","800000","66cdaa","0000cd","ba55d3","9370db","3cb371","7b68ee","00fa9a","48d1cc","c71585","191970","f5fffa","ffe4e1","ffe4b5","ffdead","000080","fdf5e6","808000","6b8e23","ffa500","ff4500","da70d6","eee8aa","98fb98","afeeee","db7093","ffefd5","ffdab9","cd853f","ffc0cb","dda0dd","b0e0e6","800080","663399","ff0000","bc8f8f","4169e1","8b4513","fa8072","f4a460","2e8b57","fff5ee","a0522d","c0c0c0","87ceeb","6a5acd","708090","708090","fffafa","00ff7f","4682b4","d2b48c","008080","d8bfd8","ff6347","40e0d0","ee82ee","f5deb3","ffffff","f5f5f5","ffff00","9acd32"];class M{static COLORS=function(){const t={};for(let e=0;e<N.length;e++)t[N[e]]=k[e];return t}();static create(t){return"string"==typeof t?new M(t):void 0}static isBright(t){return new M(t).isBright()}static getContrast(t,e,r){return new M(t).getContrast(e,r)}static interpolate(t,e,r){const a=new M(null);return a.r=Math.ceil(t.r+(e.r-t.r)*r),a.g=Math.ceil(t.g+(e.g-t.g)*r),a.b=Math.ceil(t.b+(e.b-t.b)*r),a.a=t.a+(e.a-t.a)*r,a}r=0;g=0;b=0;a=1;constructor(t){(t=t&&t.trim())&&(v.startsWith(t,"rgb(")&&v.endsWith(t,")")?this.$_parseRgb(t.substring(4,t.length-1)):v.startsWith(t,"rgba(")&&v.endsWith(t,")")?this.$_parseRgb(t.substring(5,t.length-1)):v.startsWith(t,"#")?this.$_parseNumber(t.substring(1)):M.COLORS[t]&&this.$_parseNumber(M.COLORS[t]))}get rgba(){return"rgba("+[this.r,this.g,this.b,this.a].join(",")+")"}isBright(){return.299*this.r+.587*this.g+.114*this.b>140}getContrast(t,e){return this.isBright()?t||"#000000":e||"#FFFFFF"}brighten(t,e=null){return(e=e||new M(null)).r=Math.ceil(this.r+(255-this.r)*t),e.g=Math.ceil(this.g+(255-this.g)*t),e.b=Math.ceil(this.b+(255-this.b)*t),e.a=this.a,e}toString(){return this.rgba}$_parseRgb(t){const e=t.split(/\,\s*/);e.length>=3&&(this.r=+e[0],this.g=+e[1],this.b=+e[2],e.length>=4?this.a=+e[3]:this.a=1)}$_parseNumber(t){const e=t.length;let r;e>6?(r=parseInt(t.substr(0,6),16),this.a=parseInt(t.substring(6),16)/255):e>0&&(3===e&&(t=t.charAt(0)+t.charAt(0)+t.charAt(1)+t.charAt(1)+t.charAt(2)+t.charAt(2)),r=parseInt(t,16)),this.r=(16711680&r)>>16,this.g=(65280&r)>>8,this.b=255&r}}class x extends y{_points;_radius;_color;constructor(t){super(t)}setOptions(t){const e=this._points=[];this._radius=Math.max(1,p(+t.radius,3)),this._color=new M(t.color||"black");const r=this._color.r/255,a=this._color.g/255,i=this._color.b/255,s=this._color.a;return t.points.forEach((t=>{t.color?M.create(t.color):this._color,e.push(t.x,t.y,r,a,i,s)})),this}_getVShader(){return"\n uniform mat4 u_matrix;\n uniform float u_radius;\n attribute vec2 a_position;\n attribute vec4 a_color;\n varying vec4 v_color;\n\n void main() {\n gl_Position = u_matrix * vec4(a_position, 0.0, 1.0);\n gl_PointSize = u_radius; // 픽셀 단위 점 크기\n v_color = a_color;\n }\n "}_getFShader(){return"\n precision mediump float;\n\n varying vec4 v_color;\n\n void main() {\n gl_FragColor = v_color;\n }\n "}_doRun(t,e,r,a){const i=t.getUniformLocation(this._program,"u_radius"),s=t.getAttribLocation(this._program,"a_position"),n=t.getAttribLocation(this._program,"a_color");t.uniform1f(i,2*this._radius),t.vertexAttribPointer(s,2,t.FLOAT,!1,24,0),t.enableVertexAttribArray(s),t.vertexAttribPointer(n,4,t.FLOAT,!1,24,8),t.enableVertexAttribArray(n),this._drawPoints(t,this._points,6)}}class D extends o{setPoint(t){return this.point=t,this}}class F extends s{constructor(t,e,r,a){super(t,e,r,a);const i=n.createElement(t,"foreignObject");this._pointContainer.add(this._pointView=this._createPointView(t)),this._pointContainer.appendDom(i),i.appendChild(this._canvas=t.createElement("canvas")),this._gl=new w(this._canvas)}getPointView(t,e,r,a){return this.$_pointViewAt(e,r)}render(t,e,r){const a=this._canvas,i=a.parentNode;i.setAttribute("width",t),i.setAttribute("height",e),a.width=t,a.height=e,a.style.width=t+"px",a.style.height=e+"px",super.render(t,e,r),this.trans(0,0)}pointByDom(t,e){return this.$_pointViewAt(e.x,e.y)}_mapToGL(t,e){const{tx:r,ty:a,scale:i,vx:s,vy:n}=this._transInfo;e.forEach((e=>{const s=e.glPoint=t.project([e.lon,e.lat]);s[0]=s[0]*i+r,s[1]=a-s[1]*i}))}$_pointViewAt(t,e){const r=this.model.hitTest(t,e);if(r)return this._pointView.setPoint(r[0])}_drawCircle(t,e,r,a,i){const s=this._ctx;s.beginPath(),s.arc(t,e,r,0,2*Math.PI),s.strokeStyle=a,s.lineWidth=1,s.stroke(),s.beginPath(),s.arc(t,e,r,0,2*Math.PI),s.fillStyle=i,s.fill()}}class O extends D{}class R extends F{constructor(t){super(t,"rm-gl-point-series",!0,!1),this._program=new x(this._gl)}_createPointView(t){return new O(t)}_doPrepeare(t,e,r){}_doRender(t,e){this.$_layoutMarkers(this._getGrowRate())}_doReset(){}$_layoutMarkers(t){const e=this.model,r=e.chart.getProjection(),a=Math.max(0,e.getRadius()),i=e._visPoints,s=new Array(i.length);this._mapToGL(r,i),i.forEach(((t,e)=>{s[e]={x:t.glPoint[0],y:t.glPoint[1]}})),this._program.setOptions({radius:a,points:s,color:String(e.prop("color"))||"black"}),this._gl.render([this._program])}}function $(t){(function(t){return t.Series&&t.SeriesView})(t)&&(t.Series.register(f),t.SeriesView.register([f,R]))}export{c as GlSeries,$ as default};
package/heatmap.js CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  /**
3
- * RealMap Heatmap v1.1.10
3
+ * RealMap Heatmap v1.1.12
4
4
  * Copyright (C) 2023-2026 WooriTech Inc.
5
5
  * All Rights Reserved.
6
6
  */
7
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("realmap")):"function"==typeof define&&define.amd?define(["exports","realmap"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).RealMapheatmap={},e.RealMap)}(this,(function(e,t){"use strict";function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var r=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,r.get?r:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var r=i(t);class s extends t.MarkerSeriesPoint{_readObject(e,t){super._readObject(e,t)}}const o={count:e=>e.length,sum:e=>e.map((e=>e.getValue())).reduce(((e,t)=>e+t)),avg:e=>e.map((e=>e.getValue())).reduce(((e,t)=>e+t))/e.length};class l{_apply(e){this.origin=t.parseCoord(e.origin),this.cellWidth=+e.cellWidth,this.cellHeight=+e.cellWidth,isNaN(this.cellHeight)&&(this.cellHeight=t.maxv(60,t.pickNum(this.cellWidth,3600))),isNaN(this.cellWidth)&&(this.cellWidth=this.cellHeight),this.blur=t.maxv(0,t.pickNum(e.blur,0)),this.aggregation=t.pickProp(e.aggregation,"sum")}buildCells(e){const i={},r=this.origin[0],s=this.origin[1],l=this.cellWidth,n=this.cellHeight;e.forEach((e=>{if(e.visible){const o=t.floor(3600*(e.lon-r)/l),a=t.floor(3600*(e.lat-s)/n),h=`${o}+${a}`;let p=i[h];p?p.points.push(e):i[h]={lon:o*l/3600,lat:a*n/3600,points:[e]}}}));const a=this._cells=Object.values(i),h=o[this.aggregation]||o.sum;return a.forEach((e=>{e.value=h(e.points)})),a}}class n{_apply(e){}}class a extends t.MarkerSeries{constructor(){super(...arguments),this._grid=new l,this._point=new n}_doApply(e){super._doApply(e),this._mode=e.mode||"grid",this._grid._apply(e.grid||{}),this._point._apply(e.point||{})}_createPoint(e){return new s(e)}setCalcedColor(e,i){super.setCalcedColor(e,i),this._colorObj=new t.Color(this._calcedColor)}getColorScale(){return 0}getValueRange(){return{min:this._minValue,max:this._maxValue}}getRangedColor(e){if(this._colorRanger)return this._colorRanger.getColor(this._minValue,this._maxValue,e.value,this._colorObj)}initPoints(e){const t=this._orgPoints=super.initPoints(e);if("grid"===this._mode){const e=this._grid.buildCells(t);t.length=0,e.forEach(((e,i)=>{const r=new s;r.index=i,r.coord=[e.lon,e.lat],r.value=e.value,r.cell=e,t.push(r)}))}return t}_doPrepareRender(e,t){var i;super._doPrepareRender(e,t);const r=this._visPoints,{min:s,max:o}=this._calcMinMax(r);this._minValue=s,this._maxValue=o,this._colorRanger=null===(i=e.getColorScale(this.getColorScale()))||void 0===i?void 0:i.getRanger()}}a.type=t.HeatmapSeriesType,a.defaults=t.extend(t.MarkerSeries.defaults,{mode:"grid"});class h extends t.MarkerSeriesPointView{constructor(e){super(e)}renderGrid(e,t){this.setPath(["M",0,0,"L",(e.p2[0]-e.p1[0])*t,0,(e.p2[0]-e.p1[0])*t,(e.p3[1]-e.p2[1])*t,(e.p4[0]-e.p1[0])*t,(e.p4[1]-e.p1[1])*t,"Z"])}renderPoint(e,t){}tooltipColor(){return getComputedStyle(this.dom).fill}}class p extends t.MarkerSeriesView{constructor(e){super(e,"rm-heatmap-series",!1,!1);const i=t.RmElement.createElement(e,"foreignObject");this._pointContainer.appendDom(i),this._pointContainer.add(this._dummy=new t.RmElement(e,t.SeriesView.POINT_CLASS)),this._dummy.dom.style.display="none",i.appendChild(this._canvas=e.createElement("canvas"))}_createMarkers(e){return new t.PointViewPool(e,h)}_doPrepeare(e,t,i){this.$_prepareMarkers(t,t._visPoints)}_doRender(e,t){this.$_layoutMarkers(e,t)}_doReset(){}_runShowEffect(e){e&&t.SeriesAnimation.grow(this)}_doViewRateChanged(e){this.$_layoutMarkers(this.width,this.height)}$_prepareSvgCells(e,t){this._pointContainer.setFill(e._runColor),this._markers.prepare(t.length,((i,r)=>{const s=i.point=t[r].point;this._setPointStyle(i,e,s)}))}$_prepareCanvasCells(e,t){}$_prepareGridMode(e,t){const i=e.chart.getProjection(),r=e._grid.cellWidth/3600,s=e._grid.cellHeight/3600,o=this._cells=[];t.forEach((e=>{if(!e.isNull){const t=[e.lon,e.lat],l=[e.lon+r,e.lat],n=[e.lon+r,e.lat+s],a=[e.lon,e.lat+s];if(i.isVisible(t)||i.isVisible(l)||i.isVisible(n)||i.isVisible(a)){const r=i.projectCoord(t),s=i.projectCoord(l),h=i.projectCoord(n),p=i.projectCoord(a);e.xPos=r[0],e.yPos=r[1],o.push({point:e,p1:r,p2:s,p3:h,p4:p})}}})),e._grid.blur>0?this.$_prepareCanvasCells(e,o):this.$_prepareSvgCells(e,o)}$_renderSvgCells(e){const t=this._scale;this._markers.forEach(((i,r)=>{const s=this._cells[r];i.setVisible(!0),i.renderGrid(s,t),i.trans(s.p1[0]*t,s.p1[1]*-t).rotate(e)}))}$_renderCanvasCells(e,t,i){const r=this.model,s=this._dummy,o=this._canvas,l=o.parentNode,n=o.getContext("2d"),{tx:a,ty:h,scale:p}=this._transInfo,d=this._wBody,c=this._hBody;l.setAttribute("width",d),l.setAttribute("height",c),o.width=d,o.height=c,o.style.width=d+"px",o.style.height=c+"px",n.clearRect(0,0,d,c),n.filter="blur(20px)",this._cells.forEach((e=>{const{p1:t,p2:i,p3:o,p4:l,point:d}=e,c=t[0]+(i[0]-t[0])/2,u=t[1]+(l[1]-t[1])/2,_=(i[0]-t[0]+o[0]-i[0])/2,g=(i[1]-t[1]+o[1]-i[1])/2;this._setPointStyle(s,r,d),n.fillStyle=getComputedStyle(s.dom).fill,n.beginPath(),n.ellipse((c-_/2)*p+a,(u-g/2)*-p+h,2*_*p,2*g*p,0,0,2*Math.PI),n.fill(),n.beginPath(),n.ellipse((c-_/10)*p+a,(u-g/10)*-p+h,1.2*_*p,1.2*g*p,0,0,2*Math.PI),n.fill()})),this.trans(0,0)}$_renderGridMode(e,t,i,r){e._grid.blur>0?this.$_renderCanvasCells(t,i,r):this.$_renderSvgCells(r)}$_preparePointMode(e,t){}$_renderPointMode(e,t){}$_prepareMarkers(e,t){if("point"===e._mode);else this.$_prepareGridMode(e,t)}$_layoutMarkers(e,t){const i=this.model,r=+i.options.rotation||0;if("point"===i._mode);else this.$_renderGridMode(i,e,t,r)}}function d(e){(function(e){return e.Series&&e.SeriesView})(e)&&(e.Series.register(a),e.SeriesView.register([a,p]))}d(r),e.HeatmapSeries=a,e.default=d,Object.defineProperty(e,"__esModule",{value:!0})}));
7
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("realmap")):"function"==typeof define&&define.amd?define(["exports","realmap"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).RealMapheatmap={},e.RealMap)}(this,(function(e,t){"use strict";function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var r=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,r.get?r:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var r=i(t);class s extends t.MarkerSeriesPoint{_readObject(e,t){super._readObject(e,t)}}const o={count:e=>e.length,sum:e=>e.map((e=>e.getValue())).reduce(((e,t)=>e+t)),avg:e=>e.map((e=>e.getValue())).reduce(((e,t)=>e+t))/e.length};class l{_apply(e){this.origin=t.parseCoord(e.origin),this.cellWidth=+e.cellWidth,this.cellHeight=+e.cellWidth,isNaN(this.cellHeight)&&(this.cellHeight=t.maxv(60,t.pickNum(this.cellWidth,3600))),isNaN(this.cellWidth)&&(this.cellWidth=this.cellHeight),this.blur=t.maxv(0,t.pickNum(e.blur,0)),this.aggregation=t.pickProp(e.aggregation,"sum")}buildCells(e){const i={},r=this.origin[0],s=this.origin[1],l=this.cellWidth,n=this.cellHeight;e.forEach((e=>{if(e.visible){const o=t.floor(3600*(e.lon-r)/l),a=t.floor(3600*(e.lat-s)/n),h=`${o}+${a}`;let p=i[h];p?p.points.push(e):i[h]={lon:o*l/3600,lat:a*n/3600,points:[e]}}}));const a=this._cells=Object.values(i),h=o[this.aggregation]||o.sum;return a.forEach((e=>{e.value=h(e.points)})),a}}class n{_apply(e){}}class a extends t.MarkerSeries{constructor(){super(...arguments),this._grid=new l,this._point=new n}_doApply(e){super._doApply(e),this._mode=e.mode||"grid",this._grid._apply(e.grid||{}),this._point._apply(e.point||{})}_createPoint(e){return new s(e)}setCalcedColor(e,i){super.setCalcedColor(e,i),this._colorObj=new t.Color(this._calcedColor)}getColorScale(){return 0}getValueRange(){return{min:this._minValue,max:this._maxValue}}getRangedColor(e){if(this._colorRanger)return this._colorRanger.getColor(this._minValue,this._maxValue,e.value,this._colorObj)}initPoints(e){const t=this._orgPoints=super.initPoints(e);if("grid"===this._mode){const e=this._grid.buildCells(t);t.length=0,e.forEach(((e,i)=>{const r=new s;r.index=i,r.coord=[e.lon,e.lat],r.value=e.value,r.cell=e,t.push(r)}))}return t}_doPrepareRender(e,t){var i;super._doPrepareRender(e,t);const r=this._visPoints,{min:s,max:o}=this._calcMinMax(r);this._minValue=s,this._maxValue=o,this._colorRanger=null===(i=e.getColorScale(this.getColorScale()))||void 0===i?void 0:i.getRanger()}}a.type=t.HeatmapSeriesType,a.defaults=t.extend(t.MarkerSeries.defaults,{mode:"grid"});class h extends t.MarkerSeriesPointView{constructor(e){super(e)}renderGrid(e,t){this.setPath(["M",0,0,"L",(e.p2[0]-e.p1[0])*t,0,(e.p2[0]-e.p1[0])*t,(e.p3[1]-e.p2[1])*t,(e.p4[0]-e.p1[0])*t,(e.p4[1]-e.p1[1])*t,"Z"])}renderPoint(e,t){}tooltipColor(){return getComputedStyle(this.dom).fill}}class p extends t.MarkerSeriesView{constructor(e){super(e,"rm-heatmap-series",!1,!1);const i=t.RmElement.createElement(e,"foreignObject");this._pointContainer.appendDom(i),this._pointContainer.add(this._dummy=new t.RmElement(e,t.SeriesView.POINT_CLASS)),this._dummy.dom.style.display="none",i.appendChild(this._canvas=e.createElement("canvas"))}_createMarkers(e){return new t.PointViewPool(e,h)}_doPrepeare(e,t,i){this.$_prepareMarkers(t,t._visPoints)}_doRender(e,t){this.$_layoutMarkers(e,t)}_doReset(){}_runShowEffect(e){e&&t.SeriesAnimation.grow(this)}_doViewRateChanged(e){this.$_layoutMarkers(this.width,this.height)}$_prepareSvgCells(e,t){this._pointContainer.setFill(e._runColor),this._markers.prepare(t.length,((i,r)=>{const s=i.point=t[r].point;this._setPointStyle(i,e,s)}))}$_prepareCanvasCells(e,t){}$_prepareGridMode(e,t){const i=e.chart.getProjection(),r=e._grid.cellWidth/3600,s=e._grid.cellHeight/3600,o=this._cells=[];t.forEach((e=>{if(!e.isNull){const t=[e.lon,e.lat],l=[e.lon+r,e.lat],n=[e.lon+r,e.lat+s],a=[e.lon,e.lat+s];if(i.isVisible(t)||i.isVisible(l)||i.isVisible(n)||i.isVisible(a)){const r=i.projectCoord(t),s=i.projectCoord(l),h=i.projectCoord(n),p=i.projectCoord(a);e.xPos=r[0],e.yPos=r[1],o.push({point:e,p1:r,p2:s,p3:h,p4:p})}}})),e._grid.blur>0?this.$_prepareCanvasCells(e,o):this.$_prepareSvgCells(e,o)}$_renderSvgCells(e){const t=this._scale;this._markers.forEach(((i,r)=>{const s=this._cells[r];i.setVisible(!0),i.renderGrid(s,t),i.trans(s.p1[0]*t,s.p1[1]*-t).rotate(e)}))}$_renderCanvasCells(e,t,i){const r=this.model,s=this._dummy,o=this._canvas,l=o.parentNode,n=o.getContext("2d"),{tx:a,ty:h,scale:p}=this._transInfo,d=this._wBody,c=this._hBody;l.setAttribute("width",d),l.setAttribute("height",c),o.width=d,o.height=c,o.style.width=d+"px",o.style.height=c+"px",n.clearRect(0,0,d,c),n.filter="blur(20px)",this._cells.forEach((e=>{const{p1:t,p2:i,p3:o,p4:l,point:d}=e,c=t[0]+(i[0]-t[0])/2,u=t[1]+(l[1]-t[1])/2,_=(i[0]-t[0]+o[0]-i[0])/2,g=(i[1]-t[1]+o[1]-i[1])/2;this._setPointStyle(s,r,d),n.fillStyle=getComputedStyle(s.dom).fill,n.beginPath(),n.ellipse((c-_/2)*p+a,(u-g/2)*-p+h,2*_*p,2*g*p,0,0,2*Math.PI),n.fill(),n.beginPath(),n.ellipse((c-_/10)*p+a,(u-g/10)*-p+h,1.2*_*p,1.2*g*p,0,0,2*Math.PI),n.fill()})),this.trans(0,0)}$_renderGridMode(e,t,i,r){e._grid.blur>0?this.$_renderCanvasCells(t,i,r):this.$_renderSvgCells(r)}$_preparePointMode(e,t){}$_renderPointMode(e,t){}$_prepareMarkers(e,t){if("point"===e._mode);else this.$_prepareGridMode(e,t)}$_layoutMarkers(e,t){const i=this.model,r=+i.prop("rotation")||0;if("point"===i._mode);else this.$_renderGridMode(i,e,t,r)}}function d(e){(function(e){return e.Series&&e.SeriesView})(e)&&(e.Series.register(a),e.SeriesView.register([a,p]))}d(r),e.HeatmapSeries=a,e.default=d,Object.defineProperty(e,"__esModule",{value:!0})}));
package/heatmap.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  /**
3
- * RealMap Heatmap v1.1.10
3
+ * RealMap Heatmap v1.1.12
4
4
  * Copyright (C) 2023-2026 WooriTech Inc.
5
5
  * All Rights Reserved.
6
6
  */
7
- import{HeatmapSeriesType as e,extend as t,MarkerSeries as i,Color as s,MarkerSeriesPoint as r,parseCoord as l,maxv as o,pickNum as n,pickProp as a,floor as h,MarkerSeriesView as d,RmElement as p,SeriesView as c,PointViewPool as _,SeriesAnimation as g,MarkerSeriesPointView as u}from"./index.mjs";class m extends r{_readObject(e,t){super._readObject(e,t)}}const C={count:e=>e.length,sum:e=>e.map((e=>e.getValue())).reduce(((e,t)=>e+t)),avg:e=>e.map((e=>e.getValue())).reduce(((e,t)=>e+t))/e.length};class f{_apply(e){this.origin=l(e.origin),this.cellWidth=+e.cellWidth,this.cellHeight=+e.cellWidth,isNaN(this.cellHeight)&&(this.cellHeight=o(60,n(this.cellWidth,3600))),isNaN(this.cellWidth)&&(this.cellWidth=this.cellHeight),this.blur=o(0,n(e.blur,0)),this.aggregation=a(e.aggregation,"sum")}buildCells(e){const t={},i=this.origin[0],s=this.origin[1],r=this.cellWidth,l=this.cellHeight;e.forEach((e=>{if(e.visible){const o=h(3600*(e.lon-i)/r),n=h(3600*(e.lat-s)/l),a=`${o}+${n}`;let d=t[a];d?d.points.push(e):t[a]={lon:o*r/3600,lat:n*l/3600,points:[e]}}}));const o=this._cells=Object.values(t),n=C[this.aggregation]||C.sum;return o.forEach((e=>{e.value=n(e.points)})),o}}class y{_apply(e){}}class b extends i{constructor(){super(...arguments),this._grid=new f,this._point=new y}_doApply(e){super._doApply(e),this._mode=e.mode||"grid",this._grid._apply(e.grid||{}),this._point._apply(e.point||{})}_createPoint(e){return new m(e)}setCalcedColor(e,t){super.setCalcedColor(e,t),this._colorObj=new s(this._calcedColor)}getColorScale(){return 0}getValueRange(){return{min:this._minValue,max:this._maxValue}}getRangedColor(e){if(this._colorRanger)return this._colorRanger.getColor(this._minValue,this._maxValue,e.value,this._colorObj)}initPoints(e){const t=this._orgPoints=super.initPoints(e);if("grid"===this._mode){const e=this._grid.buildCells(t);t.length=0,e.forEach(((e,i)=>{const s=new m;s.index=i,s.coord=[e.lon,e.lat],s.value=e.value,s.cell=e,t.push(s)}))}return t}_doPrepareRender(e,t){var i;super._doPrepareRender(e,t);const s=this._visPoints,{min:r,max:l}=this._calcMinMax(s);this._minValue=r,this._maxValue=l,this._colorRanger=null===(i=e.getColorScale(this.getColorScale()))||void 0===i?void 0:i.getRanger()}}b.type=e,b.defaults=t(i.defaults,{mode:"grid"});class v extends u{constructor(e){super(e)}renderGrid(e,t){this.setPath(["M",0,0,"L",(e.p2[0]-e.p1[0])*t,0,(e.p2[0]-e.p1[0])*t,(e.p3[1]-e.p2[1])*t,(e.p4[0]-e.p1[0])*t,(e.p4[1]-e.p1[1])*t,"Z"])}renderPoint(e,t){}tooltipColor(){return getComputedStyle(this.dom).fill}}class P extends d{constructor(e){super(e,"rm-heatmap-series",!1,!1);const t=p.createElement(e,"foreignObject");this._pointContainer.appendDom(t),this._pointContainer.add(this._dummy=new p(e,c.POINT_CLASS)),this._dummy.dom.style.display="none",t.appendChild(this._canvas=e.createElement("canvas"))}_createMarkers(e){return new _(e,v)}_doPrepeare(e,t,i){this.$_prepareMarkers(t,t._visPoints)}_doRender(e,t){this.$_layoutMarkers(e,t)}_doReset(){}_runShowEffect(e){e&&g.grow(this)}_doViewRateChanged(e){this.$_layoutMarkers(this.width,this.height)}$_prepareSvgCells(e,t){this._pointContainer.setFill(e._runColor),this._markers.prepare(t.length,((i,s)=>{const r=i.point=t[s].point;this._setPointStyle(i,e,r)}))}$_prepareCanvasCells(e,t){}$_prepareGridMode(e,t){const i=e.chart.getProjection(),s=e._grid.cellWidth/3600,r=e._grid.cellHeight/3600,l=this._cells=[];t.forEach((e=>{if(!e.isNull){const t=[e.lon,e.lat],o=[e.lon+s,e.lat],n=[e.lon+s,e.lat+r],a=[e.lon,e.lat+r];if(i.isVisible(t)||i.isVisible(o)||i.isVisible(n)||i.isVisible(a)){const s=i.projectCoord(t),r=i.projectCoord(o),h=i.projectCoord(n),d=i.projectCoord(a);e.xPos=s[0],e.yPos=s[1],l.push({point:e,p1:s,p2:r,p3:h,p4:d})}}})),e._grid.blur>0?this.$_prepareCanvasCells(e,l):this.$_prepareSvgCells(e,l)}$_renderSvgCells(e){const t=this._scale;this._markers.forEach(((i,s)=>{const r=this._cells[s];i.setVisible(!0),i.renderGrid(r,t),i.trans(r.p1[0]*t,r.p1[1]*-t).rotate(e)}))}$_renderCanvasCells(e,t,i){const s=this.model,r=this._dummy,l=this._canvas,o=l.parentNode,n=l.getContext("2d"),{tx:a,ty:h,scale:d}=this._transInfo,p=this._wBody,c=this._hBody;o.setAttribute("width",p),o.setAttribute("height",c),l.width=p,l.height=c,l.style.width=p+"px",l.style.height=c+"px",n.clearRect(0,0,p,c),n.filter="blur(20px)",this._cells.forEach((e=>{const{p1:t,p2:i,p3:l,p4:o,point:p}=e,c=t[0]+(i[0]-t[0])/2,_=t[1]+(o[1]-t[1])/2,g=(i[0]-t[0]+l[0]-i[0])/2,u=(i[1]-t[1]+l[1]-i[1])/2;this._setPointStyle(r,s,p),n.fillStyle=getComputedStyle(r.dom).fill,n.beginPath(),n.ellipse((c-g/2)*d+a,(_-u/2)*-d+h,2*g*d,2*u*d,0,0,2*Math.PI),n.fill(),n.beginPath(),n.ellipse((c-g/10)*d+a,(_-u/10)*-d+h,1.2*g*d,1.2*u*d,0,0,2*Math.PI),n.fill()})),this.trans(0,0)}$_renderGridMode(e,t,i,s){e._grid.blur>0?this.$_renderCanvasCells(t,i,s):this.$_renderSvgCells(s)}$_preparePointMode(e,t){}$_renderPointMode(e,t){}$_prepareMarkers(e,t){if("point"===e._mode);else this.$_prepareGridMode(e,t)}$_layoutMarkers(e,t){const i=this.model,s=+i.options.rotation||0;if("point"===i._mode);else this.$_renderGridMode(i,e,t,s)}}function $(e){(function(e){return e.Series&&e.SeriesView})(e)&&(e.Series.register(b),e.SeriesView.register([b,P]))}export{b as HeatmapSeries,$ as default};
7
+ import{HeatmapSeriesType as e,extend as t,MarkerSeries as i,Color as s,MarkerSeriesPoint as r,parseCoord as l,maxv as o,pickNum as n,pickProp as a,floor as h,MarkerSeriesView as d,RmElement as p,SeriesView as c,PointViewPool as _,SeriesAnimation as g,MarkerSeriesPointView as u}from"./index.mjs";class m extends r{_readObject(e,t){super._readObject(e,t)}}const C={count:e=>e.length,sum:e=>e.map((e=>e.getValue())).reduce(((e,t)=>e+t)),avg:e=>e.map((e=>e.getValue())).reduce(((e,t)=>e+t))/e.length};class f{_apply(e){this.origin=l(e.origin),this.cellWidth=+e.cellWidth,this.cellHeight=+e.cellWidth,isNaN(this.cellHeight)&&(this.cellHeight=o(60,n(this.cellWidth,3600))),isNaN(this.cellWidth)&&(this.cellWidth=this.cellHeight),this.blur=o(0,n(e.blur,0)),this.aggregation=a(e.aggregation,"sum")}buildCells(e){const t={},i=this.origin[0],s=this.origin[1],r=this.cellWidth,l=this.cellHeight;e.forEach((e=>{if(e.visible){const o=h(3600*(e.lon-i)/r),n=h(3600*(e.lat-s)/l),a=`${o}+${n}`;let d=t[a];d?d.points.push(e):t[a]={lon:o*r/3600,lat:n*l/3600,points:[e]}}}));const o=this._cells=Object.values(t),n=C[this.aggregation]||C.sum;return o.forEach((e=>{e.value=n(e.points)})),o}}class y{_apply(e){}}class b extends i{constructor(){super(...arguments),this._grid=new f,this._point=new y}_doApply(e){super._doApply(e),this._mode=e.mode||"grid",this._grid._apply(e.grid||{}),this._point._apply(e.point||{})}_createPoint(e){return new m(e)}setCalcedColor(e,t){super.setCalcedColor(e,t),this._colorObj=new s(this._calcedColor)}getColorScale(){return 0}getValueRange(){return{min:this._minValue,max:this._maxValue}}getRangedColor(e){if(this._colorRanger)return this._colorRanger.getColor(this._minValue,this._maxValue,e.value,this._colorObj)}initPoints(e){const t=this._orgPoints=super.initPoints(e);if("grid"===this._mode){const e=this._grid.buildCells(t);t.length=0,e.forEach(((e,i)=>{const s=new m;s.index=i,s.coord=[e.lon,e.lat],s.value=e.value,s.cell=e,t.push(s)}))}return t}_doPrepareRender(e,t){var i;super._doPrepareRender(e,t);const s=this._visPoints,{min:r,max:l}=this._calcMinMax(s);this._minValue=r,this._maxValue=l,this._colorRanger=null===(i=e.getColorScale(this.getColorScale()))||void 0===i?void 0:i.getRanger()}}b.type=e,b.defaults=t(i.defaults,{mode:"grid"});class v extends u{constructor(e){super(e)}renderGrid(e,t){this.setPath(["M",0,0,"L",(e.p2[0]-e.p1[0])*t,0,(e.p2[0]-e.p1[0])*t,(e.p3[1]-e.p2[1])*t,(e.p4[0]-e.p1[0])*t,(e.p4[1]-e.p1[1])*t,"Z"])}renderPoint(e,t){}tooltipColor(){return getComputedStyle(this.dom).fill}}class P extends d{constructor(e){super(e,"rm-heatmap-series",!1,!1);const t=p.createElement(e,"foreignObject");this._pointContainer.appendDom(t),this._pointContainer.add(this._dummy=new p(e,c.POINT_CLASS)),this._dummy.dom.style.display="none",t.appendChild(this._canvas=e.createElement("canvas"))}_createMarkers(e){return new _(e,v)}_doPrepeare(e,t,i){this.$_prepareMarkers(t,t._visPoints)}_doRender(e,t){this.$_layoutMarkers(e,t)}_doReset(){}_runShowEffect(e){e&&g.grow(this)}_doViewRateChanged(e){this.$_layoutMarkers(this.width,this.height)}$_prepareSvgCells(e,t){this._pointContainer.setFill(e._runColor),this._markers.prepare(t.length,((i,s)=>{const r=i.point=t[s].point;this._setPointStyle(i,e,r)}))}$_prepareCanvasCells(e,t){}$_prepareGridMode(e,t){const i=e.chart.getProjection(),s=e._grid.cellWidth/3600,r=e._grid.cellHeight/3600,l=this._cells=[];t.forEach((e=>{if(!e.isNull){const t=[e.lon,e.lat],o=[e.lon+s,e.lat],n=[e.lon+s,e.lat+r],a=[e.lon,e.lat+r];if(i.isVisible(t)||i.isVisible(o)||i.isVisible(n)||i.isVisible(a)){const s=i.projectCoord(t),r=i.projectCoord(o),h=i.projectCoord(n),d=i.projectCoord(a);e.xPos=s[0],e.yPos=s[1],l.push({point:e,p1:s,p2:r,p3:h,p4:d})}}})),e._grid.blur>0?this.$_prepareCanvasCells(e,l):this.$_prepareSvgCells(e,l)}$_renderSvgCells(e){const t=this._scale;this._markers.forEach(((i,s)=>{const r=this._cells[s];i.setVisible(!0),i.renderGrid(r,t),i.trans(r.p1[0]*t,r.p1[1]*-t).rotate(e)}))}$_renderCanvasCells(e,t,i){const s=this.model,r=this._dummy,l=this._canvas,o=l.parentNode,n=l.getContext("2d"),{tx:a,ty:h,scale:d}=this._transInfo,p=this._wBody,c=this._hBody;o.setAttribute("width",p),o.setAttribute("height",c),l.width=p,l.height=c,l.style.width=p+"px",l.style.height=c+"px",n.clearRect(0,0,p,c),n.filter="blur(20px)",this._cells.forEach((e=>{const{p1:t,p2:i,p3:l,p4:o,point:p}=e,c=t[0]+(i[0]-t[0])/2,_=t[1]+(o[1]-t[1])/2,g=(i[0]-t[0]+l[0]-i[0])/2,u=(i[1]-t[1]+l[1]-i[1])/2;this._setPointStyle(r,s,p),n.fillStyle=getComputedStyle(r.dom).fill,n.beginPath(),n.ellipse((c-g/2)*d+a,(_-u/2)*-d+h,2*g*d,2*u*d,0,0,2*Math.PI),n.fill(),n.beginPath(),n.ellipse((c-g/10)*d+a,(_-u/10)*-d+h,1.2*g*d,1.2*u*d,0,0,2*Math.PI),n.fill()})),this.trans(0,0)}$_renderGridMode(e,t,i,s){e._grid.blur>0?this.$_renderCanvasCells(t,i,s):this.$_renderSvgCells(s)}$_preparePointMode(e,t){}$_renderPointMode(e,t){}$_prepareMarkers(e,t){if("point"===e._mode);else this.$_prepareGridMode(e,t)}$_layoutMarkers(e,t){const i=this.model,s=+i.prop("rotation")||0;if("point"===i._mode);else this.$_renderGridMode(i,e,t,s)}}function $(e){(function(e){return e.Series&&e.SeriesView})(e)&&(e.Series.register(b),e.SeriesView.register([b,P]))}export{b as HeatmapSeries,$ as default};