hqchart 1.1.11276 → 1.1.11279

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.
@@ -3498,7 +3498,7 @@ this.BarPosition=1;//柱子方向 0=左边 1=右边
3498
3498
  this.BarWidthRate=0.3;this.VolFont;this.HQChart;this.IsDestroy=false;this.Data=null;this.MaxVol;this.MaxVolPrice;this.VolLineColor=g_JSChartResource.ChartVolProfileVisibleRange.VolLineColor;this.VolLineFont=g_JSChartResource.ChartVolProfileVisibleRange.VolLineFont;this.VolLineTextColor=g_JSChartResource.ChartVolProfileVisibleRange.VolLineTextColor;//value Area
3499
3499
  this.VAHLineColor=g_JSChartResource.ChartVolProfileVisibleRange.VAHLineColor;this.VAHTextColor=g_JSChartResource.ChartVolProfileVisibleRange.VAHTextColor;this.VALLineColor=g_JSChartResource.ChartVolProfileVisibleRange.VALLineColor;this.VALTextColor=g_JSChartResource.ChartVolProfileVisibleRange.VALTextColor;this.VAFont=g_JSChartResource.ChartVolProfileVisibleRange.VAFont;this.TextConfig=(0,_defineProperty3.default)({Color:g_JSChartResource.ChartVolProfileVisibleRange.Text.Color,Family:g_JSChartResource.ChartVolProfileVisibleRange.Text.Family,FontMaxSize:g_JSChartResource.ChartVolProfileVisibleRange.Text.FontMaxSize,FontMinSize:g_JSChartResource.ChartVolProfileVisibleRange.Text.FontMinSize},'Color',g_JSChartResource.ChartVolProfileVisibleRange.Text.Color);this.BarColor=[g_JSChartResource.ChartVolProfileVisibleRange.UpVolColor,g_JSChartResource.ChartVolProfileVisibleRange.DownVolColor,g_JSChartResource.ChartVolProfileVisibleRange.AreaUpColor,g_JSChartResource.ChartVolProfileVisibleRange.AreaDonwColor];this.MaxVolLine;this.OnDestroy=function(){this.IsDestroy=true;};this.SetOption=function(option){if(!option)return;if(IFrameSplitOperator.IsBool(option.IsShowText))this.IsShowText=option.IsShowText;if(IFrameSplitOperator.IsNumber(option.VolType))this.IsShowText=option.VolType;if(IFrameSplitOperator.IsNumber(option.BarPosition))this.BarPosition=option.BarPosition;if(IFrameSplitOperator.IsNumber(option.BarWidthRate))this.IsShowText=option.BarWidthRate;};this.PtInChart=function(x,y){if(this.MaxVolLine){if(x>=this.MaxVolLine.Start.X&&x<=this.MaxVolLine.End.X&&y>=this.MaxVolLine.Start.Y-5&&y<this.MaxVolLine.Start.Y+5)return{Identify:this.Identify,Chart:this};}return null;};this.SetSelectedStatus=function(status){if(status==0)this.IsDrawFirst=true;else this.IsDrawFirst=false;};this.DrawSelectedStatus=function(){var radius=this.SelectedRadius;var pixelRatio=GetDevicePixelRatio();this.Canvas.save();if(this.MaxVolLine){this.Canvas.lineWidth=this.SelectedLineWidth*pixelRatio;this.Canvas.strokeStyle=this.SelectedLineColor;if(this.SelectedBGColor)this.Canvas.fillStyle=this.SelectedBGColor;var space=(this.MaxVolLine.End.X-this.MaxVolLine.Start.X)/6;var aryPoint=[];for(var x=this.MaxVolLine.Start.X+space;x<this.MaxVolLine.End.X;x+=space){aryPoint.push({X:x,Y:this.MaxVolLine.Start.Y});}for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];this.Canvas.beginPath();this.Canvas.arc(item.X,item.Y,radius,0,360,false);this.Canvas.closePath();if(this.SelectedBGColor)this.Canvas.fill();this.Canvas.stroke();}}this.Canvas.restore();};this.Draw=function(){this.VolFont=null;this.MaxVolLine=null;this.IsHScreen=this.ChartFrame.IsHScreen===true;if(this.ChartFrame.IsMinSize)return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(!this.Data||!this.Data.Data)return;this.Canvas.save();this.DrawVolBar();this.Canvas.restore();};this.DrawPriceLine=function(){var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var pixelTatio=GetDevicePixelRatio();var aryPrice=[];var maxVolPrice=this.MaxVolPrice;if(IFrameSplitOperator.IsNumber(this.Data.MaxVolPrice))maxVolPrice=this.Data.MaxVolPrice;if(maxVolPrice>=this.ChartFrame.HorizontalMin&&maxVolPrice<=this.ChartFrame.HorizontalMax)aryPrice.push({Price:maxVolPrice,Font:this.VolLineFont,LineColor:this.VolLineColor,LineWidth:2,TextColor:this.VolLineTextColor,Type:1});if(IFrameSplitOperator.IsNumber(this.Data.VAHPrice)&&this.Data.VAHPrice>=this.ChartFrame.HorizontalMin&&this.Data.VAHPrice<=this.ChartFrame.HorizontalMax)aryPrice.push({Price:this.Data.VAHPrice,Font:this.VAFont,LineColor:this.VAHLineColor,LineWidth:2,TextColor:this.VAHTextColor,Type:2});if(IFrameSplitOperator.IsNumber(this.Data.VALPrice)&&this.Data.VALPrice>=this.ChartFrame.HorizontalMin&&this.Data.VALPrice<=this.ChartFrame.HorizontalMax)aryPrice.push({Price:this.Data.VALPrice,Font:this.VAFont,LineColor:this.VALLineColor,LineWidth:2,TextColor:this.VALTextColor,Type:3});for(var i=0;i<aryPrice.length;++i){var item=aryPrice[i];var yLine=ToFixedPoint2(item.LineWidth,this.ChartFrame.GetYFromData(item.Price,false));this.Canvas.lineWidth=item.LineWidth;this.Canvas.strokeStyle=item.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(left,yLine);this.Canvas.lineTo(right,yLine);this.Canvas.stroke();if(item.Type==1)this.MaxVolLine={Start:{X:left,Y:yLine},End:{X:right,Y:yLine}};if(this.ChartBorder.Right>10)//刻度文字
3500
3500
  {var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
3501
- var text=item.Price.toFixed(defaultfloatPrecision);this.Canvas.font=item.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";var fontHeight=this.GetFontHeight();var textWidth=this.Canvas.measureText(text).width+2*pixelTatio;this.Canvas.fillStyle=item.LineColor;this.Canvas.fillRect(right,yLine-fontHeight/2,textWidth,fontHeight);this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(text,right+1*pixelTatio,yLine);}}};this.DrawVolBar=function(){var cellHeight=this.GetPriceYOffset(this.Data.PriceOffset);var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=this.ChartFrame.GetYFromData(this.Data.MaxPrice)-cellHeight/2;var bottom=this.ChartFrame.GetYFromData(this.Data.MinPrice)+cellHeight/2;var width=right-left;var height=bottom-top;var maxBarWidth=width*this.BarWidthRate;if(this.IsShowText){this.VolFont=this.GetDynamicVolTextFont(cellHeight,maxBarWidth);if(this.VolFont)this.Canvas.font=this.VolFont;}for(var i=0,j=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(item.Price<this.ChartFrame.HorizontalMin||item.Price>this.ChartFrame.HorizontalMax)continue;this.DrawVolBarItem(item,left,right,maxBarWidth,cellHeight);}this.DrawPriceLine();};this.DrawVolBarItem=function(item,left,right,maxBarWidth,cellHeight){var barLeft=left;var barRight=right;var barTop=this.ChartFrame.GetYFromData(item.Price)-cellHeight/2;if(this.VolType==1){if(!item.TotalVol)return;if(!IFrameSplitOperator.IsNumber(item.TotalVol.Value))return;var barWidth=item.TotalVol.Value*maxBarWidth/this.MaxVol;var color;if(IFrameSplitOperator.IsNumber(item.TotalVol.ColorID))color=this.BarColor[item.TotalVol.ColorID];else if(item.TotalVol.Color)color=item.TotalVol.Color;this.Canvas.fillStyle=color;if(this.BarPosition==1){this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));}else{this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));}if(this.IsShowText&&this.VolFont){var text=IFrameSplitOperator.FormatVolString(item.TotalVol.Value,this.HQChart.LanguageID);this.Canvas.textBaseline='middle';this.Canvas.fillStyle=this.TextConfig.Color;if(this.BarPosition==1){this.Canvas.textAlign='right';this.Canvas.fillText(text,right-5,barTop+cellHeight/2);}else{this.Canvas.textAlign='left';this.Canvas.fillText(text,left+5,barTop+cellHeight/2);}}}else{var text="";for(var i=0;i<item.Vol.length;++i){var volItem=item.Vol[i];if(!IFrameSplitOperator.IsNumber(volItem.Value))continue;var color;if(IFrameSplitOperator.IsNumber(volItem.ColorID))color=this.BarColor[volItem.ColorID];else if(volItem.Color)color=volItem.Color;if(!color)continue;var barWidth=volItem.Value*maxBarWidth/this.MaxVol;this.Canvas.fillStyle=color;if(this.BarPosition==1){this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));barRight-=barWidth;}else{this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));barLeft+=barWidth;}var volText=IFrameSplitOperator.FormatVolString(volItem.Value,this.HQChart.LanguageID);if(text.length>0)text+="x";text+=volText;}if(this.IsShowText&&this.VolFont){this.Canvas.textBaseline='middle';this.Canvas.fillStyle=this.TextConfig.Color;if(this.BarPosition==1){this.Canvas.textAlign='right';this.Canvas.fillText(text,right-5,barTop+cellHeight/2);}else{this.Canvas.textAlign='left';this.Canvas.fillText(text,left+5,barTop+cellHeight/2);}}}};this.GetPriceYOffset=function(value){var frame=this.ChartFrame;var y=frame.ChartBorder.GetHeightEx()*value/(frame.HorizontalMax-frame.HorizontalMin);return y;};this.GetDynamicVolTextFont=function(cellHeight,width,fontOption){var fontSize=parseInt(cellHeight)-2;if(cellHeight<5)fontSize=parseInt(cellHeight);//高度太小了就不要上下间距了
3501
+ var text=item.Price.toFixed(defaultfloatPrecision);this.Canvas.font=item.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";var fontHeight=this.GetFontHeight();var textWidth=this.Canvas.measureText(text).width+2*pixelTatio;this.Canvas.fillStyle=item.LineColor;this.Canvas.fillRect(right,yLine-fontHeight/2,textWidth,fontHeight);this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(text,right+1*pixelTatio,yLine);}}};this.DrawVolBar=function(){var cellHeight=this.GetPriceYOffset(this.Data.PriceOffset);var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=this.ChartFrame.GetYFromData(this.Data.MaxPrice)-cellHeight/2;var bottom=this.ChartFrame.GetYFromData(this.Data.MinPrice)+cellHeight/2;var width=right-left;var height=bottom-top;var maxBarWidth=width*this.BarWidthRate;if(this.IsShowText){this.VolFont=this.GetDynamicVolTextFont(cellHeight,maxBarWidth);if(this.VolFont)this.Canvas.font=this.VolFont;}for(var i=0,j=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(item.Price<this.ChartFrame.HorizontalMin||item.Price>this.ChartFrame.HorizontalMax)continue;this.DrawVolBarItem(item,left,right,maxBarWidth,cellHeight);}this.DrawPriceLine();};this.DrawVolBarItem=function(item,left,right,maxBarWidth,cellHeight){var barLeft=left;var barRight=right;var barTop=this.ChartFrame.GetYFromData(item.Price)-cellHeight/2;var barHeight=cellHeight-1;if(barHeight<1)barHeight=1;if(this.VolType==1){if(!item.TotalVol)return;if(!IFrameSplitOperator.IsNumber(item.TotalVol.Value))return;var barWidth=item.TotalVol.Value*maxBarWidth/this.MaxVol;var color;if(IFrameSplitOperator.IsNumber(item.TotalVol.ColorID))color=this.BarColor[item.TotalVol.ColorID];else if(item.TotalVol.Color)color=item.TotalVol.Color;this.Canvas.fillStyle=color;if(this.BarPosition==1){this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));}else{this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));}if(this.IsShowText&&this.VolFont){var text=IFrameSplitOperator.FormatVolString(item.TotalVol.Value,this.HQChart.LanguageID);this.Canvas.textBaseline='middle';this.Canvas.fillStyle=this.TextConfig.Color;if(this.BarPosition==1){this.Canvas.textAlign='right';this.Canvas.fillText(text,right-5,barTop+cellHeight/2);}else{this.Canvas.textAlign='left';this.Canvas.fillText(text,left+5,barTop+cellHeight/2);}}}else{var text="";for(var i=0;i<item.Vol.length;++i){var volItem=item.Vol[i];if(!IFrameSplitOperator.IsNumber(volItem.Value))continue;var color;if(IFrameSplitOperator.IsNumber(volItem.ColorID))color=this.BarColor[volItem.ColorID];else if(volItem.Color)color=volItem.Color;if(!color)continue;var barWidth=volItem.Value*maxBarWidth/this.MaxVol;this.Canvas.fillStyle=color;if(this.BarPosition==1){this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));barRight-=barWidth;}else{this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));barLeft+=barWidth;}var volText=IFrameSplitOperator.FormatVolString(volItem.Value,this.HQChart.LanguageID);if(text.length>0)text+="x";text+=volText;}if(this.IsShowText&&this.VolFont){this.Canvas.textBaseline='middle';this.Canvas.fillStyle=this.TextConfig.Color;if(this.BarPosition==1){this.Canvas.textAlign='right';this.Canvas.fillText(text,right-5,barTop+cellHeight/2);}else{this.Canvas.textAlign='left';this.Canvas.fillText(text,left+5,barTop+cellHeight/2);}}}};this.GetPriceYOffset=function(value){var frame=this.ChartFrame;var y=frame.ChartBorder.GetHeightEx()*value/(frame.HorizontalMax-frame.HorizontalMin);return y;};this.GetDynamicVolTextFont=function(cellHeight,width,fontOption){var fontSize=parseInt(cellHeight)-2;if(cellHeight<5)fontSize=parseInt(cellHeight);//高度太小了就不要上下间距了
3502
3502
  if(fontSize>this.TextConfig.FontMaxSize)fontSize=this.TextConfig.FontMaxSize;else if(fontSize<=0)fontSize=1;if(fontSize<this.TextConfig.FontMinSize)return null;var font=this.FormatFontString(fontSize,this.TextConfig.Family,fontOption);return font;};this.FormatFontString=function(fontSize,family,option){var font;if(!option){font=fontSize+'px '+family;}else{if(option.Weight)font=option.Weight+' '+fontSize+'px '+family;}return font;};this.GetMaxMin=function(){var range={Min:null,Max:null};return range;};}//堆积柱状图
3503
3503
  function ChartStackedBar(){this.newMethod=IChartPainting;//派生
3504
3504
  this.newMethod();delete this.newMethod;this.ClassName="ChartStackedBar";this.Data;//{ Data:[ [bar1, bar2], [bar1,bar2 ] ] };
@@ -4722,7 +4722,7 @@ if(this.Status==10){if(this.DataStatus==0)this.DrawLineBorder(ptStart,ptEnd);}el
4722
4722
  this.Canvas.restore();};this.MainDraw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;if(this.DataStatus!=1)return;if(this.Status!=10)return;this.ClipFrame();var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});this.DrawVolBar();this.Canvas.restore();};this.DrawLineBorder=function(ptStart,ptEnd){this.Canvas.strokeStyle=this.LineColor;var top=this.ChartBorder.GetTopEx();var bottom=this.ChartBorder.GetBottomEx();this.Canvas.beginPath();this.Canvas.moveTo(ptStart.X,ptStart.Y);this.Canvas.lineTo(ptEnd.X,ptEnd.Y);this.Canvas.moveTo(ptStart.X,top);this.Canvas.lineTo(ptStart.X,bottom);this.Canvas.moveTo(ptEnd.X,top);this.Canvas.lineTo(ptEnd.X,bottom);this.Canvas.stroke();};this.DrawVolBar=function(){var start=this.Value[0],end=this.Value[1];if(start.XValue>end.XValue){start=this.Value[1];end=this.Value[0];}var dataOffset=this.GetKDataOffset();var cellHeight=this.GetPriceYOffset(this.Data.PriceOffset);var left=this.Frame.GetXFromIndex(start.XValue-dataOffset,false);var right=this.Frame.GetXFromIndex(end.XValue-dataOffset,false);var top=this.Frame.GetYFromData(this.Data.MaxPrice)-cellHeight/2;var bottom=this.Frame.GetYFromData(this.Data.MinPrice)+cellHeight/2;var width=right-left;var height=bottom-top;var maxBarWidth=width*this.BarWidthRate;this.Canvas.fillStyle=this.BGColor;//JSConsole.Chart.Log('[ChartDrawVolProfile::DrawVolBar] BGColor ', this.BGColor);
4723
4723
  this.Canvas.fillRect(left,top,width,height);//背景
4724
4724
  if(this.MaxVolPrice>=this.Frame.HorizontalMin&&this.MaxVolPrice<=this.Frame.HorizontalMax){var lineWidth=2;var yLine=ToFixedPoint2(lineWidth,this.Frame.GetYFromData(this.MaxVolPrice,false));this.Canvas.lineWidth=lineWidth;this.Canvas.strokeStyle=this.VolLineColor;this.Canvas.beginPath();this.Canvas.moveTo(left,yLine);this.Canvas.lineTo(right,yLine);this.Canvas.stroke();var linePoint={Start:{X:left,Y:yLine},End:{X:right,Y:yLine}};this.LinePoint.push(linePoint);}if(this.IsShowText){this.VolFont=this.GetDynamicVolTextFont(cellHeight,maxBarWidth);if(this.VolFont)this.Canvas.font=this.VolFont;}//this.Canvas.lineWidth=1;
4725
- for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(item.Price<this.Frame.HorizontalMin||item.Price>this.Frame.HorizontalMax)continue;this.DrawVolBarItem(item,left,right,maxBarWidth,cellHeight);}};this.DrawVolBarItem=function(item,left,right,maxBarWidth,cellHeight){var barLeft=left;var barRight=right;var barTop=this.Frame.GetYFromData(item.Price)-cellHeight/2;if(this.VolType==1){if(!item.TotalVol)return;if(!IFrameSplitOperator.IsNumber(item.TotalVol.Value))return;var barWidth=item.TotalVol.Value*maxBarWidth/this.MaxVol;var color;if(IFrameSplitOperator.IsNumber(item.TotalVol.ColorID))color=this.BarColor[item.TotalVol.ColorID];else if(item.TotalVol.Color)color=item.TotalVol.Color;this.Canvas.fillStyle=color;if(this.BarPosition==1){this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));}else{this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));}if(this.IsShowText&&this.VolFont){var text=IFrameSplitOperator.FormatVolString(item.TotalVol.Value,this.HQChart.LanguageID);this.Canvas.textBaseline='middle';this.Canvas.fillStyle=this.TextConfig.Color;if(this.BarPosition==1){this.Canvas.textAlign='right';this.Canvas.fillText(text,right-5,barTop+cellHeight/2);}else{this.Canvas.textAlign='left';this.Canvas.fillText(text,left+5,barTop+cellHeight/2);}}}else{var text="";for(var i=0;i<item.Vol.length;++i){var volItem=item.Vol[i];if(!IFrameSplitOperator.IsNumber(volItem.Value))continue;var color;if(IFrameSplitOperator.IsNumber(volItem.ColorID))color=this.BarColor[volItem.ColorID];else if(volItem.Color)color=volItem.Color;if(!color)continue;var barWidth=volItem.Value*maxBarWidth/this.MaxVol;this.Canvas.fillStyle=color;if(this.BarPosition==1){this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));barRight-=barWidth;}else{this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));barLeft+=barWidth;}var volText=IFrameSplitOperator.FormatVolString(volItem.Value,this.HQChart.LanguageID);if(text.length>0)text+="x";text+=volText;}if(this.IsShowText&&this.VolFont){this.Canvas.textBaseline='middle';this.Canvas.fillStyle=this.TextConfig.Color;if(this.BarPosition==1){this.Canvas.textAlign='right';this.Canvas.fillText(text,right-5,barTop+cellHeight/2);}else{this.Canvas.textAlign='left';this.Canvas.fillText(text,left+5,barTop+cellHeight/2);}}}};this.GetKDataOffset=function(){var kData=this.HQChart.ChartPaint[0].Data;return kData.DataOffset;};this.GetPriceYOffset=function(value){var frame=this.Frame;var y=frame.ChartBorder.GetHeightEx()*value/(frame.HorizontalMax-frame.HorizontalMin);return y;};this.GetDynamicVolTextFont=function(cellHeight,width,fontOption){var fontSize=parseInt(cellHeight)-2;if(cellHeight<5)fontSize=parseInt(cellHeight);//高度太小了就不要上下间距了
4725
+ for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(item.Price<this.Frame.HorizontalMin||item.Price>this.Frame.HorizontalMax)continue;this.DrawVolBarItem(item,left,right,maxBarWidth,cellHeight);}};this.DrawVolBarItem=function(item,left,right,maxBarWidth,cellHeight){var barLeft=left;var barRight=right;var barTop=this.Frame.GetYFromData(item.Price)-cellHeight/2;var barHeight=cellHeight-1;if(barHeight<1)barHeight=1;if(this.VolType==1){if(!item.TotalVol)return;if(!IFrameSplitOperator.IsNumber(item.TotalVol.Value))return;var barWidth=item.TotalVol.Value*maxBarWidth/this.MaxVol;var color;if(IFrameSplitOperator.IsNumber(item.TotalVol.ColorID))color=this.BarColor[item.TotalVol.ColorID];else if(item.TotalVol.Color)color=item.TotalVol.Color;this.Canvas.fillStyle=color;if(this.BarPosition==1){this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));}else{this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));}if(this.IsShowText&&this.VolFont){var text=IFrameSplitOperator.FormatVolString(item.TotalVol.Value,this.HQChart.LanguageID);this.Canvas.textBaseline='middle';this.Canvas.fillStyle=this.TextConfig.Color;if(this.BarPosition==1){this.Canvas.textAlign='right';this.Canvas.fillText(text,right-5,barTop+cellHeight/2);}else{this.Canvas.textAlign='left';this.Canvas.fillText(text,left+5,barTop+cellHeight/2);}}}else{var text="";for(var i=0;i<item.Vol.length;++i){var volItem=item.Vol[i];if(!IFrameSplitOperator.IsNumber(volItem.Value))continue;var color;if(IFrameSplitOperator.IsNumber(volItem.ColorID))color=this.BarColor[volItem.ColorID];else if(volItem.Color)color=volItem.Color;if(!color)continue;var barWidth=volItem.Value*maxBarWidth/this.MaxVol;this.Canvas.fillStyle=color;if(this.BarPosition==1){this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));barRight-=barWidth;}else{this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));barLeft+=barWidth;}var volText=IFrameSplitOperator.FormatVolString(volItem.Value,this.HQChart.LanguageID);if(text.length>0)text+="x";text+=volText;}if(this.IsShowText&&this.VolFont){this.Canvas.textBaseline='middle';this.Canvas.fillStyle=this.TextConfig.Color;if(this.BarPosition==1){this.Canvas.textAlign='right';this.Canvas.fillText(text,right-5,barTop+cellHeight/2);}else{this.Canvas.textAlign='left';this.Canvas.fillText(text,left+5,barTop+cellHeight/2);}}}};this.GetKDataOffset=function(){var kData=this.HQChart.ChartPaint[0].Data;return kData.DataOffset;};this.GetPriceYOffset=function(value){var frame=this.Frame;var y=frame.ChartBorder.GetHeightEx()*value/(frame.HorizontalMax-frame.HorizontalMin);return y;};this.GetDynamicVolTextFont=function(cellHeight,width,fontOption){var fontSize=parseInt(cellHeight)-2;if(cellHeight<5)fontSize=parseInt(cellHeight);//高度太小了就不要上下间距了
4726
4726
  if(fontSize>this.TextConfig.FontMaxSize)fontSize=this.TextConfig.FontMaxSize;else if(fontSize<=0)fontSize=1;if(fontSize<this.TextConfig.FontMinSize)return null;var font=this.FormatFontString(fontSize,this.TextConfig.Family,fontOption);return font;};this.FormatFontString=function(fontSize,family,option){var font;if(!option){font=fontSize+'px '+family;}else{if(option.Weight)font=option.Weight+' '+fontSize+'px '+family;}return font;};}function ChartDrawStorage(){this.DrawData=new _map2.default();//画图工具数据 key=symbol-Period, value=Map() Key:Guid, Value:{Guid, Symbol, Period, ClassName, Value}
4727
4727
  this.StorageKey;this.GetEventCallback;//事件回调
4728
4728
  this.Load=function(key)//从本地读取画图工具
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.11276",
5
+ "version": "1.1.11279",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -33449,6 +33449,8 @@ function ChartVolProfileVisibleRange()
33449
33449
  var barLeft=left;
33450
33450
  var barRight=right;
33451
33451
  var barTop=this.ChartFrame.GetYFromData(item.Price)-cellHeight/2;
33452
+ var barHeight=cellHeight-1;
33453
+ if (barHeight<1) barHeight=1;
33452
33454
 
33453
33455
  if (this.VolType==1)
33454
33456
  {
@@ -33463,11 +33465,11 @@ function ChartVolProfileVisibleRange()
33463
33465
  this.Canvas.fillStyle=color;
33464
33466
  if (this.BarPosition==1)
33465
33467
  {
33466
- this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));
33468
+ this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));
33467
33469
  }
33468
33470
  else
33469
33471
  {
33470
- this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));
33472
+ this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));
33471
33473
  }
33472
33474
 
33473
33475
  if (this.IsShowText && this.VolFont)
@@ -33505,15 +33507,14 @@ function ChartVolProfileVisibleRange()
33505
33507
 
33506
33508
  var barWidth=volItem.Value*maxBarWidth/this.MaxVol;
33507
33509
  this.Canvas.fillStyle=color;
33508
-
33509
33510
  if (this.BarPosition==1)
33510
33511
  {
33511
- this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));
33512
+ this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));
33512
33513
  barRight-=barWidth;
33513
33514
  }
33514
33515
  else
33515
33516
  {
33516
- this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));
33517
+ this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));
33517
33518
  barLeft+=barWidth;
33518
33519
  }
33519
33520
 
@@ -50590,6 +50591,8 @@ function ChartDrawVolProfile()
50590
50591
  var barLeft=left;
50591
50592
  var barRight=right;
50592
50593
  var barTop=this.Frame.GetYFromData(item.Price)-cellHeight/2;
50594
+ var barHeight=cellHeight-1;
50595
+ if (barHeight<1) barHeight=1;
50593
50596
 
50594
50597
  if (this.VolType==1)
50595
50598
  {
@@ -50604,11 +50607,11 @@ function ChartDrawVolProfile()
50604
50607
  this.Canvas.fillStyle=color;
50605
50608
  if (this.BarPosition==1)
50606
50609
  {
50607
- this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));
50610
+ this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));
50608
50611
  }
50609
50612
  else
50610
50613
  {
50611
- this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));
50614
+ this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));
50612
50615
  }
50613
50616
 
50614
50617
  if (this.IsShowText && this.VolFont)
@@ -50649,12 +50652,12 @@ function ChartDrawVolProfile()
50649
50652
 
50650
50653
  if (this.BarPosition==1)
50651
50654
  {
50652
- this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));
50655
+ this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));
50653
50656
  barRight-=barWidth;
50654
50657
  }
50655
50658
  else
50656
50659
  {
50657
- this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));
50660
+ this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));
50658
50661
  barLeft+=barWidth;
50659
50662
  }
50660
50663
 
@@ -33493,6 +33493,8 @@ function ChartVolProfileVisibleRange()
33493
33493
  var barLeft=left;
33494
33494
  var barRight=right;
33495
33495
  var barTop=this.ChartFrame.GetYFromData(item.Price)-cellHeight/2;
33496
+ var barHeight=cellHeight-1;
33497
+ if (barHeight<1) barHeight=1;
33496
33498
 
33497
33499
  if (this.VolType==1)
33498
33500
  {
@@ -33507,11 +33509,11 @@ function ChartVolProfileVisibleRange()
33507
33509
  this.Canvas.fillStyle=color;
33508
33510
  if (this.BarPosition==1)
33509
33511
  {
33510
- this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));
33512
+ this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));
33511
33513
  }
33512
33514
  else
33513
33515
  {
33514
- this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));
33516
+ this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));
33515
33517
  }
33516
33518
 
33517
33519
  if (this.IsShowText && this.VolFont)
@@ -33549,15 +33551,14 @@ function ChartVolProfileVisibleRange()
33549
33551
 
33550
33552
  var barWidth=volItem.Value*maxBarWidth/this.MaxVol;
33551
33553
  this.Canvas.fillStyle=color;
33552
-
33553
33554
  if (this.BarPosition==1)
33554
33555
  {
33555
- this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));
33556
+ this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));
33556
33557
  barRight-=barWidth;
33557
33558
  }
33558
33559
  else
33559
33560
  {
33560
- this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));
33561
+ this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));
33561
33562
  barLeft+=barWidth;
33562
33563
  }
33563
33564
 
@@ -50634,6 +50635,8 @@ function ChartDrawVolProfile()
50634
50635
  var barLeft=left;
50635
50636
  var barRight=right;
50636
50637
  var barTop=this.Frame.GetYFromData(item.Price)-cellHeight/2;
50638
+ var barHeight=cellHeight-1;
50639
+ if (barHeight<1) barHeight=1;
50637
50640
 
50638
50641
  if (this.VolType==1)
50639
50642
  {
@@ -50648,11 +50651,11 @@ function ChartDrawVolProfile()
50648
50651
  this.Canvas.fillStyle=color;
50649
50652
  if (this.BarPosition==1)
50650
50653
  {
50651
- this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));
50654
+ this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));
50652
50655
  }
50653
50656
  else
50654
50657
  {
50655
- this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));
50658
+ this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));
50656
50659
  }
50657
50660
 
50658
50661
  if (this.IsShowText && this.VolFont)
@@ -50693,12 +50696,12 @@ function ChartDrawVolProfile()
50693
50696
 
50694
50697
  if (this.BarPosition==1)
50695
50698
  {
50696
- this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(cellHeight-1));
50699
+ this.Canvas.fillRect(barRight,ToFixedRect(barTop),-barWidth,ToFixedRect(barHeight));
50697
50700
  barRight-=barWidth;
50698
50701
  }
50699
50702
  else
50700
50703
  {
50701
- this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(cellHeight-1));
50704
+ this.Canvas.fillRect(barLeft,ToFixedRect(barTop),barWidth,ToFixedRect(barHeight));
50702
50705
  barLeft+=barWidth;
50703
50706
  }
50704
50707