hqchart 1.1.15872 → 1.1.15874

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.
@@ -3759,8 +3759,10 @@ if(!mapIndexCache.has(id)){mapIndexCache.set(id,{MapData:new Map()});}var mapIte
3759
3759
  this.GetCacheData=function(name,out){if(!this.ChartFrame||!this.ChartFrame.GlobalOption)return false;var mapIndexCache=this.ChartFrame.GlobalOption.MapIndexChartCache;if(!mapIndexCache)return false;if(!this.Script||!this.Script.Guid)return false;if(!this.Name)return false;var id=this.Script.Guid;//指标ID;
3760
3760
  if(!mapIndexCache.has(id))return false;var mapItem=mapIndexCache.get(id);var key="".concat(this.Name,"-").concat(name);if(!mapItem.MapData.has(key))return false;var value=mapItem.MapData.get(key);if(out){out.Data=value;out.Key=key;out.IndexGuid=id;}return true;};//数据导出 数据格式 [{ Title:数据名称, Data:[] }]
3761
3761
  //this.ExportData=function(aryKData) { }
3762
- this.GetBorder=function(){if(this.ChartFrame.IsHScreen)return this.ChartBorder.GetHScreenBorder();return this.ChartBorder.GetBorder();};this.ClipClient=function(isHScreen)//裁剪客户端
3763
- {if(isHScreen==true){var left=this.ChartBorder.GetLeftEx();var right=this.ChartBorder.GetRightEx()+1;var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}else{var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=this.ChartBorder.GetTopEx()-1;var bottom=this.ChartBorder.GetBottomEx();}this.Canvas.beginPath();this.Canvas.rect(left,top,right-left,bottom-top);//this.Canvas.stroke(); //调试用
3762
+ this.GetBorder=function(){if(this.ChartFrame.IsHScreen)return this.ChartBorder.GetHScreenBorder();return this.ChartBorder.GetBorder();};this.ClipClient=function(isHScreen,option)//裁剪客户端
3763
+ {if(isHScreen==true){var left=this.ChartBorder.GetLeftEx();var right=this.ChartBorder.GetRightEx()+1;var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}else{var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=this.ChartBorder.GetTopEx()-1;var bottom=this.ChartBorder.GetBottomEx();if(option&&option.Clip){var item=option.Clip;if(IFrameSplitOperator.IsNumber(item.LeftOffset))left+=item.LeftOffset;//左侧
3764
+ if(IFrameSplitOperator.IsNumber(item.RightOffset))right+=item.RightOffset;//右侧
3765
+ }}this.Canvas.beginPath();this.Canvas.rect(left,top,right-left,bottom-top);//this.Canvas.stroke(); //调试用
3764
3766
  this.Canvas.clip();};this.GetYFromData=function(value,isLimit){return this.ChartFrame.GetYFromData(value,isLimit);};this.IsMinuteFrame=function(){var isMinute=this.ChartFrame.ClassName=="MinuteFrame"||this.ChartFrame.ClassName=="MinuteHScreenFrame"||this.ChartFrame.ClassName=="OverlayMinuteFrame"||this.ChartFrame.ClassName=="OverlayMinuteHScreenFrame";return isMinute;};this.DrawNotSupportmessage=function(){this.Canvas.font=this.MessageFont;this.Canvas.fillStyle=this.MessageColor;var left=this.ChartBorder.GetLeft();var width=this.ChartBorder.GetWidth();var top=this.ChartBorder.GetTopEx();var height=this.ChartBorder.GetHeightEx();var x=left+width/2;var y=top+height/2;var bHScreen=this.ChartFrame.IsHScreen;if(bHScreen){this.Canvas.save();this.Canvas.translate(x,y);this.Canvas.rotate(90*Math.PI/180);x=0,y=0;}this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillText(this.NotSupportMessage,x,y);if(bHScreen)this.Canvas.restore();};this.GetTooltipData=function(x,y,tooltip){return false;};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}var range={};range.Min=null;range.Max=null;if(!this.Data||!this.Data.Data)return range;for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(value==null||isNaN(value))continue;if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.Max<value)range.Max=value;if(range.Min>value)range.Min=value;}return range;};this.GetDynamicFont=function(dataWidth,distanceWidth,maxSize,minSize,zoom,fontname)//根据宽度自动获取对应字体
3765
3767
  {var pixelTatio=GetDevicePixelRatio();maxSize*=pixelTatio;minSize*=pixelTatio;if(maxSize==minSize)//固定大小
3766
3768
  {var font="".concat(maxSize.toFixed(0),"px ").concat(fontname);return font;}var fontSize=dataWidth+distanceWidth;if(zoom){if(zoom.Type==0){if(zoom.Value>0)fontSize=dataWidth*zoom.Value;}else if(zoom.Type==1){if(zoom.Value>0)fontSize=(dataWidth+distanceWidth)*zoom.Value;}else if(zoom.Type==2){if(IFrameSplitOperator.IsNumber(zoom.Value))fontSize=dataWidth+distanceWidth+2*zoom.Value*pixelTatio;}}if(fontSize<minSize)fontSize=minSize;else if(fontSize>maxSize)fontSize=maxSize;var font="".concat(fontSize.toFixed(0),"px ").concat(fontname);/*
@@ -4493,12 +4495,12 @@ this.newMethod();delete this.newMethod;this.ClassName='ChartScatterPlotV2';//类
4493
4495
  //默认点配置
4494
4496
  this.Color=g_JSChartResource.ChartScatterPlotV2.Color;//点颜色
4495
4497
  this.TextColor=g_JSChartResource.ChartScatterPlotV2.TextColor;this.Radius=g_JSChartResource.ChartScatterPlotV2.Radius;this.Font=g_JSChartResource.ChartScatterPlotV2.Font;//半径
4496
- this.TooltipData=[];this.MapCache=null;//key=date/date-time value={ Data:[] }
4498
+ this.ClipConfig={LeftOffset:0,RightOffset:0};this.TooltipData=[];this.MapCache=null;//key=date/date-time value={ Data:[] }
4497
4499
  this.AryPoint=[];//[{ Value:, Radius:半径(可选), Radius2:固定半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
4498
4500
  // Text:{ Text:显示文字, Color:"rgb(0,30,100)", BaseLine:1, YOffset:5, Align:2 }; }]
4499
4501
  // BaseLine: 0=圆点上面 1=圆点下面 Align: 2=居中 1=左 3=右
4500
4502
  this.GetKValue=ChartData.GetKValue;this.TextHeight=10;this.AryDrawRect=[];this.ReloadResource=function(resource){this.Color=g_JSChartResource.ChartScatterPlotV2.Color;//点颜色
4501
- this.TextColor=g_JSChartResource.ChartScatterPlotV2.TextColor;this.Radius=g_JSChartResource.ChartScatterPlotV2.Radius;this.Font=g_JSChartResource.ChartScatterPlotV2.Font;};this.BuildCacheData=function(){var mapData=new Map();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return;for(var i=0;i<this.AryPoint.length;++i){var item=this.AryPoint[i];var key=this.BuildKey(item);if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Data:[item]});}}};this.Draw=function(){this.TooltipData=[];this.AryDrawRect=[];if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return;if(!this.MapCache||this.MapCache.size<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.DrawScatterPlot();this.AryDrawRect=[];};this.DrawScatterPlot=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var lockRect=this.GetLockRect();if(lockRect){if(bHScreen)chartright=lockRect.Top;else chartright=lockRect.Left;}this.Canvas.save();this.ClipClient(bHScreen);this.Canvas.font=this.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.TextHeight=this.GetFontHeight();for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}if(x>chartright)break;for(var k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];this.DrawItem(kItem,item,x);}}this.Canvas.restore();};this.DrawItem=function(kItem,item,x){var dataWidth=this.ChartFrame.DataWidth;var maxRadius=dataWidth/2;if(!item)return;var price=item.Value;if(IFrameSplitOperator.IsString(item.Value))price=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(price))return;var y=this.GetYFromData(price,false);var radius=this.Radius;if(IFrameSplitOperator.IsNumber(item.Radius2)){radius=item.Radius2;}else{if(IFrameSplitOperator.IsNumber(item.Radius))radius=item.Radius;if(!IFrameSplitOperator.IsNumber(radius))return;if(radius>maxRadius)radius=maxRadius;}this.Canvas.beginPath();this.Canvas.arc(x,y,radius,0,2*Math.PI);var color=this.Color;if(item.Color)color=item.Color;if(color){this.Canvas.fillStyle=color;this.Canvas.fill();}if(item.ColorBorder){this.Canvas.strokeStyle=item.ColorBorder;this.Canvas.stroke();}if(dataWidth>this.TextHeight){this.DrawText(item.Text,x,y,radius);}var itemTooltip={X:x,Y:y,Radius:radius,Data:item};this.TooltipData.push(itemTooltip);};this.DrawText=function(item,x,y,radius){if(!item||!item.Text)return;var bHScreen=this.ChartFrame.IsHScreen===true;if(bHScreen)return;var text=item.Text;var textWidth=this.Canvas.measureText(text).width;var baseLine=1;//1=上 2=下
4503
+ this.TextColor=g_JSChartResource.ChartScatterPlotV2.TextColor;this.Radius=g_JSChartResource.ChartScatterPlotV2.Radius;this.Font=g_JSChartResource.ChartScatterPlotV2.Font;};this.SetOption=function(option){if(!option)return;if(option.Color)this.Color=option.Color;if(IFrameSplitOperator.IsNumber(option.Radius))this.Radius=option.Radius;if(option.TextColor)this.TextColor=option.TextColor;if(option.Font)this.Font=option.Font;if(option.Clip){var subItem=option.Clip;if(IFrameSplitOperator.IsNumber(subItem.LeftOffset))this.ClipConfig.LeftOffset=subItem.LeftOffset;if(IFrameSplitOperator.IsNumber(subItem.RightOffset))this.ClipConfig.RightOffset=subItem.RightOffset;}};this.BuildCacheData=function(){var mapData=new Map();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return;for(var i=0;i<this.AryPoint.length;++i){var item=this.AryPoint[i];var key=this.BuildKey(item);if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Data:[item]});}}};this.Draw=function(){this.TooltipData=[];this.AryDrawRect=[];if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return;if(!this.MapCache||this.MapCache.size<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.DrawScatterPlot();this.AryDrawRect=[];};this.DrawScatterPlot=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var lockRect=this.GetLockRect();if(lockRect){if(bHScreen)chartright=lockRect.Top;else chartright=lockRect.Left;}this.Canvas.save();this.ClipClient(bHScreen,{Clip:this.ClipConfig});this.Canvas.font=this.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.TextHeight=this.GetFontHeight();for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}if(x>chartright)break;for(var k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];this.DrawItem(kItem,item,x);}}this.Canvas.restore();};this.DrawItem=function(kItem,item,x){var dataWidth=this.ChartFrame.DataWidth;var maxRadius=dataWidth/2;if(!item)return;var price=item.Value;if(IFrameSplitOperator.IsString(item.Value))price=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(price))return;var y=this.GetYFromData(price,false);var radius=this.Radius;if(IFrameSplitOperator.IsNumber(item.Radius2)){radius=item.Radius2;}else{if(IFrameSplitOperator.IsNumber(item.Radius))radius=item.Radius;if(!IFrameSplitOperator.IsNumber(radius))return;if(radius>maxRadius)radius=maxRadius;}this.Canvas.beginPath();this.Canvas.arc(x,y,radius,0,2*Math.PI);var color=this.Color;if(item.Color)color=item.Color;if(color){this.Canvas.fillStyle=color;this.Canvas.fill();}if(item.ColorBorder){this.Canvas.strokeStyle=item.ColorBorder;this.Canvas.stroke();}if(dataWidth>this.TextHeight){this.DrawText(item.Text,x,y,radius);}var itemTooltip={X:x,Y:y,Radius:radius,Data:item};this.TooltipData.push(itemTooltip);};this.DrawText=function(item,x,y,radius){if(!item||!item.Text)return;var bHScreen=this.ChartFrame.IsHScreen===true;if(bHScreen)return;var text=item.Text;var textWidth=this.Canvas.measureText(text).width;var baseLine=1;//1=上 2=下
4502
4504
  var align=2;var yOffset=2;var xText=x;if(IFrameSplitOperator.IsNumber(item.YOffset))yOffset=item.YOffset;//Y偏移
4503
4505
  if(IFrameSplitOperator.IsNumber(item.BaseLine))baseLine=item.BaseLine;var yText=y-radius-yOffset;if(baseLine==2)yText=y+radius+this.TextHeight+yOffset;//下
4504
4506
  if(IFrameSplitOperator.IsNumber(item.Align))align=item.Align;//左中右
@@ -13187,7 +13189,14 @@ chart.Texts=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(
13187
13189
  chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;if(varItem.Draw.Config)chart.SetOption(varItem.Draw.Config);chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var chart=new ChartDrawSVG();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.GetKData();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;if(IFrameSplitOperator.IsBool(varItem.Draw.EnalbeDetailNoOverlap))chart.EnalbeDetailNoOverlap=varItem.Draw.EnalbeDetailNoOverlap;if(IFrameSplitOperator.IsBool(varItem.Draw.EnableClick))chart.EnableClick=varItem.Draw.EnableClick;if(varItem.Draw.BuildKeyCallback)chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
13188
13190
  chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;hqChart.ChartPaint.push(chart);};this.CreateStackedBar=function(hqChart,windowIndex,varItem,i){var chart=new ChartStackedBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarColor))chart.BarColor=varItem.Draw.BarColor;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarName))chart.BarName=varItem.Draw.BarName;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsNumber(varItem.Draw.BarType))chart.BarType=varItem.Draw.BarType;hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartStackedBar";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateKLineTable=function(hqChart,windowIndex,varItem,i){var chart=new ChartKLineTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
13189
13191
  chart.AryTableData=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.AryLabel=varItem.Draw.RowName;var config=varItem.Draw.Config;chart.SetOption(config);chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var bShowTitle=false;if(config&&IFrameSplitOperator.IsBool(config.IsShowTitle))bShowTitle=config.IsShowTitle;if(bShowTitle){var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";hqChart.TitlePaint[titleIndex].Data[i]=titleData;}};this.CreateScatterPlot=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;chart.Color=varItem.Draw.Color;chart.Radius=varItem.Draw.Radius;hqChart.ChartPaint.push(chart);};this.CreateScatterPlotV2=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlotV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
13190
- chart.AryPoint=varItem.Draw.DrawData;var config=varItem.Draw.Config;if(config){if(config.Color)chart.Color=config.Color;if(IFrameSplitOperator.IsNumber(config.Radius))chart.Radius=config.Radius;if(config.TextColor)chart.TextColor=config.TextColor;if(config.Font)chart.Font=config.Font;}chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateBaseLineBar=function(hqChart,windowIndex,varItem,i){var chart=new ChartBaseLineBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
13192
+ chart.AryPoint=varItem.Draw.DrawData;var config=varItem.Draw.Config;chart.SetOption(config);//if (config)
13193
+ //{
13194
+ // if (config.Color) chart.Color=config.Color;
13195
+ // if (IFrameSplitOperator.IsNumber(config.Radius)) chart.Radius=config.Radius;
13196
+ // if (config.TextColor) chart.TextColor=config.TextColor;
13197
+ // if (config.Font) chart.Font=config.Font;
13198
+ //}
13199
+ chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateBaseLineBar=function(hqChart,windowIndex,varItem,i){var chart=new ChartBaseLineBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
13191
13200
  chart.AryData=varItem.Draw.DrawData;chart.Style=1;//主图使用独立坐标模式
13192
13201
  var config=varItem.Draw.Config;if(config){if(config.UpColor)chart.UpColor=config.UpColor;if(config.DownColor)chart.DownColor=config.DownColor;if(IFrameSplitOperator.IsNumber(config.DefaultMax))chart.DefaultMax=config.DefaultMax;if(IFrameSplitOperator.IsNumber(config.Style))chart.Style=config.Style;if(config.UpName)chart.UpName=config.UpName;if(config.DownName)chart.DownName=config.DownName;}chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,null,chart.Color);titleData.DataType="ChartBaseLineBar";titleData.Chart=chart;hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateClipColorStick=function(hqChart,windowIndex,varItem,id){var chart=new ChartClipColorStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(varItem.Option&&chart.SetOption)chart.SetOption(varItem.Option);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;if(varItem.IsShowTitle===false){}else{var clrTitle=this.GetDefaultColor(id);if(varItem.Option&&varItem.Option.TitleColor)clrTitle=this.GetColor(varItem.Option.TitleColor);hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);}};this.CreateColorKLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartColorKline();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线
13193
13202
  chart.KLineColor=varItem.Draw.DrawData.KLine;if(varItem.Color)chart.Color=varItem.Color;hqChart.ChartPaint.push(chart);};this.CreateRectangle=function(hqChart,windowIndex,varItem,i){var chart=new ChartRectangle();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Color=[varItem.Draw.DrawData.Color];chart.Rect=varItem.Draw.DrawData.Rect;if(varItem.Color)chart.BorderColor=this.GetColor(varItem.Color);hqChart.ChartPaint.push(chart);};this.CreateScriptOverlayLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartOverlayLine();chart.Canvas=hqChart.Canvas;chart.DrawType=1;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(i);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}if(varItem.IsDotLine)chart.IsDotLine=true;//虚线
@@ -16752,7 +16761,7 @@ if(dayItem.Text){var textWidth=this.Canvas.measureText(dayItem.Text).width;xText
16752
16761
  {yCell=rtCell.Bottom;xCell=left;}++j;}}},{key:"DrawMarkDay",value:function DrawMarkDay(dayItem,markItem,rtCell,yText){var config=this.MarkDayConfig;var radius=config.Dots.Radius;var yOffset=config.Dots.YOffset;var color=config.Dots.Color;if(markItem.Color)color=markItem.Color;if(IFrameSplitOperator.IsNumber(markItem.YOffset))yOffset=markItem.YOffset;if(IFrameSplitOperator.IsNumber(markItem.Radius))radius=markItem.Radius;var x=rtCell.Left+rtCell.Width/2;var y=yText+yOffset;this.Canvas.fillStyle=color;this.Canvas.beginPath();this.Canvas.arc(x,y,radius,0,Math.PI*2);this.Canvas.fill();}},{key:"PtInCell",value:function PtInCell(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect))return null;for(var i=0;i<this.AryCellRect.length;++i){var item=this.AryCellRect[i];var rtCell=item.Rect;if(x>=rtCell.Left&&x<=rtCell.Right&&y>=rtCell.Top&&y<=rtCell.Bottom){var data={Rect:rtCell,Type:item.Type,Data:item.Data};return data;}}return null;}},{key:"OnMouseOn",value:function OnMouseOn(x,y,e){var pixelTatio=GetDevicePixelRatio();var insidePoint={X:x/pixelTatio,Y:y/pixelTatio};var uiElement;if(this.UIElement)uiElement={Left:this.UIElement.getBoundingClientRect().left,Top:this.UIElement.getBoundingClientRect().top};else uiElement={Left:null,Top:null};var bDraw=false;var cell=this.PtInCell(x,y);if(cell){bDraw=false;var selData=this.MoveOnData.Data;if(selData&&cell.Type==selData.Type){if(cell.Type===JSCHART_CALENDAR_BUTTON_ID.DAY_CELL_ID||cell.Type===JSCHART_CALENDAR_BUTTON_ID.MONTH_CELL_ID){if(cell.Data.Date!=selData.Data.Date){this.MoveOnData.Data={Type:cell.Type,Data:cell.Data};bDraw=true;}}}else{this.MoveOnData.Data={Type:cell.Type,Data:cell.Data};bDraw=true;}return{Redraw:bDraw,Cell:cell};}if(this.MoveOnData.Data){this.MoveOnData.Data=null;bDraw=true;}return{Redraw:bDraw,Cell:null};}},{key:"OnMouseDown",value:function OnMouseDown(x,y,e){var cell=this.PtInCell(x,y);if(!cell)return null;var bDraw=false;return{Type:cell.Type,Redraw:bDraw,Data:cell.Data};}},{key:"SetSelectedDay",value:function SetSelectedDay(aryData){this.ArySelectedDay=[];if(IFrameSplitOperator.IsNonEmptyArray(aryData))this.ArySelectedDay=aryData.slice();}}]);}();/********************************************************************************
16753
16762
  * 版本信息输出
16754
16763
  *
16755
- */var HQCHART_VERSION="1.1.15871";function PrintHQChartVersion(){var logo="\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: ".concat(HQCHART_VERSION," \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ");console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
16764
+ */var HQCHART_VERSION="1.1.15873";function PrintHQChartVersion(){var logo="\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: ".concat(HQCHART_VERSION," \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ");console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
16756
16765
  var _default=exports["default"]=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
16757
16766
  // BaseIndex:BaseIndex,
16758
16767
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15872",
3
+ "version": "1.1.15874",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -32008,7 +32008,7 @@ function IChartPainting()
32008
32008
  return this.ChartBorder.GetBorder();
32009
32009
  }
32010
32010
 
32011
- this.ClipClient=function(isHScreen) //裁剪客户端
32011
+ this.ClipClient=function(isHScreen, option) //裁剪客户端
32012
32012
  {
32013
32013
  if (isHScreen==true)
32014
32014
  {
@@ -32023,6 +32023,13 @@ function IChartPainting()
32023
32023
  var right=this.ChartBorder.GetRight();
32024
32024
  var top=this.ChartBorder.GetTopEx()-1;
32025
32025
  var bottom=this.ChartBorder.GetBottomEx();
32026
+
32027
+ if (option && option.Clip)
32028
+ {
32029
+ var item=option.Clip;
32030
+ if (IFrameSplitOperator.IsNumber(item.LeftOffset)) left+=item.LeftOffset; //左侧
32031
+ if (IFrameSplitOperator.IsNumber(item.RightOffset)) right+=item.RightOffset; //右侧
32032
+ }
32026
32033
  }
32027
32034
 
32028
32035
  this.Canvas.beginPath();
@@ -42691,6 +42698,8 @@ function ChartScatterPlotV2()
42691
42698
  this.Radius=g_JSChartResource.ChartScatterPlotV2.Radius;
42692
42699
  this.Font=g_JSChartResource.ChartScatterPlotV2.Font; //半径
42693
42700
 
42701
+ this.ClipConfig={ LeftOffset:0, RightOffset:0 };
42702
+
42694
42703
  this.TooltipData=[];
42695
42704
  this.MapCache=null; //key=date/date-time value={ Data:[] }
42696
42705
  this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Radius2:固定半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
@@ -42709,6 +42718,22 @@ function ChartScatterPlotV2()
42709
42718
  this.Font=g_JSChartResource.ChartScatterPlotV2.Font;
42710
42719
  }
42711
42720
 
42721
+ this.SetOption=function(option)
42722
+ {
42723
+ if (!option) return;
42724
+
42725
+ if (option.Color) this.Color=option.Color;
42726
+ if (IFrameSplitOperator.IsNumber(option.Radius)) this.Radius=option.Radius;
42727
+ if (option.TextColor) this.TextColor=option.TextColor;
42728
+ if (option.Font) this.Font=option.Font;
42729
+ if (option.Clip)
42730
+ {
42731
+ var subItem=option.Clip;
42732
+ if (IFrameSplitOperator.IsNumber(subItem.LeftOffset)) this.ClipConfig.LeftOffset=subItem.LeftOffset;
42733
+ if (IFrameSplitOperator.IsNumber(subItem.RightOffset)) this.ClipConfig.RightOffset=subItem.RightOffset;
42734
+ }
42735
+ }
42736
+
42712
42737
  this.BuildCacheData=function()
42713
42738
  {
42714
42739
  var mapData=new Map();
@@ -42775,7 +42800,7 @@ function ChartScatterPlotV2()
42775
42800
  }
42776
42801
 
42777
42802
  this.Canvas.save();
42778
- this.ClipClient(bHScreen);
42803
+ this.ClipClient(bHScreen, { Clip:this.ClipConfig } );
42779
42804
 
42780
42805
  this.Canvas.font=this.Font;
42781
42806
  this.Canvas.textAlign = "left";
@@ -138515,13 +138540,15 @@ function ScriptIndex(name,script,args,option)
138515
138540
  chart.AryPoint=varItem.Draw.DrawData;
138516
138541
 
138517
138542
  var config=varItem.Draw.Config;
138518
- if (config)
138519
- {
138520
- if (config.Color) chart.Color=config.Color;
138521
- if (IFrameSplitOperator.IsNumber(config.Radius)) chart.Radius=config.Radius;
138522
- if (config.TextColor) chart.TextColor=config.TextColor;
138523
- if (config.Font) chart.Font=config.Font;
138524
- }
138543
+ chart.SetOption(config);
138544
+
138545
+ //if (config)
138546
+ //{
138547
+ // if (config.Color) chart.Color=config.Color;
138548
+ // if (IFrameSplitOperator.IsNumber(config.Radius)) chart.Radius=config.Radius;
138549
+ // if (config.TextColor) chart.TextColor=config.TextColor;
138550
+ // if (config.Font) chart.Font=config.Font;
138551
+ //}
138525
138552
 
138526
138553
  chart.BuildCacheData();
138527
138554
  this.SetChartIndexName(chart);
@@ -177713,7 +177740,7 @@ function ChartScrollText()
177713
177740
 
177714
177741
 
177715
177742
 
177716
- var HQCHART_VERSION="1.1.15871";
177743
+ var HQCHART_VERSION="1.1.15873";
177717
177744
 
177718
177745
  function PrintHQChartVersion()
177719
177746
  {