UNPKG

realmap

Version:

Wooritech map chart component library

8 lines (6 loc) 4.29 kB
/** * RealMap Track v1.1.6 * Copyright (C) 2023-2026 WooriTech Inc. * All Rights Reserved. */ !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).RealMaptrack={},e.RealMap)}(this,(function(e,t){"use strict";function s(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(s){if("default"!==s){var r=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,r.get?r:{enumerable:!0,get:function(){return e[s]}})}})),t.default=e,Object.freeze(t)}var r=s(t);class i extends t.DataPoint{_readObject(e,s){super._readObject(e,s),t.isArray(s.track)?this.track=this.$_parseTrack(s.track):t.isArray(s.coord)?this.track=this.coord:this.coord?this.track=[this.coord]:this.track=[]}_readArray(e,t){this.track=this.$_parseTrack(t)}$_parseTrack(e){const s=[];return e.forEach((e=>{t.isArray(e)?s.push([e[0],e[1]]):isNaN(e.lon)||isNaN(e.lat)||s.push([e.lon,e.lat])})),s}}class n extends t.ChartItem{}n.defaults=t.extend(t.ChartItem.defaults,{});class o extends t.Series{constructor(e){super(e),this._shape=e.getNextPointShape()}_doInit(e){super._doInit(e),e.outline=(this._outline=new n(this.chart))._init()}get outline(){return this._outline}getShape(){return this._op.shape||this._shape}getRadius(){return t.pickNum(this._op.radius,o.defaults.radius)}needMapScale(){return!0}_createPoint(e){return new i(e)}_defLabelOff(){return 2}}o.type=t.TrackSeriesType,o.defaults=t.extend(t.Series.defaults,{radius:3});class a extends t.PointElement{constructor(e){super(e,!0),this._points=[],this.add(this._line=new t.PolyLineElement(e)),t.Dom.setNoScale(this._line.dom),this.add(this._pointLayer=new t.LayerElement(e)),this.add(this._outline=new t.PolyLineElement(e,"rm-track-series-outline")),t.Dom.setNoScale(this._outline.dom)}prepare(e,s,r,i,n){const o=r.track,a=this._pts=[];if(t.isArray(o)){o.forEach((e=>{a.push(i.project(e))}));const e=this._pos=a[0].slice();a[0][0]=a[0][1]=0;for(let t=1;t<a.length;t++)a[t][0]=a[t][0]-e[0],a[t][1]=a[t][1]-e[1]}this.$_preparePoints(e,this._pointLayer,a)}render(e,t,s,r,i){const n=this._pts.slice(0,this._pts.length*i|0);this.$_renderLine(n,i),this.$_renderPoints(e,r,n,i),this.$_renderOutline(t.outline,n,i)}$_preparePoints(e,s,r){const i=this._points;for(;i.length<r.length;){const r=new t.PathElement(e,"rm-track-series-point");t.Dom.setNoScale(r.dom),i.push(s.add(r))}for(;i.length>r.length;)i.pop().remove()}$_renderLine(e,t){this._line.setVisible(e.length>1)&&(this._line.setFill("none"),this._line.setLines(e,!1))}$_renderPoints(e,t,s,r){this._points.forEach(((r,i)=>{r.setVisible(i<s.length)&&(r.setPath(e(t,t)),r.transc(s[i]))}))}$_renderOutline(e,t,s){this._outline.setVisible(e.visible&&t.length>1)&&(this._outline.internalResetStyleOrClass(e._style),this._outline.setFill("none"),this._outline.setLines(t,!1))}}class l extends t.SeriesView{constructor(e){super(e,"rm-track-series",!1,!1),this._tracks=new t.PointViewPool(this._pointContainer,a,"rm-track-series-track")}_getPointPool(){return this._tracks}_setPointColor(e,t){e.setColor(t)}_doPrepeare(e,t,s){s&&this.$_prepareTracks(e,t,t._visPoints)}_doRender(e,t){this.$_layoutTracks(this._getGrowRate())}_doReset(){}_runShowEffect(e){e&&t.SeriesAnimation.grow(this)}_doViewRateChanged(e){this.$_layoutTracks(e)}runPointAddAnimation(e){}_legendColorProp(){return"stroke"}$_prepareTracks(e,s,r){s.options.shape;const i=r.length,n=!t._isIE,o=s.chart.getProjection();this._pointContainer.setStroke(s._runColor),this._pointContainer.setFill(s._runColor),this._tracks.prepare(i,((t,i)=>{const a=t.point=r[i];this._setPointStyle(t,s,a),t.prepare(e,s,a,o,n)}))}$_layoutTracks(e){const s=this.model,r=s.chart.getProjection();this._scaler;const i=this._scale;this._tracks.forEach(((n,o)=>{const a=n.point;if(n.setVisible(!a.isNull&&null!=r.getVisible(a.track[0]))){let[r,o]=n._pos;const l=t.SeriesView.getDrawer(s.getShape()),c=n._radius=s.getRadius();a.xPos=r,a.yPos=o,n.render(l,s,a,c/i,e),n.trans(r,o)}}))}}function c(e){(function(e){return e.Series&&e.SeriesView})(e)&&(e.Series.register(o),e.SeriesView.register([o,l]))}c(r),e.TrackSeries=o,e.default=c,Object.defineProperty(e,"__esModule",{value:!0})}));