hqchart 1.1.12522 → 1.1.12525

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.
@@ -5683,6 +5683,7 @@ this.EnableSave=true;//是否允许保存
5683
5683
  this.EnableCtrlMove=false;//是否按住Ctrl才能移动
5684
5684
  this.OnlyMoveXIndex=false;//只能在X轴刻度上移动
5685
5685
  this.IsSupportMagnet=false;//是否支持磁吸
5686
+ this.EnableMoveCheck=true;//允许移动时监测是否超出边界
5686
5687
  this.IsDrawFirst=false;this.IsShowYCoordinate=false;//是否在Y轴显示点的刻度
5687
5688
  this.LineColor=g_JSChartResource.DrawPicture.LineColor[0];//线段颜色
5688
5689
  //this.LineColor="#1e90ff"; //线段颜色,input type="color" 不支持rgb和rgba 的格式
@@ -5704,7 +5705,9 @@ this.ValueToPoint=function(){if(!this.Frame)return false;var data=this.Frame.Dat
5704
5705
  var isHScreen=this.Frame.IsHScreen;this.Point=[];for(var i=0;i<this.Value.length;++i){var item=this.Value[i];var pt=new Point();if(isHScreen){pt.Y=this.Frame.GetXFromIndex(item.XValue-data.DataOffset,false);pt.X=this.Frame.GetYFromData(item.YValue,false);}else{pt.X=this.Frame.GetXFromIndex(item.XValue-data.DataOffset,false);pt.Y=this.Frame.GetYFromData(item.YValue,false);}this.Point[i]=pt;}};this.UpdateXValue=function()//通过datetime更新x的索引
5705
5706
  {if(!this.Frame)return false;var data=this.Frame.Data;if(!data)return false;var aryDateTime=[];for(var i=0;i<this.Value.length;++i){var item=this.Value[i];if(!item.DateTime)break;var dateTime={Date:item.DateTime.Date};if(IFrameSplitOperator.IsNumber(item.DateTime.Time))dateTime.Time=item.DateTime.Time;aryDateTime[i]=dateTime;}data.FindDataIndexByDateTime(aryDateTime);for(var i in aryDateTime){var findItem=aryDateTime[i];var valueItem=this.Value[i];if(findItem.Index>=0)valueItem.XValue=findItem.Index;}};//xStep,yStep 移动的偏移量
5706
5707
  this.Move=function(xStep,yStep){if(this.Status!=20)return fasle;if(!this.Frame)return false;var data=this.Frame.Data;if(!data)return false;if(this.MovePointIndex==null)return false;var index=parseInt(this.MovePointIndex);if(index===100)//整体移动
5707
- {for(var i in this.Point){this.Point[i].X+=xStep;this.Point[i].Y+=yStep;}}else if(index===0||index===1||index===2||index===3||index===4||index===5){if(index<this.Point.length){this.Point[index].X+=xStep;this.Point[index].Y+=yStep;}}else{return false;}};this.ClipFrame=function(){if(this.Frame.IsHScreen){var left=this.Frame.ChartBorder.GetLeftEx();var top=this.Frame.ChartBorder.GetTop();var width=this.Frame.ChartBorder.GetWidthEx();var height=this.Frame.ChartBorder.GetHeight();}else{var left=this.Frame.ChartBorder.GetLeft();var top=this.Frame.ChartBorder.GetTopEx();var width=this.Frame.ChartBorder.GetWidth();var height=this.Frame.ChartBorder.GetHeightEx();}this.Canvas.save();this.Canvas.beginPath();this.Canvas.rect(left,top,width,height);this.Canvas.clip();};//计算需要画的点的坐标option:{IsCheckX:是否检测X值, IsCheckY:是否检测Y值}
5708
+ {if(this.IsMoveOutOfBounds(this.Point,xStep,yStep))return false;for(var i in this.Point){this.Point[i].X+=xStep;this.Point[i].Y+=yStep;}}else if(index===0||index===1||index===2||index===3||index===4||index===5){if(index<this.Point.length){this.Point[index].X+=xStep;this.Point[index].Y+=yStep;}}else{return false;}};//是否超出边界了
5709
+ this.IsMoveOutOfBounds=function(aryPoint,xStep,yStep){if(!this.EnableMoveCheck)return false;if(!this.Frame)return false;if(this.Frame.ClassName=="MinuteFrame"||this.Frame.Class=="MinuteHScreenFrame")return false;var data=this.Frame.Data;if(!data)return false;if(!IFrameSplitOperator.IsNonEmptyArray(data.Data))return false;if(!IFrameSplitOperator.IsNonEmptyArray(aryPoint))return false;var isHScreen=this.Frame.IsHScreen;if(isHScreen){//TODO:横屏以后再做
5710
+ return false;}else{var offset=data.DataOffset;var startIndex=0-offset;var endIndex=data.Data.length-offset;if(xStep>0){var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(item.X+xStep>xEnd)return true;}}else if(xStep<0){var xStart=this.Frame.GetXFromIndex(startIndex,false);for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(item.X+xStep<xStart)return true;}}return false;}};this.ClipFrame=function(){if(this.Frame.IsHScreen){var left=this.Frame.ChartBorder.GetLeftEx();var top=this.Frame.ChartBorder.GetTop();var width=this.Frame.ChartBorder.GetWidthEx();var height=this.Frame.ChartBorder.GetHeight();}else{var left=this.Frame.ChartBorder.GetLeft();var top=this.Frame.ChartBorder.GetTopEx();var width=this.Frame.ChartBorder.GetWidth();var height=this.Frame.ChartBorder.GetHeightEx();}this.Canvas.save();this.Canvas.beginPath();this.Canvas.rect(left,top,width,height);this.Canvas.clip();};//计算需要画的点的坐标option:{IsCheckX:是否检测X值, IsCheckY:是否检测Y值}
5708
5711
  this.CalculateDrawPoint=function(option){if(this.Status<2)return null;if(!this.Point.length||!this.Frame)return null;var drawPoint=[];if(this.Status==10){var data=this.Frame.Data;if(!data)return null;var showCount=this.Frame.XPointCount;var invaildX=0;//超出范围的x点个数
5709
5712
  var isHScreen=this.Frame.IsHScreen;for(var i=0;i<this.Value.length;++i){var item=this.Value[i];var dataIndex=item.XValue-data.DataOffset;if(dataIndex<0||dataIndex>=showCount)++invaildX;var pt=new Point();if(isHScreen)//横屏X,Y对调
5710
5713
  {pt.Y=this.Frame.GetXFromIndex(item.XValue-data.DataOffset,false);pt.X=this.Frame.GetYFromData(item.YValue,false);}else{pt.X=this.Frame.GetXFromIndex(item.XValue-data.DataOffset,false);pt.Y=this.Frame.GetYFromData(item.YValue,false);}drawPoint.push(pt);}if(option&&option.IsCheckX===true){if(invaildX==this.Value.length)return null;}}else//移动中
@@ -5778,6 +5781,7 @@ this.Canvas.restore();};this.GetYCoordinatePoint=function(){if(this.IsFrameMinSi
5778
5781
  var aryPoint=[];for(var i=0;i<this.Value.length;++i){var item=this.Value[i];var y=this.Frame.GetYFromData(item.YValue,false);aryPoint.push({Y:y,YValue:item.YValue,Item:item,Color:this.PointColor});}return aryPoint;};}//画图工具-涂鸦线段 Y轴关联数值, X轴不关联
5779
5782
  function ChartDrawGraffitiLine(){this.newMethod=IChartDrawPicture;//派生
5780
5783
  this.newMethod();delete this.newMethod;this.ClassName='ChartDrawGraffitiLine';this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=null;this.PointCount=2;//画点的个数
5784
+ this.EnableMoveCheck=false;//允许移动时不监测是否超出边界
5781
5785
  this.PointToValue=function(){if(!this.Frame)return false;var isHScreen=this.Frame.IsHScreen;if(isHScreen){for(var i=0;i<this.Point.length;++i){var item=this.Point[i];var yValue=this.Frame.GetYData(item.X);var valueItem={XValue:item.Y,YValue:yValue};this.Value[i]=valueItem;}}else{for(var i=0;i<this.Point.length;++i){var item=this.Point[i];var yValue=this.Frame.GetYData(item.Y);var valueItem={XValue:item.X,YValue:yValue};this.Value[i]=valueItem;}}return true;};//Value => Point
5782
5786
  this.ValueToPoint=function(){if(!this.Frame)return false;var isHScreen=this.Frame.IsHScreen;this.Point=[];for(var i in this.Value){var item=this.Value[i];var pt=new Point();if(isHScreen){pt.Y=item.XValue;pt.X=this.Frame.GetYFromData(item.YValue);}else{pt.X=item.XValue;pt.Y=this.Frame.GetYFromData(item.YValue,false);}this.Point[i]=pt;}};this.UpdateXValue=function()//通过datetime更新x的索引
5783
5787
  {};this.CalculateDrawPoint=function(option){if(this.Status<2)return null;if(!this.Point.length||!this.Frame)return null;var drawPoint=[];if(this.Status==10){var isHScreen=this.Frame.IsHScreen;for(var i in this.Value){var item=this.Value[i];var pt=new Point();if(isHScreen)//横屏X,Y对调
@@ -5852,7 +5856,7 @@ function ChartDrawPictureTrendLine(){this.newMethod=IChartDrawPicture;//派生
5852
5856
  this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureTrendLine';this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=this.GetXYCoordinate_default;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;var drawPoint=this.CalculateDrawPoint({IsCheckX:false,IsCheckY:false});if(!drawPoint||drawPoint.length!=2)return;var ptStart=drawPoint[0];var ptEnd=drawPoint[1];var extendLine=this.CalculateExtendLinePoint(ptStart,ptEnd);this.ClipFrame();this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();this.Canvas.moveTo(extendLine.Start.X,extendLine.Start.Y);this.Canvas.lineTo(extendLine.End.X,extendLine.End.Y);this.Canvas.stroke();this.RestoreLineWidth();var line={Start:ptStart,End:ptEnd};this.LinePoint.push(line);this.DrawPoint(drawPoint);//画点
5853
5857
  this.Canvas.restore();};}//画图工具-矩形
5854
5858
  function ChartDrawPictureRect(){this.newMethod=IChartDrawPicture;//派生
5855
- this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureRect';this.GetXYCoordinate=this.GetXYCoordinate_default;this.Draw=function(){if(this.IsFrameMinSize())return;var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!drawPoint||drawPoint.length!=2)return;this.AreaColor=IChartDrawPicture.ColorToRGBA(this.LineColor,0.3);this.ClipFrame();this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();this.Canvas.rect(drawPoint[0].X,drawPoint[0].Y,drawPoint[1].X-drawPoint[0].X,drawPoint[1].Y-drawPoint[0].Y);this.Canvas.stroke();this.RestoreLineWidth();//透明背景
5859
+ this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureRect';this.GetXYCoordinate=this.GetXYCoordinate_default;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.Draw=function(){if(this.IsFrameMinSize())return;var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!drawPoint||drawPoint.length!=2)return;this.AreaColor=IChartDrawPicture.ColorToRGBA(this.LineColor,0.3);this.ClipFrame();this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();this.Canvas.rect(drawPoint[0].X,drawPoint[0].Y,drawPoint[1].X-drawPoint[0].X,drawPoint[1].Y-drawPoint[0].Y);this.Canvas.stroke();this.RestoreLineWidth();//透明背景
5856
5860
  this.Canvas.fillStyle=this.AreaColor;this.Canvas.beginPath();this.Canvas.fillRect(drawPoint[0].X,drawPoint[0].Y,drawPoint[1].X-drawPoint[0].X,drawPoint[1].Y-drawPoint[0].Y);this.Canvas.restore();//画点
5857
5861
  this.DrawPoint(drawPoint);};//0-10 鼠标对应的点索引 100=鼠标在正个图形上 -1 鼠标不在图形上
5858
5862
  this.IsPointIn=function(x,y,option){if(this.IsFrameMinSize())return-1;if(!this.Frame||this.Status!=10)return-1;var data=this.Frame.Data;if(!data)return-1;var nIndex=this.IsPointInXYValue(x,y,option);if(nIndex>=0)return nIndex;var aryPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!aryPoint||aryPoint.length!=2)return-1;//是否在矩形边框上
@@ -12634,7 +12638,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
12634
12638
  hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,Stock:{Symbol:message.Symbol},Request:{MaxDataCount:500,MaxMinuteDayCount:5},Period:message.Period,Right:message.Right,Data:hisData};if(IFrameSplitOperator.IsNumber(message.HQDataType))stockObj.HQDataType=message.HQDataType;indexConsole.ExecuteScript(stockObj);};this.OnRecvMessage=function(message){var data=message.data;if(!data)return;if(data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex))return;for(var i=0;i<data.AryIndex.length;++i){var item=data.AryIndex[i];this.ExecuteScript(item,data);}}};this.OnExecuteFinish=function(data,indexInfo,jsExectute){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT};postMessage(message);};this.OnExecuteError=function(error,indexInfo){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
12635
12639
  * 版本信息输出
12636
12640
  *
12637
- */var HQCHART_VERSION="1.1.12521";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();//把给外界调用的方法暴露出来
12641
+ */var HQCHART_VERSION="1.1.12523";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();//把给外界调用的方法暴露出来
12638
12642
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12639
12643
  // BaseIndex:BaseIndex,
12640
12644
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.12522",
5
+ "version": "1.1.12525",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -50645,6 +50645,7 @@ function IChartDrawPicture()
50645
50645
  this.EnableCtrlMove=false; //是否按住Ctrl才能移动
50646
50646
  this.OnlyMoveXIndex=false; //只能在X轴刻度上移动
50647
50647
  this.IsSupportMagnet=false; //是否支持磁吸
50648
+ this.EnableMoveCheck=true; //允许移动时监测是否超出边界
50648
50649
 
50649
50650
  this.IsDrawFirst=false;
50650
50651
  this.IsShowYCoordinate=false; //是否在Y轴显示点的刻度
@@ -50993,6 +50994,8 @@ function IChartDrawPicture()
50993
50994
  var index=parseInt(this.MovePointIndex);
50994
50995
  if (index===100) //整体移动
50995
50996
  {
50997
+ if (this.IsMoveOutOfBounds(this.Point, xStep, yStep)) return false;
50998
+
50996
50999
  for(var i in this.Point)
50997
51000
  {
50998
51001
  this.Point[i].X+=xStep;
@@ -51013,6 +51016,56 @@ function IChartDrawPicture()
51013
51016
  }
51014
51017
  }
51015
51018
 
51019
+ //是否超出边界了
51020
+ this.IsMoveOutOfBounds=function(aryPoint,xStep,yStep)
51021
+ {
51022
+ if (!this.EnableMoveCheck) return false;
51023
+
51024
+ if (!this.Frame) return false;
51025
+
51026
+ if (this.Frame.ClassName=="MinuteFrame" || this.Frame.Class=="MinuteHScreenFrame")
51027
+ return false;
51028
+
51029
+
51030
+ var data=this.Frame.Data;
51031
+ if (!data) return false;
51032
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.Data)) return false;
51033
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryPoint)) return false;
51034
+ var isHScreen=this.Frame.IsHScreen;
51035
+ if (isHScreen)
51036
+ {
51037
+ //TODO:横屏以后再做
51038
+ return false;
51039
+ }
51040
+ else
51041
+ {
51042
+ var offset=data.DataOffset;
51043
+ var startIndex=0-offset;
51044
+ var endIndex=data.Data.length-offset;
51045
+
51046
+ if (xStep>0)
51047
+ {
51048
+ var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);
51049
+ for(var i=0;i<aryPoint.length;++i)
51050
+ {
51051
+ var item=aryPoint[i];
51052
+ if (item.X+xStep>xEnd) return true;
51053
+ }
51054
+ }
51055
+ else if (xStep<0)
51056
+ {
51057
+ var xStart=this.Frame.GetXFromIndex(startIndex,false);
51058
+ for(var i=0;i<aryPoint.length;++i)
51059
+ {
51060
+ var item=aryPoint[i];
51061
+ if (item.X+xStep<xStart) return true;
51062
+ }
51063
+ }
51064
+
51065
+ return false;
51066
+ }
51067
+ }
51068
+
51016
51069
  this.ClipFrame=function()
51017
51070
  {
51018
51071
  if (this.Frame.IsHScreen)
@@ -52145,6 +52198,7 @@ function ChartDrawGraffitiLine()
52145
52198
  this.IsPointIn=this.IsPointIn_XYValue_Line;
52146
52199
  this.GetXYCoordinate=null;
52147
52200
  this.PointCount=2; //画点的个数
52201
+ this.EnableMoveCheck=false; //允许移动时不监测是否超出边界
52148
52202
 
52149
52203
  this.PointToValue=function()
52150
52204
  {
@@ -53169,6 +53223,8 @@ function ChartDrawPictureRect()
53169
53223
 
53170
53224
  this.ClassName='ChartDrawPictureRect';
53171
53225
  this.GetXYCoordinate=this.GetXYCoordinate_default;
53226
+ this.OnlyMoveXIndex=true;
53227
+ this.IsSupportMagnet=true;
53172
53228
 
53173
53229
  this.Draw=function()
53174
53230
  {
@@ -54725,6 +54725,7 @@ function IChartDrawPicture()
54725
54725
  this.EnableCtrlMove=false; //是否按住Ctrl才能移动
54726
54726
  this.OnlyMoveXIndex=false; //只能在X轴刻度上移动
54727
54727
  this.IsSupportMagnet=false; //是否支持磁吸
54728
+ this.EnableMoveCheck=true; //允许移动时监测是否超出边界
54728
54729
 
54729
54730
  this.IsDrawFirst=false;
54730
54731
  this.IsShowYCoordinate=false; //是否在Y轴显示点的刻度
@@ -55073,6 +55074,8 @@ function IChartDrawPicture()
55073
55074
  var index=parseInt(this.MovePointIndex);
55074
55075
  if (index===100) //整体移动
55075
55076
  {
55077
+ if (this.IsMoveOutOfBounds(this.Point, xStep, yStep)) return false;
55078
+
55076
55079
  for(var i in this.Point)
55077
55080
  {
55078
55081
  this.Point[i].X+=xStep;
@@ -55093,6 +55096,56 @@ function IChartDrawPicture()
55093
55096
  }
55094
55097
  }
55095
55098
 
55099
+ //是否超出边界了
55100
+ this.IsMoveOutOfBounds=function(aryPoint,xStep,yStep)
55101
+ {
55102
+ if (!this.EnableMoveCheck) return false;
55103
+
55104
+ if (!this.Frame) return false;
55105
+
55106
+ if (this.Frame.ClassName=="MinuteFrame" || this.Frame.Class=="MinuteHScreenFrame")
55107
+ return false;
55108
+
55109
+
55110
+ var data=this.Frame.Data;
55111
+ if (!data) return false;
55112
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.Data)) return false;
55113
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryPoint)) return false;
55114
+ var isHScreen=this.Frame.IsHScreen;
55115
+ if (isHScreen)
55116
+ {
55117
+ //TODO:横屏以后再做
55118
+ return false;
55119
+ }
55120
+ else
55121
+ {
55122
+ var offset=data.DataOffset;
55123
+ var startIndex=0-offset;
55124
+ var endIndex=data.Data.length-offset;
55125
+
55126
+ if (xStep>0)
55127
+ {
55128
+ var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);
55129
+ for(var i=0;i<aryPoint.length;++i)
55130
+ {
55131
+ var item=aryPoint[i];
55132
+ if (item.X+xStep>xEnd) return true;
55133
+ }
55134
+ }
55135
+ else if (xStep<0)
55136
+ {
55137
+ var xStart=this.Frame.GetXFromIndex(startIndex,false);
55138
+ for(var i=0;i<aryPoint.length;++i)
55139
+ {
55140
+ var item=aryPoint[i];
55141
+ if (item.X+xStep<xStart) return true;
55142
+ }
55143
+ }
55144
+
55145
+ return false;
55146
+ }
55147
+ }
55148
+
55096
55149
  this.ClipFrame=function()
55097
55150
  {
55098
55151
  if (this.Frame.IsHScreen)
@@ -56225,6 +56278,7 @@ function ChartDrawGraffitiLine()
56225
56278
  this.IsPointIn=this.IsPointIn_XYValue_Line;
56226
56279
  this.GetXYCoordinate=null;
56227
56280
  this.PointCount=2; //画点的个数
56281
+ this.EnableMoveCheck=false; //允许移动时不监测是否超出边界
56228
56282
 
56229
56283
  this.PointToValue=function()
56230
56284
  {
@@ -57249,6 +57303,8 @@ function ChartDrawPictureRect()
57249
57303
 
57250
57304
  this.ClassName='ChartDrawPictureRect';
57251
57305
  this.GetXYCoordinate=this.GetXYCoordinate_default;
57306
+ this.OnlyMoveXIndex=true;
57307
+ this.IsSupportMagnet=true;
57252
57308
 
57253
57309
  this.Draw=function()
57254
57310
  {
@@ -128887,7 +128943,7 @@ function ScrollBarBGChart()
128887
128943
 
128888
128944
 
128889
128945
 
128890
- var HQCHART_VERSION="1.1.12521";
128946
+ var HQCHART_VERSION="1.1.12523";
128891
128947
 
128892
128948
  function PrintHQChartVersion()
128893
128949
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12521";
8
+ var HQCHART_VERSION="1.1.12523";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -54769,6 +54769,7 @@ function IChartDrawPicture()
54769
54769
  this.EnableCtrlMove=false; //是否按住Ctrl才能移动
54770
54770
  this.OnlyMoveXIndex=false; //只能在X轴刻度上移动
54771
54771
  this.IsSupportMagnet=false; //是否支持磁吸
54772
+ this.EnableMoveCheck=true; //允许移动时监测是否超出边界
54772
54773
 
54773
54774
  this.IsDrawFirst=false;
54774
54775
  this.IsShowYCoordinate=false; //是否在Y轴显示点的刻度
@@ -55117,6 +55118,8 @@ function IChartDrawPicture()
55117
55118
  var index=parseInt(this.MovePointIndex);
55118
55119
  if (index===100) //整体移动
55119
55120
  {
55121
+ if (this.IsMoveOutOfBounds(this.Point, xStep, yStep)) return false;
55122
+
55120
55123
  for(var i in this.Point)
55121
55124
  {
55122
55125
  this.Point[i].X+=xStep;
@@ -55137,6 +55140,56 @@ function IChartDrawPicture()
55137
55140
  }
55138
55141
  }
55139
55142
 
55143
+ //是否超出边界了
55144
+ this.IsMoveOutOfBounds=function(aryPoint,xStep,yStep)
55145
+ {
55146
+ if (!this.EnableMoveCheck) return false;
55147
+
55148
+ if (!this.Frame) return false;
55149
+
55150
+ if (this.Frame.ClassName=="MinuteFrame" || this.Frame.Class=="MinuteHScreenFrame")
55151
+ return false;
55152
+
55153
+
55154
+ var data=this.Frame.Data;
55155
+ if (!data) return false;
55156
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.Data)) return false;
55157
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryPoint)) return false;
55158
+ var isHScreen=this.Frame.IsHScreen;
55159
+ if (isHScreen)
55160
+ {
55161
+ //TODO:横屏以后再做
55162
+ return false;
55163
+ }
55164
+ else
55165
+ {
55166
+ var offset=data.DataOffset;
55167
+ var startIndex=0-offset;
55168
+ var endIndex=data.Data.length-offset;
55169
+
55170
+ if (xStep>0)
55171
+ {
55172
+ var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);
55173
+ for(var i=0;i<aryPoint.length;++i)
55174
+ {
55175
+ var item=aryPoint[i];
55176
+ if (item.X+xStep>xEnd) return true;
55177
+ }
55178
+ }
55179
+ else if (xStep<0)
55180
+ {
55181
+ var xStart=this.Frame.GetXFromIndex(startIndex,false);
55182
+ for(var i=0;i<aryPoint.length;++i)
55183
+ {
55184
+ var item=aryPoint[i];
55185
+ if (item.X+xStep<xStart) return true;
55186
+ }
55187
+ }
55188
+
55189
+ return false;
55190
+ }
55191
+ }
55192
+
55140
55193
  this.ClipFrame=function()
55141
55194
  {
55142
55195
  if (this.Frame.IsHScreen)
@@ -56269,6 +56322,7 @@ function ChartDrawGraffitiLine()
56269
56322
  this.IsPointIn=this.IsPointIn_XYValue_Line;
56270
56323
  this.GetXYCoordinate=null;
56271
56324
  this.PointCount=2; //画点的个数
56325
+ this.EnableMoveCheck=false; //允许移动时不监测是否超出边界
56272
56326
 
56273
56327
  this.PointToValue=function()
56274
56328
  {
@@ -57293,6 +57347,8 @@ function ChartDrawPictureRect()
57293
57347
 
57294
57348
  this.ClassName='ChartDrawPictureRect';
57295
57349
  this.GetXYCoordinate=this.GetXYCoordinate_default;
57350
+ this.OnlyMoveXIndex=true;
57351
+ this.IsSupportMagnet=true;
57296
57352
 
57297
57353
  this.Draw=function()
57298
57354
  {
@@ -129040,7 +129096,7 @@ function HQChartScriptWorker()
129040
129096
 
129041
129097
 
129042
129098
 
129043
- var HQCHART_VERSION="1.1.12521";
129099
+ var HQCHART_VERSION="1.1.12523";
129044
129100
 
129045
129101
  function PrintHQChartVersion()
129046
129102
  {