hqchart 1.1.12382 → 1.1.12387
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/lib/umychart.vue.js +10 -8
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +8 -0
- package/src/jscommon/umychart.js +32 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +41 -2
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +41 -2
package/lib/umychart.vue.js
CHANGED
|
@@ -1314,7 +1314,7 @@ this.OffscreenCanvasElement;if(bOffscreen==true)this.OffscreenCanvasElement=docu
|
|
|
1314
1314
|
this.CacheCanvasElement=null;if(bCacheCanvas)this.CacheCanvasElement=document.createElement("canvas");//改参数div
|
|
1315
1315
|
this.ModifyIndexDialog=new ModifyIndexDialog(divElement);this.ChangeIndexDialog=new ChangeIndexDialog(divElement);this.MinuteDialog=new MinuteDialog(divElement);//额外的画布
|
|
1316
1316
|
this.MapExtraCanvasElement=new _map2.default();//key=画布名字, value={ Element:, Canvas:}
|
|
1317
|
-
this.
|
|
1317
|
+
this.CreateExtraCanvasElement=function(name){if(this.MapExtraCanvasElement.has(name))return this.MapExtraCanvasElement.get(name);var element=document.createElement("canvas");element.className='jschart-drawing-extra';element.id=Guid();if(name==JSChart.CorssCursorCanvasKey)element.setAttribute("tabindex",5);else element.setAttribute("tabindex",1);if(element.style){element.style.outline='none';element.style.position="absolute";element.style.left='0px';element.style.top='0px';element.style["pointer-events"]="none";}divElement.appendChild(element);var item={Element:element,Canvas:null};this.MapExtraCanvasElement.set(name,item);};this.GetExtraCanvas=function(name){if(!this.MapExtraCanvasElement.has(name))return null;var item=this.MapExtraCanvasElement.get(name);if(!item.Element)return null;if(!item.Canvas)item.Canvas=item.Element.getContext("2d");return item;};this.OnSize=function(option)//{ Type:1 新版本OnSize Redraw:是否重绘, XYSplit:是否重新计算分割线 }
|
|
1318
1318
|
{//画布大小通过div获取
|
|
1319
1319
|
var height=parseInt(this.DivElement.style.height.replace("px",""));if(this.ToolElement){//TODO调整工具条大小
|
|
1320
1320
|
height-=this.ToolElement.style.height.replace("px","");//减去工具条的高度
|
|
@@ -3087,6 +3087,7 @@ this.NotSupportMessage=null;this.MessageFont=g_JSChartResource.Index.NotSupport.
|
|
|
3087
3087
|
this.GetEventCallback;this.SelectedLineWidth=g_JSChartResource.SelectedChart.LineWidth;this.SelectedLineColor=g_JSChartResource.SelectedChart.LineColor;this.SelectedRadius=g_JSChartResource.SelectedChart.Radius;this.SelectedPointMinSpace=g_JSChartResource.SelectedChart.MinSpace;//点和点间最小间距
|
|
3088
3088
|
this.SelectedBGColor=g_JSChartResource.SelectedChart.BGColor;this.DrawSelectedStatus;//function() { } //选中状态
|
|
3089
3089
|
this.PtInChart;//function(x,y) { }
|
|
3090
|
+
this.IsFullRangeMaxMin=false;//this.GetMaxMin() true=计算全部的最大最小值 false=计算可视范围的最大最小值
|
|
3090
3091
|
this.Draw=function(){};//数据导出 数据格式 [{ Title:数据名称, Data:[] }]
|
|
3091
3092
|
//this.ExportData=function(aryKData) { }
|
|
3092
3093
|
this.GetBorder=function(){if(this.ChartFrame.IsHScreen)return this.ChartBorder.GetHScreenBorder();return this.ChartBorder.GetBorder();};this.ClipClient=function(isHScreen)//裁剪客户端
|
|
@@ -4096,7 +4097,7 @@ this.ArrawAngle=35;//三角斜边一直线夹角
|
|
|
4096
4097
|
this.ArrawLength=10;//三角斜边长度
|
|
4097
4098
|
this.ArrawLineWidth=5;//箭头粗细
|
|
4098
4099
|
this.Arrow={Start:false,End:false};//Start=是否绘制开始箭头 <- End=是否绘制结束箭头 ->
|
|
4099
|
-
this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Data||this.Data.length<=0)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Lines))return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var xPointCount=this.ChartFrame.XPointCount;var offset=this.Data.DataOffset;var drawLines=[];var arrowLines=[];for(var i=0;i<this.Lines.length;++i){var line=this.Lines[i];var drawPoints={Point:[],Color:line.Color};var drawArrowPoints={Start:[],End:[]};if(line.BGColor)drawPoints.BGColor=line.BGColor;var isExtendLine=false;if(IFrameSplitOperator.IsBool(line.IsExtendLine))isExtendLine=line.IsExtendLine;if(isExtendLine)//左右延申
|
|
4100
|
+
this.IsFullRangeMaxMin=false;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Data||this.Data.length<=0)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Lines))return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var xPointCount=this.ChartFrame.XPointCount;var offset=this.Data.DataOffset;var drawLines=[];var arrowLines=[];for(var i=0;i<this.Lines.length;++i){var line=this.Lines[i];var drawPoints={Point:[],Color:line.Color};var drawArrowPoints={Start:[],End:[]};if(line.BGColor)drawPoints.BGColor=line.BGColor;var isExtendLine=false;if(IFrameSplitOperator.IsBool(line.IsExtendLine))isExtendLine=line.IsExtendLine;if(isExtendLine)//左右延申
|
|
4100
4101
|
{var prePoint=null;var bFirstPoint=true;for(var j=0;j<line.Point.length;++j){var point=line.Point[j];if(!IFrameSplitOperator.IsNumber(point.Index))continue;var index=point.Index-offset;if(index>0&&index<xPointCount){if(bFirstPoint){if(prePoint){var preIndex=prePoint.Index-offset;var x=this.ChartFrame.GetXFromIndex(preIndex,false);var y=this.ChartFrame.GetYFromData(prePoint.Value,false);var pointItem={X:x,Y:y,End:false};drawPoints.Point.push(pointItem);}bFirstPoint=false;}var x=this.ChartFrame.GetXFromIndex(index,false);var y=this.ChartFrame.GetYFromData(point.Value,false);var pointItem={X:x,Y:y,End:false};drawPoints.Point.push(pointItem);}else{if(drawPoints.Point.length>0){var x=this.ChartFrame.GetXFromIndex(index,false);var y=this.ChartFrame.GetYFromData(point.Value,false);var pointItem={X:x,Y:y,End:true};drawPoints.Point.push(pointItem);bFirstPoint=true;prePoint=null;}}prePoint=point;}if(drawPoints.Point.length>=2){drawLines.push(drawPoints);arrowLines.push(drawArrowPoints);}}else{for(var j=0;j<line.Point.length;++j){var point=line.Point[j];if(!IFrameSplitOperator.IsNumber(point.Index))continue;var index=point.Index-offset;if(index>=0&&index<xPointCount){var x=this.ChartFrame.GetXFromIndex(index);var y=this.ChartFrame.GetYFromData(point.Value,false);var pointItem={X:x,Y:y,End:false};drawPoints.Point.push(pointItem);if(j==0||j==1)drawArrowPoints.Start.push(pointItem);//起始点
|
|
4101
4102
|
if(j==line.Point.length-1||j==line.Point.length-2)drawArrowPoints.End.push(pointItem);//结束点
|
|
4102
4103
|
}else{if(drawPoints.Point.length>0)drawPoints.Point[drawPoints.Point.length-1].End=true;//点断开
|
|
@@ -4106,7 +4107,8 @@ if(j==line.Point.length-1||j==line.Point.length-2)drawArrowPoints.End.push(point
|
|
|
4106
4107
|
if(arrow.End.length==2&&this.Arrow.End==true)this.DrawArrow(arrow.End[0],arrow.End[1]);if(arrow.Start.length==2&&this.Arrow.Start==true)this.DrawArrow(arrow.Start[1],arrow.Start[0]);};this.DrawArrow=function(ptStart,ptEnd){//计算箭头
|
|
4107
4108
|
var theta=this.ArrawAngle;//三角斜边一直线夹角
|
|
4108
4109
|
var headlen=this.ArrawLength;//三角斜边长度
|
|
4109
|
-
var angle=Math.atan2(ptStart.Y-ptEnd.Y,ptStart.X-ptEnd.X)*180/Math.PI,angle1=(angle+theta)*Math.PI/180,angle2=(angle-theta)*Math.PI/180,topX=headlen*Math.cos(angle1),topY=headlen*Math.sin(angle1),botX=headlen*Math.cos(angle2),botY=headlen*Math.sin(angle2);this.Canvas.beginPath();var arrowX=ptEnd.X+topX;var arrowY=ptEnd.Y+topY;this.Canvas.moveTo(arrowX,arrowY);this.Canvas.lineTo(ptEnd.X,ptEnd.Y);arrowX=ptEnd.X+botX;arrowY=ptEnd.Y+botY;this.Canvas.lineTo(arrowX,arrowY);this.Canvas.setLineDash([]);this.Canvas.lineWidth=this.ArrawLineWidth*GetDevicePixelRatio();this.Canvas.stroke();};this.GetMaxMin=function(){var range={Min:null,Max:null};var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;var end=start+xPointCount;for(var i in this.Lines){var line=this.Lines[i];for(var j in line.Point){var point=line.Point[j];if(point.Index>=start&&point.Index<end){if(range.Max==null)range.Max=point.Value;else if(range.Max<point.Value)range.Max=point.Value;if(range.Min==null)range.Min=point.Value;else if(range.Min>point.Value)range.Min=point.Value;}}}return range;}
|
|
4110
|
+
var angle=Math.atan2(ptStart.Y-ptEnd.Y,ptStart.X-ptEnd.X)*180/Math.PI,angle1=(angle+theta)*Math.PI/180,angle2=(angle-theta)*Math.PI/180,topX=headlen*Math.cos(angle1),topY=headlen*Math.sin(angle1),botX=headlen*Math.cos(angle2),botY=headlen*Math.sin(angle2);this.Canvas.beginPath();var arrowX=ptEnd.X+topX;var arrowY=ptEnd.Y+topY;this.Canvas.moveTo(arrowX,arrowY);this.Canvas.lineTo(ptEnd.X,ptEnd.Y);arrowX=ptEnd.X+botX;arrowY=ptEnd.Y+botY;this.Canvas.lineTo(arrowX,arrowY);this.Canvas.setLineDash([]);this.Canvas.lineWidth=this.ArrawLineWidth*GetDevicePixelRatio();this.Canvas.stroke();};this.GetMaxMin=function(){if(this.IsFullRangeMaxMin)return this.GetFullRangeMaxMin();var range={Min:null,Max:null};var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;var end=start+xPointCount;for(var i in this.Lines){var line=this.Lines[i];for(var j in line.Point){var point=line.Point[j];if(point.Index>=start&&point.Index<end){if(range.Max==null)range.Max=point.Value;else if(range.Max<point.Value)range.Max=point.Value;if(range.Min==null)range.Min=point.Value;else if(range.Min>point.Value)range.Min=point.Value;}}}return range;};//全部数据的最大最小值
|
|
4111
|
+
this.GetFullRangeMaxMin=function(){var range={Min:null,Max:null};if(!IFrameSplitOperator.IsNonEmptyArray(this.Lines))return range;for(var i=0;i<this.Lines.length;++i){var line=this.Lines[i];if(!IFrameSplitOperator.IsNonEmptyArray(line.Point))continue;for(var j=0;j<line.Point.length;++j){var point=line.Point[j];if(range.Max==null)range.Max=point.Value;else if(range.Max<point.Value)range.Max=point.Value;if(range.Min==null)range.Min=point.Value;else if(range.Min>point.Value)range.Min=point.Value;}}return range;};}// 线段集合 支持横屏
|
|
4110
4112
|
function ChartMultiPoint(){this.newMethod=IChartPainting;//派生
|
|
4111
4113
|
this.newMethod();delete this.newMethod;this.ClassName="ChartMultiPoint";this.PointGroup=[];// [ {Point:[ {Index, Value }, ], Color: }, ]
|
|
4112
4114
|
this.IsHScreen=false;this.LineWidth=1;this.PointRadius=5;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Data||this.Data.length<=0)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.PointGroup))return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var xPointCount=this.ChartFrame.XPointCount;var offset=this.Data.DataOffset;var pixel=GetDevicePixelRatio();this.Canvas.save();this.ClipClient(this.IsHScreen);for(var i=0;i<this.PointGroup.length;++i){var item=this.PointGroup[i];var color=item.Color;var bgColor=item.BGColor;var lineWidth=this.LineWidth;var radius=this.PointRadius;if(IFrameSplitOperator.IsNumber(item.LineWidth))lineWidth=item.LineWidth;if(IFrameSplitOperator.IsNumber(item.PointRadius))radius=item.PointRadius;var path=new Path2D();var count=0;for(var j=0;j<item.Point.length;++j){var point=item.Point[j];if(!IFrameSplitOperator.IsNumber(point.Index))continue;var index=point.Index-offset;if(index>=0&&index<xPointCount){var x=this.ChartFrame.GetXFromIndex(index);var y=this.ChartFrame.GetYFromData(point.Value,false);var pointPath=new Path2D();if(this.IsHScreen)pointPath.arc(y,x,radius*pixel,0,360,false);else pointPath.arc(x,y,radius*pixel,0,360,false);path.addPath(pointPath);++count;}}if(count>0&&(bgColor||color)){this.Canvas.lineWidth=lineWidth*pixel;this.Canvas.fillStyle=bgColor;//背景填充颜色
|
|
@@ -11254,7 +11256,7 @@ chart.Family=varItem.Draw.Icon.Family;chart.TextFont=g_JSChartResource.TIPICON.T
|
|
|
11254
11256
|
if(IFrameSplitOperator.IsNumber(varItem.YOffset))svgYOffset=varItem.YOffset;if(varItem.Color)svgColor=this.GetColor(varItem.Color);if(varItem.DrawFontSize>0)svgSize=varItem.DrawFontSize;if(varItem.DrawVAlign>=0)svgVAlign=varItem.DrawVAlign;if(varItem.Draw&&IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.DrawData)&&varItem.Draw.Icon){var drawData=varItem.Draw.DrawData;var aryData=[];var isArrayTip=Array.isArray(varItem.Draw.Text);var singleTip=null;if(!isArrayTip&&varItem.Draw.Text)singleTip={Text:varItem.Draw.Text};for(var j=0;j<drawData.length;++j){var item=drawData[j];if(!IFrameSplitOperator.IsNumber(item))continue;var svgItem={Index:j,Value:item,SVG:{Symbol:varItem.Draw.Icon.Symbol,Size:svgSize,Color:svgColor,YOffset:svgYOffset,VAlign:svgVAlign}};if(isArrayTip){var text=varItem.Draw.Text[j];if(text)svgItem.Tooltip={Text:text};}else{svgItem.Tooltip=singleTip;}aryData.push(svgItem);}chart.Texts=aryData;}hqChart.ChartPaint.push(chart);};//创建通道
|
|
11255
11257
|
this.CreateChannel=function(hqChart,windowIndex,varItem,id){var chart=new ChartChannel();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Draw.AreaColor)chart.AreaColor=varItem.Draw.AreaColor;else if(varItem.Color)chart.AreaColor=this.GetColor(varItem.Color);else chart.AreaColor=this.GetDefaultColor(id);if(varItem.Draw.Border.Color)chart.LineColor=varItem.Draw.Border.Color;else chart.LineColor=null;if(varItem.Draw.Border.Dotted)chart.LineDotted=varItem.Draw.Border.Dotted;if(varItem.Draw.Border.Width>0)chart.LineWidth=varItem.Draw.Border.Width;//let titleIndex=windowIndex+1;
|
|
11256
11258
|
chart.Data.Data=varItem.Draw.DrawData;hqChart.ChartPaint.push(chart);};this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartPartLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11257
|
-
chart.Lines=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.Draw.Name;if(varItem.Draw.LineDash)chart.LineDash=varItem.Draw.LineDash;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(varItem.Draw.Arrow)//箭头配置
|
|
11259
|
+
chart.Lines=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.Draw.Name;if(varItem.Draw.LineDash)chart.LineDash=varItem.Draw.LineDash;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin))chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;if(varItem.Draw.Arrow)//箭头配置
|
|
11258
11260
|
{var item=varItem.Draw.Arrow;if(item.Start==true)chart.Arrow.Start=true;if(item.End==true)chart.Arrow.End=true;if(IFrameSplitOperator.IsNumber(item.Angle))chart.ArrawAngle=item.Angle;if(IFrameSplitOperator.IsNumber(item.Length))chart.ArrawLength=item.Length;if(IFrameSplitOperator.IsNumber(item.LineWidth))chart.ArrawLineWidth=item.LineWidth;}hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.Name,null);titleData.DataType="ChartMultiLine";titleData.Lines=chart.Lines;hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateMultiPoint=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiPoint();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11259
11261
|
chart.PointGroup=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.Draw.Name;hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.Name,null);titleData.DataType="ChartMultiPoint";titleData.PointGroup=chart.PointGroup;hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateMultiBar=function(hqChart,windowIndex,varItem,id){var chart=new ChartMultiBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11260
11262
|
chart.Bars=varItem.Draw.DrawData;var titleIndex=windowIndex+1;var titleData=new DynamicTitleData({KData:chart.Data,BarData:chart.Bars},varItem.Name,null);titleData.IsShow=false;titleData.DataType="MULTI_BAR";hqChart.TitlePaint[titleIndex].Data[id]=titleData;hqChart.ChartPaint.push(chart);};this.CreateMultiText=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
@@ -11372,13 +11374,13 @@ frame.ChartPaint.push(chart);};//创建通道
|
|
|
11372
11374
|
this.CreateChannel=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartChannel();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw.AreaColor)chart.AreaColor=varItem.Draw.AreaColor;else if(varItem.Color)chart.AreaColor=this.GetColor(varItem.Color);else chart.AreaColor=this.GetDefaultColor(id);if(varItem.Draw.Border.Color)chart.LineColor=varItem.Draw.Border.Color;else chart.LineColor=null;if(varItem.Draw.Border.Dotted)chart.LineDotted=varItem.Draw.Border.Dotted;if(varItem.Draw.Border.Width>0)chart.LineWidth=varItem.Draw.Border.Width;//let titleIndex=windowIndex+1;
|
|
11373
11375
|
chart.Data.Data=varItem.Draw.DrawData;frame.ChartPaint.push(chart);};//
|
|
11374
11376
|
this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartPartLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11375
|
-
chart.Lines=varItem.Draw.DrawData;if(varItem.Draw.LineDash)chart.LineDash=varItem.Draw.LineDash;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(varItem.Draw.Arrow)//箭头配置
|
|
11377
|
+
chart.Lines=varItem.Draw.DrawData;if(varItem.Draw.LineDash)chart.LineDash=varItem.Draw.LineDash;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin))chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;if(varItem.Draw.Arrow)//箭头配置
|
|
11376
11378
|
{var item=varItem.Draw.Arrow;if(item.Start==true)chart.Arrow.Start=true;if(item.End==true)chart.Arrow.End=true;if(IFrameSplitOperator.IsNumber(item.Angle))chart.ArrawAngle=item.Angle;if(IFrameSplitOperator.IsNumber(item.Length))chart.ArrawLength=item.Length;if(IFrameSplitOperator.IsNumber(item.LineWidth))chart.ArrawLineWidth=item.LineWidth;}frame.ChartPaint.push(chart);};this.CreateMultiPoint=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiPoint();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11377
11379
|
chart.PointGroup=varItem.Draw.DrawData;frame.ChartPaint.push(chart);};this.CreateBackgroud=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartBackground();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Color=drawData.Color;chart.ColorAngle=drawData.Angle;if(drawData.Data)chart.Data.Data=drawData.Data;}frame.ChartPaint.push(chart);};this.CreateMultiBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11378
11380
|
chart.Bars=varItem.Draw.DrawData;var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData({KData:chart.Data,BarData:chart.Bars},varItem.Name,null);titleData.IsShow=false;titleData.DataType="MULTI_BAR";titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;frame.ChartPaint.push(chart);};this.CreateMultiText=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11379
11381
|
chart.Texts=varItem.Draw.DrawData;frame.ChartPaint.push(chart);};this.CreateMultiSVGIcon=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiSVGIcon();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11380
11382
|
chart.Family=varItem.Draw.DrawData.Family;chart.Icon=varItem.Draw.DrawData.Icon;frame.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11381
|
-
if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;frame.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11383
|
+
if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;this.ReloadChartResource(hqChart,windowIndex,chart);frame.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11382
11384
|
chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;frame.ChartPaint.push(chart);};this.CreateChartVericaltLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartVericaltLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}this.SetChartLineDash(chart,varItem.Draw.DrawData);chart.Data.Data=varItem.Draw.DrawData.Data;frame.ChartPaint.push(chart);};this.CreateChartHorizontalLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartHorizontalLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}this.SetChartLineDash(chart,varItem.Draw.DrawData);chart.ExtendType=varItem.Draw.DrawData.Extend;chart.Data.Data=varItem.Draw.DrawData.Data;frame.ChartPaint.push(chart);};//创建K线
|
|
11383
11385
|
this.CreateSelfKLine=function(hqChart,windowIndex,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartKLine();chart.Canvas=hqChart.Canvas;chart.Name="Self Kline";chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hisData;chart.IsShowMaxMinPrice=false;chart.IsShowKTooltip=false;chart.DrawType=this.KLineType;frame.ChartPaint.push(chart);};//给一个默认的颜色
|
|
11384
11386
|
this.GetDefaultColor=function(id){var COLOR_ARRAY=["rgb(24,71,178)","rgb(42,230,215)","rgb(252,96,154)","rgb(0,128,255)","rgb(229,0,79)","rgb(68,114,196)","rgb(255,174,0)","rgb(25,199,255)","rgb(175,95,162)","rgb(236,105,65)"];var number=parseInt(id);return COLOR_ARRAY[number%(COLOR_ARRAY.length-1)];};}//后台执行指标
|
|
@@ -11435,7 +11437,7 @@ sourceData.sort(function(a,b){if(a.Date==b.Date)return a.Time-b.Time;return a.Da
|
|
|
11435
11437
|
var result=[];if(!outVar)return result;for(var i=0;i<outVar.length;++i){var item=outVar[i];var indexData=[];var outVarItem={Name:item.name,Type:item.type};if(item.color)outVarItem.Color=item.color;if(item.data){outVarItem.Data=this.FittingArray(item.data,date,time,hqChart);if(item.color)outVarItem.Color=item.color;if(item.linewidth)outVarItem.LineWidth=item.linewidth;if(item.isshow==false)outVarItem.IsShow=false;if(item.isexdata==true)outVarItem.IsExData=true;if(item.BreakPoint)outVarItem.BreakPoint=item.BreakPoint;result.push(outVarItem);}else if(item.Draw){var draw=item.Draw;var drawItem={};if(draw.DrawType=='DRAWICON')//图标
|
|
11436
11438
|
{drawItem.Icon=draw.Icon;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWTEXT')//文本
|
|
11437
11439
|
{drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='STICKLINE')//柱子
|
|
11438
|
-
{drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="DRAWBAND"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);drawItem.Color=draw.Color;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_LINE'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(draw.Arrow)drawItem.Arrow=draw.Arrow;if(IFrameSplitOperator.IsNumber(draw.LineWidth))drawItem.LineWidth=draw.LineWidth;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}}outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_BAR'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.OVERLAY_BARS){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.BarName=draw.BarName;drawItem.BarColor=draw.BarColor;drawItem.LineWidth=draw.LineWidth;drawItem.BarType=draw.BarType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);//默认的值
|
|
11440
|
+
{drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="DRAWBAND"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);drawItem.Color=draw.Color;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_LINE'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(IFrameSplitOperator.IsBool(draw.IsFullRangeMaxMin))drawItem.IsFullRangeMaxMin=draw.IsFullRangeMaxMin;if(draw.Arrow)drawItem.Arrow=draw.Arrow;if(IFrameSplitOperator.IsNumber(draw.LineWidth))drawItem.LineWidth=draw.LineWidth;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}}outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_BAR'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.OVERLAY_BARS){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.BarName=draw.BarName;drawItem.BarColor=draw.BarColor;drawItem.LineWidth=draw.LineWidth;drawItem.BarType=draw.BarType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);//默认的值
|
|
11439
11441
|
drawItem.Color=draw.Color;drawItem.Radius=draw.Radius;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.IsShowRowName=draw.IsShowRowName;drawItem.BGColor=draw.BGColor;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_TEXT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_SVGICON'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={Icon:this.FittingMultiText(draw.DrawData.Icon,date,time,hqChart),Family:draw.DrawData.Family};this.GetKLineData(drawItem.DrawData.Icon,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWSVG'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={Data:this.FittingMultiText(draw.Data,date,time,hqChart),Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};this.GetKLineData(drawItem.DrawData.Data,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
|
|
11440
11442
|
{drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.Callback=draw.Callback;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="COLOR_KLINE"){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;var klineOption=this.FittingMultiText(draw.DrawData.KLine,date,time,hqChart);var mapKLineOption=new _map2.default();for(var i in klineOption){var item=klineOption[i];mapKLineOption.set(item.Index,item);}drawItem.DrawData={KLine:mapKLineOption};if(draw.Color)outVarItem.Color=draw.Color;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="KLINE_BG"){drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={};drawItem.DrawData.Color=draw.Color;drawItem.DrawData.Angle=draw.Angle;if(draw.Ver==2.0)drawItem.DrawData.Data=this.FittingKLineBG_V2(draw.DrawData,hqChart);else drawItem.DrawData.Data=this.FittingKLineBG(draw.DrawData,hqChart);outVarItem.Draw=drawItem;outVarItem.Name=draw.DrawType;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT_LINE'){drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={};drawItem.DrawData.Color=draw.Color;drawItem.DrawData.PointRadius=draw.PointRadius;drawItem.DrawData.PointColor=draw.PointColor;drawItem.DrawData.LineWidth=draw.LineWidth;drawItem.DrawData.Data=this.FittingMultiPointLine(draw.DrawData,hqChart);outVarItem.Draw=drawItem;//outVarItem.Name=draw.DrawType;
|
|
11441
11443
|
result.push(outVarItem);}else if(draw.DrawType=="PARTLINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;if(draw.LineWidth)outVarItem.LineWidth=draw.LineWidth;result.push(outVarItem);}else{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
|
|
@@ -12561,7 +12563,7 @@ this.AreaColor=g_JSChartResource.ScrollBar.BGChart.AreaColor;//面积图颜色
|
|
|
12561
12563
|
};this.Draw=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.save();if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();var bottom=this.ChartBorder.GetBottom();this.Canvas.strokeStyle=this.Color;var bFirstPoint=true;var drawCount=0,x,y;var firstPoint={};for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;x=this.ChartFrame.GetXFromIndex(i);y=this.ChartFrame.GetYFromData(value);if(bFirstPoint){this.Canvas.beginPath();this.Canvas.moveTo(x,y);bFirstPoint=false;firstPoint={X:x,Y:y};}else{this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0){this.Canvas.stroke();this.Canvas.lineTo(x,bottom);this.Canvas.lineTo(firstPoint.X,bottom);this.Canvas.closePath();this.Canvas.fillStyle=this.AreaColor;this.Canvas.fill();}this.Canvas.restore();};this.GetMaxMin=function(){var range={Max:null,Min:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null||range.Max<value)range.Max=value;if(range.Min==null||range.Min>value)range.Min=value;}return range;};}/********************************************************************************
|
|
12562
12564
|
* 版本信息输出
|
|
12563
12565
|
*
|
|
12564
|
-
*/var HQCHART_VERSION="1.1.
|
|
12566
|
+
*/var HQCHART_VERSION="1.1.12386";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
12565
12567
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12566
12568
|
// BaseIndex:BaseIndex,
|
|
12567
12569
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -20264,6 +20264,8 @@ function ScriptIndex(name,script,args,option)
|
|
|
20264
20264
|
if (varItem.Draw.Name) chart.Name=varItem.Draw.Name;
|
|
20265
20265
|
if (varItem.Draw.LineDash) chart.LineDash=varItem.Draw.LineDash;
|
|
20266
20266
|
if (IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth)) chart.LineWidth=varItem.Draw.LineWidth;
|
|
20267
|
+
if (IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin)) chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;
|
|
20268
|
+
|
|
20267
20269
|
if(varItem.Draw.Arrow) //箭头配置
|
|
20268
20270
|
{
|
|
20269
20271
|
var item=varItem.Draw.Arrow;
|
|
@@ -21752,6 +21754,8 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
21752
21754
|
chart.Lines=varItem.Draw.DrawData;
|
|
21753
21755
|
if (varItem.Draw.LineDash) chart.LineDash=varItem.Draw.LineDash;
|
|
21754
21756
|
if (IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth)) chart.LineWidth=varItem.Draw.LineWidth;
|
|
21757
|
+
if (IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin)) chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;
|
|
21758
|
+
|
|
21755
21759
|
if(varItem.Draw.Arrow) //箭头配置
|
|
21756
21760
|
{
|
|
21757
21761
|
var item=varItem.Draw.Arrow;
|
|
@@ -21881,6 +21885,9 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
21881
21885
|
chart.Family=varItem.Draw.DrawData.Family;
|
|
21882
21886
|
chart.TextFont=varItem.Draw.DrawData.TextFont;
|
|
21883
21887
|
chart.Texts= varItem.Draw.DrawData.Data;
|
|
21888
|
+
|
|
21889
|
+
this.ReloadChartResource(hqChart, windowIndex, chart);
|
|
21890
|
+
|
|
21884
21891
|
frame.ChartPaint.push(chart);
|
|
21885
21892
|
}
|
|
21886
21893
|
|
|
@@ -22849,6 +22856,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
22849
22856
|
|
|
22850
22857
|
outVarItem.Draw=drawItem;
|
|
22851
22858
|
if (draw.LineDash) drawItem.LineDash=draw.LineDash;
|
|
22859
|
+
if (IFrameSplitOperator.IsBool(draw.IsFullRangeMaxMin)) drawItem.IsFullRangeMaxMin=draw.IsFullRangeMaxMin;
|
|
22852
22860
|
if (draw.Arrow) drawItem.Arrow=draw.Arrow;
|
|
22853
22861
|
if (IFrameSplitOperator.IsNumber(draw.LineWidth)) drawItem.LineWidth=draw.LineWidth;
|
|
22854
22862
|
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -56,7 +56,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
56
56
|
//额外的画布
|
|
57
57
|
this.MapExtraCanvasElement=new Map(); //key=画布名字, value={ Element:, Canvas:}
|
|
58
58
|
|
|
59
|
-
this.
|
|
59
|
+
this.CreateExtraCanvasElement=function(name)
|
|
60
60
|
{
|
|
61
61
|
if (this.MapExtraCanvasElement.has(name)) return this.MapExtraCanvasElement.get(name);
|
|
62
62
|
|
|
@@ -20366,6 +20366,8 @@ function IChartPainting()
|
|
|
20366
20366
|
this.DrawSelectedStatus; //function() { } //选中状态
|
|
20367
20367
|
this.PtInChart; //function(x,y) { }
|
|
20368
20368
|
|
|
20369
|
+
this.IsFullRangeMaxMin=false; //this.GetMaxMin() true=计算全部的最大最小值 false=计算可视范围的最大最小值
|
|
20370
|
+
|
|
20369
20371
|
this.Draw=function()
|
|
20370
20372
|
{
|
|
20371
20373
|
|
|
@@ -34027,6 +34029,8 @@ function ChartMultiLine()
|
|
|
34027
34029
|
this.ArrawLineWidth=5; //箭头粗细
|
|
34028
34030
|
this.Arrow={ Start:false, End:false }; //Start=是否绘制开始箭头 <- End=是否绘制结束箭头 ->
|
|
34029
34031
|
|
|
34032
|
+
this.IsFullRangeMaxMin=false;
|
|
34033
|
+
|
|
34030
34034
|
this.Draw=function()
|
|
34031
34035
|
{
|
|
34032
34036
|
if (!this.IsShow || this.ChartFrame.IsMinSize) return;
|
|
@@ -34243,6 +34247,8 @@ function ChartMultiLine()
|
|
|
34243
34247
|
|
|
34244
34248
|
this.GetMaxMin=function()
|
|
34245
34249
|
{
|
|
34250
|
+
if (this.IsFullRangeMaxMin) return this.GetFullRangeMaxMin();
|
|
34251
|
+
|
|
34246
34252
|
var range={ Min:null, Max:null };
|
|
34247
34253
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
34248
34254
|
var start=this.Data.DataOffset;
|
|
@@ -34266,6 +34272,31 @@ function ChartMultiLine()
|
|
|
34266
34272
|
|
|
34267
34273
|
return range;
|
|
34268
34274
|
}
|
|
34275
|
+
|
|
34276
|
+
//全部数据的最大最小值
|
|
34277
|
+
this.GetFullRangeMaxMin=function()
|
|
34278
|
+
{
|
|
34279
|
+
var range={ Min:null, Max:null };
|
|
34280
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Lines)) return range;
|
|
34281
|
+
|
|
34282
|
+
for(var i=0; i<this.Lines.length; ++i)
|
|
34283
|
+
{
|
|
34284
|
+
var line=this.Lines[i];
|
|
34285
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(line.Point)) continue;
|
|
34286
|
+
|
|
34287
|
+
for(var j=0; j<line.Point.length; ++j)
|
|
34288
|
+
{
|
|
34289
|
+
var point=line.Point[j];
|
|
34290
|
+
|
|
34291
|
+
if (range.Max==null) range.Max=point.Value;
|
|
34292
|
+
else if (range.Max<point.Value) range.Max=point.Value;
|
|
34293
|
+
if (range.Min==null) range.Min=point.Value;
|
|
34294
|
+
else if (range.Min>point.Value) range.Min=point.Value;
|
|
34295
|
+
}
|
|
34296
|
+
}
|
|
34297
|
+
|
|
34298
|
+
return range;
|
|
34299
|
+
}
|
|
34269
34300
|
}
|
|
34270
34301
|
|
|
34271
34302
|
// 线段集合 支持横屏
|
|
@@ -4136,7 +4136,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4136
4136
|
//额外的画布
|
|
4137
4137
|
this.MapExtraCanvasElement=new Map(); //key=画布名字, value={ Element:, Canvas:}
|
|
4138
4138
|
|
|
4139
|
-
this.
|
|
4139
|
+
this.CreateExtraCanvasElement=function(name)
|
|
4140
4140
|
{
|
|
4141
4141
|
if (this.MapExtraCanvasElement.has(name)) return this.MapExtraCanvasElement.get(name);
|
|
4142
4142
|
|
|
@@ -24446,6 +24446,8 @@ function IChartPainting()
|
|
|
24446
24446
|
this.DrawSelectedStatus; //function() { } //选中状态
|
|
24447
24447
|
this.PtInChart; //function(x,y) { }
|
|
24448
24448
|
|
|
24449
|
+
this.IsFullRangeMaxMin=false; //this.GetMaxMin() true=计算全部的最大最小值 false=计算可视范围的最大最小值
|
|
24450
|
+
|
|
24449
24451
|
this.Draw=function()
|
|
24450
24452
|
{
|
|
24451
24453
|
|
|
@@ -38107,6 +38109,8 @@ function ChartMultiLine()
|
|
|
38107
38109
|
this.ArrawLineWidth=5; //箭头粗细
|
|
38108
38110
|
this.Arrow={ Start:false, End:false }; //Start=是否绘制开始箭头 <- End=是否绘制结束箭头 ->
|
|
38109
38111
|
|
|
38112
|
+
this.IsFullRangeMaxMin=false;
|
|
38113
|
+
|
|
38110
38114
|
this.Draw=function()
|
|
38111
38115
|
{
|
|
38112
38116
|
if (!this.IsShow || this.ChartFrame.IsMinSize) return;
|
|
@@ -38323,6 +38327,8 @@ function ChartMultiLine()
|
|
|
38323
38327
|
|
|
38324
38328
|
this.GetMaxMin=function()
|
|
38325
38329
|
{
|
|
38330
|
+
if (this.IsFullRangeMaxMin) return this.GetFullRangeMaxMin();
|
|
38331
|
+
|
|
38326
38332
|
var range={ Min:null, Max:null };
|
|
38327
38333
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
38328
38334
|
var start=this.Data.DataOffset;
|
|
@@ -38346,6 +38352,31 @@ function ChartMultiLine()
|
|
|
38346
38352
|
|
|
38347
38353
|
return range;
|
|
38348
38354
|
}
|
|
38355
|
+
|
|
38356
|
+
//全部数据的最大最小值
|
|
38357
|
+
this.GetFullRangeMaxMin=function()
|
|
38358
|
+
{
|
|
38359
|
+
var range={ Min:null, Max:null };
|
|
38360
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Lines)) return range;
|
|
38361
|
+
|
|
38362
|
+
for(var i=0; i<this.Lines.length; ++i)
|
|
38363
|
+
{
|
|
38364
|
+
var line=this.Lines[i];
|
|
38365
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(line.Point)) continue;
|
|
38366
|
+
|
|
38367
|
+
for(var j=0; j<line.Point.length; ++j)
|
|
38368
|
+
{
|
|
38369
|
+
var point=line.Point[j];
|
|
38370
|
+
|
|
38371
|
+
if (range.Max==null) range.Max=point.Value;
|
|
38372
|
+
else if (range.Max<point.Value) range.Max=point.Value;
|
|
38373
|
+
if (range.Min==null) range.Min=point.Value;
|
|
38374
|
+
else if (range.Min>point.Value) range.Min=point.Value;
|
|
38375
|
+
}
|
|
38376
|
+
}
|
|
38377
|
+
|
|
38378
|
+
return range;
|
|
38379
|
+
}
|
|
38349
38380
|
}
|
|
38350
38381
|
|
|
38351
38382
|
// 线段集合 支持横屏
|
|
@@ -112111,6 +112142,8 @@ function ScriptIndex(name,script,args,option)
|
|
|
112111
112142
|
if (varItem.Draw.Name) chart.Name=varItem.Draw.Name;
|
|
112112
112143
|
if (varItem.Draw.LineDash) chart.LineDash=varItem.Draw.LineDash;
|
|
112113
112144
|
if (IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth)) chart.LineWidth=varItem.Draw.LineWidth;
|
|
112145
|
+
if (IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin)) chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;
|
|
112146
|
+
|
|
112114
112147
|
if(varItem.Draw.Arrow) //箭头配置
|
|
112115
112148
|
{
|
|
112116
112149
|
var item=varItem.Draw.Arrow;
|
|
@@ -113599,6 +113632,8 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
113599
113632
|
chart.Lines=varItem.Draw.DrawData;
|
|
113600
113633
|
if (varItem.Draw.LineDash) chart.LineDash=varItem.Draw.LineDash;
|
|
113601
113634
|
if (IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth)) chart.LineWidth=varItem.Draw.LineWidth;
|
|
113635
|
+
if (IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin)) chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;
|
|
113636
|
+
|
|
113602
113637
|
if(varItem.Draw.Arrow) //箭头配置
|
|
113603
113638
|
{
|
|
113604
113639
|
var item=varItem.Draw.Arrow;
|
|
@@ -113728,6 +113763,9 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
113728
113763
|
chart.Family=varItem.Draw.DrawData.Family;
|
|
113729
113764
|
chart.TextFont=varItem.Draw.DrawData.TextFont;
|
|
113730
113765
|
chart.Texts= varItem.Draw.DrawData.Data;
|
|
113766
|
+
|
|
113767
|
+
this.ReloadChartResource(hqChart, windowIndex, chart);
|
|
113768
|
+
|
|
113731
113769
|
frame.ChartPaint.push(chart);
|
|
113732
113770
|
}
|
|
113733
113771
|
|
|
@@ -114696,6 +114734,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
114696
114734
|
|
|
114697
114735
|
outVarItem.Draw=drawItem;
|
|
114698
114736
|
if (draw.LineDash) drawItem.LineDash=draw.LineDash;
|
|
114737
|
+
if (IFrameSplitOperator.IsBool(draw.IsFullRangeMaxMin)) drawItem.IsFullRangeMaxMin=draw.IsFullRangeMaxMin;
|
|
114699
114738
|
if (draw.Arrow) drawItem.Arrow=draw.Arrow;
|
|
114700
114739
|
if (IFrameSplitOperator.IsNumber(draw.LineWidth)) drawItem.LineWidth=draw.LineWidth;
|
|
114701
114740
|
|
|
@@ -127322,7 +127361,7 @@ function ScrollBarBGChart()
|
|
|
127322
127361
|
|
|
127323
127362
|
|
|
127324
127363
|
|
|
127325
|
-
var HQCHART_VERSION="1.1.
|
|
127364
|
+
var HQCHART_VERSION="1.1.12386";
|
|
127326
127365
|
|
|
127327
127366
|
function PrintHQChartVersion()
|
|
127328
127367
|
{
|
|
@@ -4180,7 +4180,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4180
4180
|
//额外的画布
|
|
4181
4181
|
this.MapExtraCanvasElement=new Map(); //key=画布名字, value={ Element:, Canvas:}
|
|
4182
4182
|
|
|
4183
|
-
this.
|
|
4183
|
+
this.CreateExtraCanvasElement=function(name)
|
|
4184
4184
|
{
|
|
4185
4185
|
if (this.MapExtraCanvasElement.has(name)) return this.MapExtraCanvasElement.get(name);
|
|
4186
4186
|
|
|
@@ -24490,6 +24490,8 @@ function IChartPainting()
|
|
|
24490
24490
|
this.DrawSelectedStatus; //function() { } //选中状态
|
|
24491
24491
|
this.PtInChart; //function(x,y) { }
|
|
24492
24492
|
|
|
24493
|
+
this.IsFullRangeMaxMin=false; //this.GetMaxMin() true=计算全部的最大最小值 false=计算可视范围的最大最小值
|
|
24494
|
+
|
|
24493
24495
|
this.Draw=function()
|
|
24494
24496
|
{
|
|
24495
24497
|
|
|
@@ -38151,6 +38153,8 @@ function ChartMultiLine()
|
|
|
38151
38153
|
this.ArrawLineWidth=5; //箭头粗细
|
|
38152
38154
|
this.Arrow={ Start:false, End:false }; //Start=是否绘制开始箭头 <- End=是否绘制结束箭头 ->
|
|
38153
38155
|
|
|
38156
|
+
this.IsFullRangeMaxMin=false;
|
|
38157
|
+
|
|
38154
38158
|
this.Draw=function()
|
|
38155
38159
|
{
|
|
38156
38160
|
if (!this.IsShow || this.ChartFrame.IsMinSize) return;
|
|
@@ -38367,6 +38371,8 @@ function ChartMultiLine()
|
|
|
38367
38371
|
|
|
38368
38372
|
this.GetMaxMin=function()
|
|
38369
38373
|
{
|
|
38374
|
+
if (this.IsFullRangeMaxMin) return this.GetFullRangeMaxMin();
|
|
38375
|
+
|
|
38370
38376
|
var range={ Min:null, Max:null };
|
|
38371
38377
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
38372
38378
|
var start=this.Data.DataOffset;
|
|
@@ -38390,6 +38396,31 @@ function ChartMultiLine()
|
|
|
38390
38396
|
|
|
38391
38397
|
return range;
|
|
38392
38398
|
}
|
|
38399
|
+
|
|
38400
|
+
//全部数据的最大最小值
|
|
38401
|
+
this.GetFullRangeMaxMin=function()
|
|
38402
|
+
{
|
|
38403
|
+
var range={ Min:null, Max:null };
|
|
38404
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Lines)) return range;
|
|
38405
|
+
|
|
38406
|
+
for(var i=0; i<this.Lines.length; ++i)
|
|
38407
|
+
{
|
|
38408
|
+
var line=this.Lines[i];
|
|
38409
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(line.Point)) continue;
|
|
38410
|
+
|
|
38411
|
+
for(var j=0; j<line.Point.length; ++j)
|
|
38412
|
+
{
|
|
38413
|
+
var point=line.Point[j];
|
|
38414
|
+
|
|
38415
|
+
if (range.Max==null) range.Max=point.Value;
|
|
38416
|
+
else if (range.Max<point.Value) range.Max=point.Value;
|
|
38417
|
+
if (range.Min==null) range.Min=point.Value;
|
|
38418
|
+
else if (range.Min>point.Value) range.Min=point.Value;
|
|
38419
|
+
}
|
|
38420
|
+
}
|
|
38421
|
+
|
|
38422
|
+
return range;
|
|
38423
|
+
}
|
|
38393
38424
|
}
|
|
38394
38425
|
|
|
38395
38426
|
// 线段集合 支持横屏
|
|
@@ -112155,6 +112186,8 @@ function ScriptIndex(name,script,args,option)
|
|
|
112155
112186
|
if (varItem.Draw.Name) chart.Name=varItem.Draw.Name;
|
|
112156
112187
|
if (varItem.Draw.LineDash) chart.LineDash=varItem.Draw.LineDash;
|
|
112157
112188
|
if (IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth)) chart.LineWidth=varItem.Draw.LineWidth;
|
|
112189
|
+
if (IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin)) chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;
|
|
112190
|
+
|
|
112158
112191
|
if(varItem.Draw.Arrow) //箭头配置
|
|
112159
112192
|
{
|
|
112160
112193
|
var item=varItem.Draw.Arrow;
|
|
@@ -113643,6 +113676,8 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
113643
113676
|
chart.Lines=varItem.Draw.DrawData;
|
|
113644
113677
|
if (varItem.Draw.LineDash) chart.LineDash=varItem.Draw.LineDash;
|
|
113645
113678
|
if (IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth)) chart.LineWidth=varItem.Draw.LineWidth;
|
|
113679
|
+
if (IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin)) chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;
|
|
113680
|
+
|
|
113646
113681
|
if(varItem.Draw.Arrow) //箭头配置
|
|
113647
113682
|
{
|
|
113648
113683
|
var item=varItem.Draw.Arrow;
|
|
@@ -113772,6 +113807,9 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
113772
113807
|
chart.Family=varItem.Draw.DrawData.Family;
|
|
113773
113808
|
chart.TextFont=varItem.Draw.DrawData.TextFont;
|
|
113774
113809
|
chart.Texts= varItem.Draw.DrawData.Data;
|
|
113810
|
+
|
|
113811
|
+
this.ReloadChartResource(hqChart, windowIndex, chart);
|
|
113812
|
+
|
|
113775
113813
|
frame.ChartPaint.push(chart);
|
|
113776
113814
|
}
|
|
113777
113815
|
|
|
@@ -114740,6 +114778,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
114740
114778
|
|
|
114741
114779
|
outVarItem.Draw=drawItem;
|
|
114742
114780
|
if (draw.LineDash) drawItem.LineDash=draw.LineDash;
|
|
114781
|
+
if (IFrameSplitOperator.IsBool(draw.IsFullRangeMaxMin)) drawItem.IsFullRangeMaxMin=draw.IsFullRangeMaxMin;
|
|
114743
114782
|
if (draw.Arrow) drawItem.Arrow=draw.Arrow;
|
|
114744
114783
|
if (IFrameSplitOperator.IsNumber(draw.LineWidth)) drawItem.LineWidth=draw.LineWidth;
|
|
114745
114784
|
|
|
@@ -127366,7 +127405,7 @@ function ScrollBarBGChart()
|
|
|
127366
127405
|
|
|
127367
127406
|
|
|
127368
127407
|
|
|
127369
|
-
var HQCHART_VERSION="1.1.
|
|
127408
|
+
var HQCHART_VERSION="1.1.12386";
|
|
127370
127409
|
|
|
127371
127410
|
function PrintHQChartVersion()
|
|
127372
127411
|
{
|