UNPKG

realchart

Version:

Wooritech charting library

8 lines (6 loc) 4.25 kB
/** * RealChart Vector v1.3.17 * Copyright (C) 2023-2025 WooriTech Inc. * All Rights Reserved. */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("realchart")):"function"==typeof define&&define.amd?define(["exports","realchart"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).RealChartVector={},e.RealChart)}(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 n=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,n.get?n:{enumerable:!0,get:function(){return e[s]}})}})),t.default=e,Object.freeze(t)}var n=s(t);class i extends t.DataPoint{_assignTo(e){return t.assignObj(super._assignTo(e),{length:this.length,angle:this.angle,lengthValue:this.lengthValue,angleValue:this.angleValue})}_valuesChangd(e){return this.length!==e.length||this.angle!==e.angle||super._valuesChangd(e)}_readArray(e,s){if(s.length<=2)this.isNull=!0;else{const n=s.length>3?1:0;n>0&&(this.x=s[t.pickNum(e.options.xField,0)]),this.y=s[t.pickNum(e.options.yField,0+n)],this.length=s[t.pickNum(e.options.lengthField,1+n)],this.angle=s[t.pickNum(e.options.angleField,2+n)]}}_readObject(e,s){super._readObject(e,s),this.length=t.pickProp(s[e.options.lengthField],s.length),this.angle=t.pickProp(s[e.options.angleField],s.angle),this.y=t.pickProp3(e._yFielder(s),s.y,s.value)}_readSingle(e){super._readSingle(e),this.length=this.angle=this.y}parse(e){super.parse(e),this.isNull||(this.isNull=isNaN(this.lengthValue)||isNaN(this.angleValue))}initValues(){this.lengthValue=parseFloat(this.length),this.angleValue=parseFloat(this.angle)}initPrev(e,t){t.yValue=this.yValue,t.lengthValue=.001}applyValueRate(e,s){this.lengthValue=t.incv(e.lengthValue,this.lengthValue,s)}}class r extends t.ConnectableSeries{_createPoint(e){return new i(e)}_doPrepareRender(){super._doPrepareRender();const e=this._runPoints;if(e.length>0){const s=this._op.maxLength,n=this._op.origin,i=e.map((e=>e.length)).reduce(((e,s)=>t.maxv(e,s)));e.forEach((e=>{const t=e.length/i;switch(e._len=t*s,n){case"start":e._off=-e._len/2;break;case"end":e._off=e._len/2;break;default:e._off=0}}))}}_createLegendMarker(e,s){const n=.3,i=.7*s,r=[0,-n*s,-.2*s,-n*s,0,-.6*s,.2*s,-n*s,0,-n*s,0,.6*s],a=["M",r[0],r[1]+i];for(let e=2;e<r.length;e+=2)a.push("L",r[e],r[e+1]+i);const o=new t.PathElement(e,t.Series.LEGEND_MARKER,a);return o.setStyle("strokeWidth","2px"),o.rotation=30,o}}r.type=t.VectorSeriesType,r.defaults=t.extend(t.Series.defaults,{origin:"center",maxLength:20,startAngle:0,arrowHead:"close"});class a extends t.PointElement{layout(e,t,s){const n=this.point._len,i=n*s,r=.5;let a,o=(n-i)/2;switch(e){case"none":a=[0,o-r*i,0,o+r*i];break;case"open":const e=.15,t=.45,s=.2;a=[0,o-t*i,0-e*i,o-s*i,0,o-r*i,0+e*i,o-s*i,0,o-t*i,0,o+r*i];break;default:const n=.1,l=.3;a=[0,o-l*i,0-n*i,o-l*i,0,o-r*i,0+n*i,o-l*i,0,o-l*i,0,o+r*i]}const l=this.point._off*s,h=["M",a[0],a[1]+l];for(let e=2;e<a.length;e+=2)h.push("L",a[e],a[e+1]+l);this.rotation=t,this.setPath(h)}}class o extends t.SeriesView{constructor(e){super(e,"rct-vector-series"),this._arrows=new t.ElementPool(this._pointContainer,a)}_getPointPool(){return this._arrows}_prepareSeries(e,t){this.$_prepareArrows(t,this._visPoints)}_renderSeries(e,t){const s=this.model;let n=s.options.startAngle;const i=s.options.arrowHead,r=s._xAxisObj,a=s._yAxisObj,o=this._inverted,l=o?e:t,h=o?t:e,u=this._getGrowRate(),g=o?0:t,c=r.options.reversed?-1:1,p=a.options.reversed;this._pointContainer.invert(o,t),this._arrows.forEach((e=>{const t=e.point;if(e.setVis(!t.isNull)){const s=r.getPos(h,t.xValue),d=g-a.getPos(l,t.yValue);let _=n+t.angleValue*c;p&&(_=180-_),t.xPos=o?g+a.getPos(l,t.yValue):s,t.yPos=o?h-r.getPos(h,t.xValue):d,e.trans(s,d),e.layout(i,_,u)}}))}_runShowEffect(e){e&&t.SeriesAnimation.grow(this)}_doViewRateChanged(e){this._renderSeries(this.width,this.height)}getPointsAt(e,t){return[]}$_prepareArrows(e,t){this._arrows.prepare(t.length,((s,n)=>{const i=s.point=t[n];this._setPointStyle(s,e,i)}))}}function l(e){(function(e){return e.Series&&e.SeriesView})(e)&&(e.Series.register(r),e.SeriesView.register([r,o]))}l(n),e.VectorSeries=r,e.default=l,Object.defineProperty(e,"__esModule",{value:!0})}));