hqchart 1.1.14446 → 1.1.14450

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.
@@ -4370,18 +4370,21 @@ this.Price;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)retur
4370
4370
  function ChartMultiBar(){this.newMethod=IChartPainting;//派生
4371
4371
  this.newMethod();delete this.newMethod;this.ClassName="ChartMultiBar";this.Bars=[];// [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , Type: 0 实心 1 空心 }, ]
4372
4372
  this.IsHScreen=false;this.MapCache=null;//key=date/date-time value={ Data:[] }
4373
- this.GetKValue=ChartData.GetKValue;this.GetItem=function(kItem){if(!this.MapCache||this.MapCache.size<=0)return null;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))return null;return this.MapCache.get(key);};this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.Bars))return;for(var i=0;i<this.Bars.length;++i){var groupItem=this.Bars[i];if(!groupItem||!IFrameSplitOperator.IsNonEmptyArray(groupItem.Point))continue;var clrConfig={Color:groupItem.Color,Width:null,Name:groupItem.Name,Type:0};if(IFrameSplitOperator.IsNumber(groupItem.Width))clrConfig.Width=groupItem.Width;if(IFrameSplitOperator.IsNumber(groupItem.Type))clrConfig.Type=groupItem.Type;for(var j=0;j<groupItem.Point.length;++j){var point=groupItem.Point[j];var key=this.BuildKey(point);var item={Data:point,ColorConfig:clrConfig};if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Data:[item]});}}}};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;//k线数据
4373
+ this.GetKValue=ChartData.GetKValue;this.GetItem=function(kItem){if(!this.MapCache||this.MapCache.size<=0)return null;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))return null;return this.MapCache.get(key);};this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.Bars))return;for(var i=0;i<this.Bars.length;++i){var groupItem=this.Bars[i];if(!groupItem||!IFrameSplitOperator.IsNonEmptyArray(groupItem.Point))continue;var clrConfig={Color:groupItem.Color,BGColor:null,Width:null,Name:groupItem.Name,Type:0};if(IFrameSplitOperator.IsNumber(groupItem.Width))clrConfig.Width=groupItem.Width;if(IFrameSplitOperator.IsNumber(groupItem.Type))clrConfig.Type=groupItem.Type;if(groupItem.BorderColor)clrConfig.BorderColor=groupItem.BorderColor;for(var j=0;j<groupItem.Point.length;++j){var point=groupItem.Point[j];var key=this.BuildKey(point);var item={Data:point,ColorConfig:clrConfig};if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Data:[item]});}}}};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;//k线数据
4374
4374
  if(!IFrameSplitOperator.IsNonEmptyArray(this.Bars))return;if(!this.MapCache||this.MapCache.size<=0)return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var xPointCount=this.ChartFrame.XPointCount;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var isMinute=this.IsMinuteFrame();var border=this.GetBorder();if(this.IsHScreen){var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;var chartLeft=border.TopEx;}else{var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var chartLeft=border.LeftEx;}//计算所有柱子位置
4375
- var mapBar=new _map2.default();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];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;}this.CalculateItem(mapItem,kItem,x,mapBar);}if(mapBar.size<=0)return;this.Canvas.save();this.ClipClient(this.IsHScreen);this.DrawAllBar(mapBar);this.Canvas.restore();};this.CalculateItem=function(groupItem,kItem,x,mapBar){for(var i=0;i<groupItem.Data.length;++i){var item=groupItem.Data[i];var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=this.GetKValue(kItem,item.Data.Value);if(!IFrameSplitOperator.IsNumber(value))continue;var value2=item.Data.Value2;if(IFrameSplitOperator.IsString(item.Data.Value2))value2=this.GetKValue(kItem,item.Data.Value2);if(!IFrameSplitOperator.IsNumber(value2))continue;var y=this.ChartFrame.GetYFromData(value,false);var y2=this.ChartFrame.GetYFromData(value2,false);var strConfig=(0,_stringify2.default)(item.ColorConfig);if(!mapBar.has(strConfig))mapBar.set(strConfig,{AryBar:[]});var mapItem=mapBar.get(strConfig);mapItem.AryBar.push({X:x,Y:y,Y2:y2,Data:item});}};this.DrawAllBar=function(mapBar){var pixelRatio=GetDevicePixelRatio();var dataWidth=this.ChartFrame.DataWidth;var _iteratorNormalCompletion7=true;var _didIteratorError7=false;var _iteratorError7=undefined;try{for(var _iterator7=(0,_getIterator3.default)(mapBar),_step7;!(_iteratorNormalCompletion7=(_step7=_iterator7.next()).done);_iteratorNormalCompletion7=true){var mapItem=_step7.value;var aryBar=mapItem[1].AryBar;if(!IFrameSplitOperator.IsNonEmptyArray(aryBar))continue;var config=null;var path=new Path2D();var count=0;var drawType=-1;//1=直线 2=实心 3=空心
4375
+ var mapBar=new _map2.default();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];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;}this.CalculateItem(mapItem,kItem,x,mapBar);}if(mapBar.size<=0)return;this.Canvas.save();this.ClipClient(this.IsHScreen);this.DrawAllBar(mapBar);this.Canvas.restore();};this.CalculateItem=function(groupItem,kItem,x,mapBar){for(var i=0;i<groupItem.Data.length;++i){var item=groupItem.Data[i];var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=this.GetKValue(kItem,item.Data.Value);if(!IFrameSplitOperator.IsNumber(value))continue;var value2=item.Data.Value2;if(IFrameSplitOperator.IsString(item.Data.Value2))value2=this.GetKValue(kItem,item.Data.Value2);if(!IFrameSplitOperator.IsNumber(value2))continue;var y=this.ChartFrame.GetYFromData(value,false);var y2=this.ChartFrame.GetYFromData(value2,false);var strConfig=(0,_stringify2.default)(item.ColorConfig);if(!mapBar.has(strConfig))mapBar.set(strConfig,{AryBar:[]});var mapItem=mapBar.get(strConfig);mapItem.AryBar.push({X:x,Y:y,Y2:y2,Data:item});}};this.DrawAllBar=function(mapBar){var pixelRatio=GetDevicePixelRatio();var dataWidth=this.ChartFrame.DataWidth;var _iteratorNormalCompletion7=true;var _didIteratorError7=false;var _iteratorError7=undefined;try{for(var _iterator7=(0,_getIterator3.default)(mapBar),_step7;!(_iteratorNormalCompletion7=(_step7=_iterator7.next()).done);_iteratorNormalCompletion7=true){var mapItem=_step7.value;var aryBar=mapItem[1].AryBar;if(!IFrameSplitOperator.IsNonEmptyArray(aryBar))continue;var config=null;var path=new Path2D();var pathBG=new Path2D();var count=0;var drawType=-1;//1=直线 2=实心 3=空心 4=边框+背景
4376
4376
  var barWidth=dataWidth;//默认K线宽度
4377
4377
  this.Canvas.beginPath();for(var i=0;i<aryBar.length;++i){var item=aryBar[i];if(!config){barWidth=dataWidth;//默认K线宽度
4378
4378
  config=item.Data.ColorConfig;if(IFrameSplitOperator.IsNumber(config.Width))barWidth=config.Width*pixelRatio;if(barWidth>4){if(config.Type==0)drawType=2;//实心
4379
4379
  else if(config.Type==1)drawType=3;//空心
4380
+ else if(config.Type==2)drawType=4;//边框+背景
4380
4381
  else continue;}else//太细了, 直线
4381
4382
  {drawType=1;}}if(drawType<=0)continue;if(drawType==1){if(this.IsHScreen){this.Canvas.moveTo(ToFixedPoint(item.Y),ToFixedPoint(item.X));this.Canvas.lineTo(ToFixedPoint(item.Y2),ToFixedPoint(item.X));}else{this.Canvas.moveTo(ToFixedPoint(item.X),ToFixedPoint(item.Y));this.Canvas.lineTo(ToFixedPoint(item.X),ToFixedPoint(item.Y2));}++count;}else if(drawType==2)//实心
4382
4383
  {var x=item.X-barWidth/2;var y=Math.min(item.Y,item.Y2);var barWidth=barWidth;var barHeight=Math.abs(item.Y-item.Y2);var barPath=new Path2D();if(this.IsHScreen)barPath.rect(ToFixedRect(y),ToFixedRect(x),ToFixedRect(barHeight),ToFixedRect(barWidth));else barPath.rect(ToFixedRect(x),ToFixedRect(y),ToFixedRect(barWidth),ToFixedRect(barHeight));path.addPath(barPath);++count;}else if(drawType==3)//空心
4383
- {var x=item.X-barWidth/2;var y=Math.min(item.Y,item.Y2);var barWidth=barWidth;var barHeight=Math.abs(item.Y-item.Y2);var barPath=new Path2D();if(this.IsHScreen)barPath.rect(ToFixedPoint(y),ToFixedPoint(x),ToFixedPoint(barHeight),ToFixedPoint(barWidth));else barPath.rect(ToFixedPoint(x),ToFixedPoint(y),ToFixedPoint(barWidth),ToFixedPoint(barHeight));path.addPath(barPath);++count;}}if(count>0&&drawType>0&&config){if(drawType==1){this.Canvas.lineWidth=1*pixelRatio;this.Canvas.strokeStyle=config.Color;this.Canvas.stroke();}else if(drawType==2){this.Canvas.fillStyle=config.Color;//背景填充颜色
4384
- this.Canvas.fill(path);}else if(drawType==3){this.Canvas.lineWidth=1*pixelRatio;this.Canvas.strokeStyle=config.Color;this.Canvas.stroke(path);}}}}catch(err){_didIteratorError7=true;_iteratorError7=err;}finally{try{if(!_iteratorNormalCompletion7&&_iterator7.return){_iterator7.return();}}finally{if(_didIteratorError7){throw _iteratorError7;}}}};this.GetMaxMin=function(){var range={Min:null,Max:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;if(!this.MapCache||this.MapCache.size<=0)return range;var xPointCount=this.ChartFrame.XPointCount;for(var i=this.Data.DataOffset,j=0,k=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var kItem=this.Data.Data[i];var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;for(k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=this.GetKValue(kItem,item.Data.Value);if(!IFrameSplitOperator.IsNumber(value))continue;var value2=item.Data.Value2;if(IFrameSplitOperator.IsString(item.Data.Value2))value2=this.GetKValue(kItem,item.Data.Value2);if(!IFrameSplitOperator.IsNumber(value2))continue;var minValue=Math.min(value,value2);var maxValue=Math.max(value,value2);if(range.Max==null)range.Max=maxValue;else if(range.Max<maxValue)range.Max=maxValue;if(range.Min==null)range.Min=minValue;else if(range.Min>minValue)range.Min=minValue;}}return range;};}// 线段集合 支持横屏
4384
+ {var x=item.X-barWidth/2;var y=Math.min(item.Y,item.Y2);var barWidth=barWidth;var barHeight=Math.abs(item.Y-item.Y2);var barPath=new Path2D();if(this.IsHScreen)barPath.rect(ToFixedPoint(y),ToFixedPoint(x),ToFixedPoint(barHeight),ToFixedPoint(barWidth));else barPath.rect(ToFixedPoint(x),ToFixedPoint(y),ToFixedPoint(barWidth),ToFixedPoint(barHeight));path.addPath(barPath);++count;}else if(drawType==4)//背景+边框
4385
+ {var x=item.X-barWidth/2;var y=Math.min(item.Y,item.Y2);var barWidth=barWidth;var barHeight=Math.abs(item.Y-item.Y2);var barPath=new Path2D();if(this.IsHScreen)barPath.rect(ToFixedRect(y),ToFixedRect(x),ToFixedRect(barHeight),ToFixedRect(barWidth));else barPath.rect(ToFixedRect(x),ToFixedRect(y),ToFixedRect(barWidth),ToFixedRect(barHeight));pathBG.addPath(barPath);var barPath=new Path2D();if(this.IsHScreen)barPath.rect(ToFixedPoint(y),ToFixedPoint(x),ToFixedPoint(barHeight),ToFixedPoint(barWidth));else barPath.rect(ToFixedPoint(x),ToFixedPoint(y),ToFixedPoint(barWidth),ToFixedPoint(barHeight));path.addPath(barPath);++count;}}if(count>0&&drawType>0&&config){if(drawType==1){this.Canvas.lineWidth=1*pixelRatio;this.Canvas.strokeStyle=config.Color;this.Canvas.stroke();}else if(drawType==2){this.Canvas.fillStyle=config.Color;//背景填充颜色
4386
+ this.Canvas.fill(path);}else if(drawType==3){this.Canvas.lineWidth=1*pixelRatio;this.Canvas.strokeStyle=config.Color;this.Canvas.stroke(path);}else if(drawType==4){if(config.Color){this.Canvas.fillStyle=config.Color;//背景填充颜色
4387
+ this.Canvas.fill(path);}if(config.BorderColor){this.Canvas.lineWidth=1*pixelRatio;this.Canvas.strokeStyle=config.BorderColor;this.Canvas.stroke(path);}}}}}catch(err){_didIteratorError7=true;_iteratorError7=err;}finally{try{if(!_iteratorNormalCompletion7&&_iterator7.return){_iterator7.return();}}finally{if(_didIteratorError7){throw _iteratorError7;}}}};this.GetMaxMin=function(){var range={Min:null,Max:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;if(!this.MapCache||this.MapCache.size<=0)return range;var xPointCount=this.ChartFrame.XPointCount;for(var i=this.Data.DataOffset,j=0,k=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var kItem=this.Data.Data[i];var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;for(k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=this.GetKValue(kItem,item.Data.Value);if(!IFrameSplitOperator.IsNumber(value))continue;var value2=item.Data.Value2;if(IFrameSplitOperator.IsString(item.Data.Value2))value2=this.GetKValue(kItem,item.Data.Value2);if(!IFrameSplitOperator.IsNumber(value2))continue;var minValue=Math.min(value,value2);var maxValue=Math.max(value,value2);if(range.Max==null)range.Max=maxValue;else if(range.Max<maxValue)range.Max=maxValue;if(range.Min==null)range.Min=minValue;else if(range.Min>minValue)range.Min=minValue;}}return range;};}// 线段集合 支持横屏
4385
4388
  function ChartMultiLine(){this.newMethod=IChartPainting;//派生
4386
4389
  this.newMethod();delete this.newMethod;this.ClassName="ChartMultiLine";this.Lines=[];// [ {Point:[ {Index, Value }, ], Color: }, ]
4387
4390
  this.LineDash;this.LineWidth=1;this.IsHScreen=false;//箭头配置
@@ -14336,7 +14339,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14336
14339
  this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
14337
14340
  * 版本信息输出
14338
14341
  *
14339
- */var HQCHART_VERSION="1.1.14445";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: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
14342
+ */var HQCHART_VERSION="1.1.14449";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: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
14340
14343
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14341
14344
  // BaseIndex:BaseIndex,
14342
14345
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14446",
3
+ "version": "1.1.14450",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -40818,9 +40818,10 @@ function ChartMultiBar()
40818
40818
  var groupItem=this.Bars[i];
40819
40819
  if (!groupItem || !IFrameSplitOperator.IsNonEmptyArray(groupItem.Point)) continue;
40820
40820
 
40821
- var clrConfig= { Color:groupItem.Color, Width:null, Name:groupItem.Name, Type:0 };
40821
+ var clrConfig= { Color:groupItem.Color, BGColor:null, Width:null, Name:groupItem.Name, Type:0 };
40822
40822
  if (IFrameSplitOperator.IsNumber(groupItem.Width)) clrConfig.Width=groupItem.Width;
40823
40823
  if (IFrameSplitOperator.IsNumber(groupItem.Type)) clrConfig.Type=groupItem.Type;
40824
+ if (groupItem.BorderColor) clrConfig.BorderColor=groupItem.BorderColor;
40824
40825
 
40825
40826
  for(var j=0; j<groupItem.Point.length; ++j)
40826
40827
  {
@@ -40941,8 +40942,9 @@ function ChartMultiBar()
40941
40942
 
40942
40943
  var config=null;
40943
40944
  var path=new Path2D();
40945
+ var pathBG=new Path2D();
40944
40946
  var count=0;
40945
- var drawType=-1; //1=直线 2=实心 3=空心
40947
+ var drawType=-1; //1=直线 2=实心 3=空心 4=边框+背景
40946
40948
  var barWidth=dataWidth; //默认K线宽度
40947
40949
  this.Canvas.beginPath();
40948
40950
  for(var i=0;i<aryBar.length;++i)
@@ -40957,6 +40959,7 @@ function ChartMultiBar()
40957
40959
  {
40958
40960
  if (config.Type==0) drawType=2; //实心
40959
40961
  else if (config.Type==1) drawType=3; //空心
40962
+ else if (config.Type==2) drawType=4; //边框+背景
40960
40963
  else continue;
40961
40964
  }
40962
40965
  else //太细了, 直线
@@ -41013,6 +41016,31 @@ function ChartMultiBar()
41013
41016
  path.addPath(barPath);
41014
41017
  ++count;
41015
41018
  }
41019
+ else if (drawType==4) //背景+边框
41020
+ {
41021
+ var x=item.X-(barWidth/2);
41022
+ var y=Math.min(item.Y,item.Y2);
41023
+ var barWidth=barWidth;
41024
+ var barHeight=Math.abs(item.Y-item.Y2);
41025
+
41026
+ var barPath = new Path2D();
41027
+ if (this.IsHScreen)
41028
+ barPath.rect(ToFixedRect(y),ToFixedRect(x),ToFixedRect(barHeight),ToFixedRect(barWidth))
41029
+ else
41030
+ barPath.rect(ToFixedRect(x),ToFixedRect(y),ToFixedRect(barWidth),ToFixedRect(barHeight))
41031
+
41032
+ pathBG.addPath(barPath);
41033
+
41034
+ var barPath = new Path2D();
41035
+ if (this.IsHScreen)
41036
+ barPath.rect(ToFixedPoint(y),ToFixedPoint(x),ToFixedPoint(barHeight),ToFixedPoint(barWidth))
41037
+ else
41038
+ barPath.rect(ToFixedPoint(x),ToFixedPoint(y),ToFixedPoint(barWidth),ToFixedPoint(barHeight))
41039
+
41040
+ path.addPath(barPath);
41041
+
41042
+ ++count;
41043
+ }
41016
41044
  }
41017
41045
 
41018
41046
 
@@ -41035,6 +41063,21 @@ function ChartMultiBar()
41035
41063
  this.Canvas.strokeStyle=config.Color;
41036
41064
  this.Canvas.stroke(path);
41037
41065
  }
41066
+ else if (drawType==4)
41067
+ {
41068
+ if (config.Color)
41069
+ {
41070
+ this.Canvas.fillStyle=config.Color; //背景填充颜色
41071
+ this.Canvas.fill(path);
41072
+ }
41073
+
41074
+ if (config.BorderColor)
41075
+ {
41076
+ this.Canvas.lineWidth=1*pixelRatio;
41077
+ this.Canvas.strokeStyle=config.BorderColor;
41078
+ this.Canvas.stroke(path);
41079
+ }
41080
+ }
41038
41081
  }
41039
41082
 
41040
41083
  }
@@ -44743,9 +44743,10 @@ function ChartMultiBar()
44743
44743
  var groupItem=this.Bars[i];
44744
44744
  if (!groupItem || !IFrameSplitOperator.IsNonEmptyArray(groupItem.Point)) continue;
44745
44745
 
44746
- var clrConfig= { Color:groupItem.Color, Width:null, Name:groupItem.Name, Type:0 };
44746
+ var clrConfig= { Color:groupItem.Color, BGColor:null, Width:null, Name:groupItem.Name, Type:0 };
44747
44747
  if (IFrameSplitOperator.IsNumber(groupItem.Width)) clrConfig.Width=groupItem.Width;
44748
44748
  if (IFrameSplitOperator.IsNumber(groupItem.Type)) clrConfig.Type=groupItem.Type;
44749
+ if (groupItem.BorderColor) clrConfig.BorderColor=groupItem.BorderColor;
44749
44750
 
44750
44751
  for(var j=0; j<groupItem.Point.length; ++j)
44751
44752
  {
@@ -44866,8 +44867,9 @@ function ChartMultiBar()
44866
44867
 
44867
44868
  var config=null;
44868
44869
  var path=new Path2D();
44870
+ var pathBG=new Path2D();
44869
44871
  var count=0;
44870
- var drawType=-1; //1=直线 2=实心 3=空心
44872
+ var drawType=-1; //1=直线 2=实心 3=空心 4=边框+背景
44871
44873
  var barWidth=dataWidth; //默认K线宽度
44872
44874
  this.Canvas.beginPath();
44873
44875
  for(var i=0;i<aryBar.length;++i)
@@ -44882,6 +44884,7 @@ function ChartMultiBar()
44882
44884
  {
44883
44885
  if (config.Type==0) drawType=2; //实心
44884
44886
  else if (config.Type==1) drawType=3; //空心
44887
+ else if (config.Type==2) drawType=4; //边框+背景
44885
44888
  else continue;
44886
44889
  }
44887
44890
  else //太细了, 直线
@@ -44938,6 +44941,31 @@ function ChartMultiBar()
44938
44941
  path.addPath(barPath);
44939
44942
  ++count;
44940
44943
  }
44944
+ else if (drawType==4) //背景+边框
44945
+ {
44946
+ var x=item.X-(barWidth/2);
44947
+ var y=Math.min(item.Y,item.Y2);
44948
+ var barWidth=barWidth;
44949
+ var barHeight=Math.abs(item.Y-item.Y2);
44950
+
44951
+ var barPath = new Path2D();
44952
+ if (this.IsHScreen)
44953
+ barPath.rect(ToFixedRect(y),ToFixedRect(x),ToFixedRect(barHeight),ToFixedRect(barWidth))
44954
+ else
44955
+ barPath.rect(ToFixedRect(x),ToFixedRect(y),ToFixedRect(barWidth),ToFixedRect(barHeight))
44956
+
44957
+ pathBG.addPath(barPath);
44958
+
44959
+ var barPath = new Path2D();
44960
+ if (this.IsHScreen)
44961
+ barPath.rect(ToFixedPoint(y),ToFixedPoint(x),ToFixedPoint(barHeight),ToFixedPoint(barWidth))
44962
+ else
44963
+ barPath.rect(ToFixedPoint(x),ToFixedPoint(y),ToFixedPoint(barWidth),ToFixedPoint(barHeight))
44964
+
44965
+ path.addPath(barPath);
44966
+
44967
+ ++count;
44968
+ }
44941
44969
  }
44942
44970
 
44943
44971
 
@@ -44960,6 +44988,21 @@ function ChartMultiBar()
44960
44988
  this.Canvas.strokeStyle=config.Color;
44961
44989
  this.Canvas.stroke(path);
44962
44990
  }
44991
+ else if (drawType==4)
44992
+ {
44993
+ if (config.Color)
44994
+ {
44995
+ this.Canvas.fillStyle=config.Color; //背景填充颜色
44996
+ this.Canvas.fill(path);
44997
+ }
44998
+
44999
+ if (config.BorderColor)
45000
+ {
45001
+ this.Canvas.lineWidth=1*pixelRatio;
45002
+ this.Canvas.strokeStyle=config.BorderColor;
45003
+ this.Canvas.stroke(path);
45004
+ }
45005
+ }
44963
45006
  }
44964
45007
 
44965
45008
  }
@@ -143451,7 +143494,7 @@ function ScrollBarBGChart()
143451
143494
 
143452
143495
 
143453
143496
 
143454
- var HQCHART_VERSION="1.1.14445";
143497
+ var HQCHART_VERSION="1.1.14449";
143455
143498
 
143456
143499
  function PrintHQChartVersion()
143457
143500
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14445";
8
+ var HQCHART_VERSION="1.1.14449";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -44787,9 +44787,10 @@ function ChartMultiBar()
44787
44787
  var groupItem=this.Bars[i];
44788
44788
  if (!groupItem || !IFrameSplitOperator.IsNonEmptyArray(groupItem.Point)) continue;
44789
44789
 
44790
- var clrConfig= { Color:groupItem.Color, Width:null, Name:groupItem.Name, Type:0 };
44790
+ var clrConfig= { Color:groupItem.Color, BGColor:null, Width:null, Name:groupItem.Name, Type:0 };
44791
44791
  if (IFrameSplitOperator.IsNumber(groupItem.Width)) clrConfig.Width=groupItem.Width;
44792
44792
  if (IFrameSplitOperator.IsNumber(groupItem.Type)) clrConfig.Type=groupItem.Type;
44793
+ if (groupItem.BorderColor) clrConfig.BorderColor=groupItem.BorderColor;
44793
44794
 
44794
44795
  for(var j=0; j<groupItem.Point.length; ++j)
44795
44796
  {
@@ -44910,8 +44911,9 @@ function ChartMultiBar()
44910
44911
 
44911
44912
  var config=null;
44912
44913
  var path=new Path2D();
44914
+ var pathBG=new Path2D();
44913
44915
  var count=0;
44914
- var drawType=-1; //1=直线 2=实心 3=空心
44916
+ var drawType=-1; //1=直线 2=实心 3=空心 4=边框+背景
44915
44917
  var barWidth=dataWidth; //默认K线宽度
44916
44918
  this.Canvas.beginPath();
44917
44919
  for(var i=0;i<aryBar.length;++i)
@@ -44926,6 +44928,7 @@ function ChartMultiBar()
44926
44928
  {
44927
44929
  if (config.Type==0) drawType=2; //实心
44928
44930
  else if (config.Type==1) drawType=3; //空心
44931
+ else if (config.Type==2) drawType=4; //边框+背景
44929
44932
  else continue;
44930
44933
  }
44931
44934
  else //太细了, 直线
@@ -44982,6 +44985,31 @@ function ChartMultiBar()
44982
44985
  path.addPath(barPath);
44983
44986
  ++count;
44984
44987
  }
44988
+ else if (drawType==4) //背景+边框
44989
+ {
44990
+ var x=item.X-(barWidth/2);
44991
+ var y=Math.min(item.Y,item.Y2);
44992
+ var barWidth=barWidth;
44993
+ var barHeight=Math.abs(item.Y-item.Y2);
44994
+
44995
+ var barPath = new Path2D();
44996
+ if (this.IsHScreen)
44997
+ barPath.rect(ToFixedRect(y),ToFixedRect(x),ToFixedRect(barHeight),ToFixedRect(barWidth))
44998
+ else
44999
+ barPath.rect(ToFixedRect(x),ToFixedRect(y),ToFixedRect(barWidth),ToFixedRect(barHeight))
45000
+
45001
+ pathBG.addPath(barPath);
45002
+
45003
+ var barPath = new Path2D();
45004
+ if (this.IsHScreen)
45005
+ barPath.rect(ToFixedPoint(y),ToFixedPoint(x),ToFixedPoint(barHeight),ToFixedPoint(barWidth))
45006
+ else
45007
+ barPath.rect(ToFixedPoint(x),ToFixedPoint(y),ToFixedPoint(barWidth),ToFixedPoint(barHeight))
45008
+
45009
+ path.addPath(barPath);
45010
+
45011
+ ++count;
45012
+ }
44985
45013
  }
44986
45014
 
44987
45015
 
@@ -45004,6 +45032,21 @@ function ChartMultiBar()
45004
45032
  this.Canvas.strokeStyle=config.Color;
45005
45033
  this.Canvas.stroke(path);
45006
45034
  }
45035
+ else if (drawType==4)
45036
+ {
45037
+ if (config.Color)
45038
+ {
45039
+ this.Canvas.fillStyle=config.Color; //背景填充颜色
45040
+ this.Canvas.fill(path);
45041
+ }
45042
+
45043
+ if (config.BorderColor)
45044
+ {
45045
+ this.Canvas.lineWidth=1*pixelRatio;
45046
+ this.Canvas.strokeStyle=config.BorderColor;
45047
+ this.Canvas.stroke(path);
45048
+ }
45049
+ }
45007
45050
  }
45008
45051
 
45009
45052
  }
@@ -153263,7 +153306,7 @@ function HQChartScriptWorker()
153263
153306
 
153264
153307
 
153265
153308
 
153266
- var HQCHART_VERSION="1.1.14445";
153309
+ var HQCHART_VERSION="1.1.14449";
153267
153310
 
153268
153311
  function PrintHQChartVersion()
153269
153312
  {