hqchart 1.1.12431 → 1.1.12433

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.
@@ -2070,7 +2070,7 @@ return fixValue;}function ToFixedRect(value){// With a bitwise or.
2070
2070
  // Finally, a left bitwise shift.
2071
2071
  //value*=GetDevicePixelRatio();
2072
2072
  var rounded;return rounded=0.5+value<<0;}//深拷贝
2073
- function CloneData(data){if(!data)return null;var strData=(0,_stringify2.default)(data);var item=JSON.parse(strData);return item;}function Point(){this.X;this.Y;}function SelectRectData(){this.Data;//主数据
2073
+ function CloneData(data){if(!data)return null;var strData=(0,_stringify2.default)(data);var item=JSON.parse(strData);return item;}function IsRecvOverlap(rect1,rect2){return Math.max(rect1.Left,rect2.Left)<Math.min(rect1.Right,rect2.Right)&&Math.max(rect1.Top,rect2.Top)<Math.min(rect1.Bottom,rect2.Bottom);}function Point(){this.X;this.Y;}function SelectRectData(){this.Data;//主数据
2074
2074
  this.JSChartContainer;//行情控件
2075
2075
  this.Start;//数据起始位子
2076
2076
  this.End;//数据结束位置
@@ -9431,8 +9431,9 @@ var result=[];for(var _i80 in data){if(data[_i80]){if(isNumber2)result[_i80]=tru
9431
9431
  //用法: REF(X,A),引用A周期前的X值.A可以是变量.
9432
9432
  //平滑处理:当引用不到数据时进行的操作.此函数中,平滑时使用上一个周期的引用值.
9433
9433
  //例如: REF(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.
9434
- this.REF=function(data,n){var result=[];if(typeof n=='number'){if(data.length<=0)return result;if(n>=data.length)return result;result=data.slice(0,data.length-n);//平滑处理
9435
- var firstData=data[0];for(var _i81=0;_i81<n;++_i81){result.unshift(firstData);}}else//n 为数组的情况
9434
+ this.REF=function(data,n){var result=[];if(typeof n=='number'){if(IFrameSplitOperator.IsNumber(data))//单数值
9435
+ {if(n<0)return result;var kData=this.SymbolData.Data.Data;if(!kData||kData.length<=0)return result;var count=kData.length;for(var i=n;i<count;++i){result[i]=data;}}else{if(data.length<=0)return result;if(n>=data.length)return result;result=data.slice(0,data.length-n);//平滑处理
9436
+ var firstData=data[0];for(var _i81=0;_i81<n;++_i81){result.unshift(firstData);}}}else//n 为数组的情况
9436
9437
  {for(var _i82=0;_i82<data.length;++_i82){result[_i82]=null;if(_i82>=n.length)continue;var value=n[_i82];if(value>=0&&value<=_i82)result[_i82]=data[_i82-value];else if(_i82)result[_i82]=result[_i82-1];else result[_i82]=data[_i82];}}return result;};//引用若干周期前的数据(未作平滑处理).
9437
9438
  //用法: REFV(X,A),引用A周期前的X值.A可以是变量.
9438
9439
  //平滑处理:当引用不到数据时进行的操作.
@@ -9574,7 +9575,8 @@ this.CROSS=function(data,data2){var result=[];if(Array.isArray(data)&&Array.isAr
9574
9575
  CROSSUP(MA5,MA10),ICON(1,'ICO4');//MA5上穿MA10,标注红箭头。
9575
9576
  //CROSSUP(MA5,MA10),ICON(1,'ICO4'); 与 CROSSUP(MA5,MA10)=1,ICON(1,'ICO4');表达同等意义
9576
9577
  */this.CROSSUP=function(data,data2){return this.CROSS(data,data2);};//累乘
9577
- this.MULAR=function(data,n){var result=[];if(!Array.isArray(n)){if(data.length<n)return result;if(n==0){var index=n;for(;index<data.length;++index){if(this.IsNumber(data[index])){result[index]=data[index];break;}}for(++index;index<data.length;++index){result[index]=result[index-1]*data[index];}}else{for(var i=n-1,j=0;i<data.length;++i,++j){for(var k=0;k<n;++k){if(k==0)result[i]=data[k+j];else result[i]*=data[k+j];}}}}else{for(var i=0;i<data.length;++i){result[i]=null;var totalCount=n[i];if(!this.IsNumber(totalCount))continue;totalCount=parseInt(totalCount);if(totalCount<0)continue;for(var j=i,k=0;j>=0&&k<totalCount;--j,++k){if(k==0)result[i]=data[j];else result[i]*=data[j];}}}return result;};this.SUM=function(data,n){var result=[];if(!Array.isArray(n)){if(n==0){result[0]=data[0];for(var i=1;i<data.length;++i){result[i]=result[i-1]+data[i];}}else{for(var i=n-1,j=0;i<data.length;++i,++j){for(var k=0;k<n;++k){if(k==0)result[i]=data[k+j];else result[i]+=data[k+j];}}}}else{for(var i=0;i<data.length;++i){result[i]=null;var totalCount=n[i];if(!(totalCount>0))continue;for(var j=i,k=0;j>=0&&k<totalCount;--j,++k){if(k==0)result[i]=data[j];else result[i]+=data[j];}}}return result;};/*
9578
+ this.MULAR=function(data,n){var result=[];if(!Array.isArray(n)){if(data.length<n)return result;if(n==0){var index=n;for(;index<data.length;++index){if(this.IsNumber(data[index])){result[index]=data[index];break;}}for(++index;index<data.length;++index){result[index]=result[index-1]*data[index];}}else{for(var i=n-1,j=0;i<data.length;++i,++j){for(var k=0;k<n;++k){if(k==0)result[i]=data[k+j];else result[i]*=data[k+j];}}}}else{for(var i=0;i<data.length;++i){result[i]=null;var totalCount=n[i];if(!this.IsNumber(totalCount))continue;totalCount=parseInt(totalCount);if(totalCount<0)continue;for(var j=i,k=0;j>=0&&k<totalCount;--j,++k){if(k==0)result[i]=data[j];else result[i]*=data[j];}}}return result;};this.SUM=function(data,n){var result=[];if(!Array.isArray(n)){if(n==0){var start=-1;for(var i=0;i<data.length;++i)//取第1个有效数
9579
+ {if(IFrameSplitOperator.IsNumber(data[i])){start=i;break;}}if(start<0)return result;result[start]=data[start];for(var i=start+1;i<data.length;++i){result[i]=result[i-1]+data[i];}}else{for(var i=n-1,j=0;i<data.length;++i,++j){for(var k=0;k<n;++k){if(k==0)result[i]=data[k+j];else result[i]+=data[k+j];}}}}else{for(var i=0;i<data.length;++i){result[i]=null;var totalCount=n[i];if(!(totalCount>0))continue;for(var j=i,k=0;j>=0&&k<totalCount;--j,++k){if(k==0)result[i]=data[j];else result[i]+=data[j];}}}return result;};/*
9578
9580
  BARSCOUNT 有效数据周期数
9579
9581
  求总的周期数。
9580
9582
  用法: BARSCOUNT(X) 第一个有效数据到当前的天数。
@@ -12466,7 +12468,7 @@ this.AreaColor=g_JSChartResource.ScrollBar.BGChart.AreaColor;//面积图颜色
12466
12468
  };this.Draw=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.save();if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();var bottom=this.ChartBorder.GetBottom();this.Canvas.strokeStyle=this.Color;var bFirstPoint=true;var drawCount=0,x,y;var firstPoint={};for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;x=this.ChartFrame.GetXFromIndex(i);y=this.ChartFrame.GetYFromData(value);if(bFirstPoint){this.Canvas.beginPath();this.Canvas.moveTo(x,y);bFirstPoint=false;firstPoint={X:x,Y:y};}else{this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0){this.Canvas.stroke();this.Canvas.lineTo(x,bottom);this.Canvas.lineTo(firstPoint.X,bottom);this.Canvas.closePath();this.Canvas.fillStyle=this.AreaColor;this.Canvas.fill();}this.Canvas.restore();};this.GetMaxMin=function(){var range={Max:null,Min:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null||range.Max<value)range.Max=value;if(range.Min==null||range.Min>value)range.Min=value;}return range;};}/********************************************************************************
12467
12469
  * 版本信息输出
12468
12470
  *
12469
- */var HQCHART_VERSION="1.1.12430";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12471
+ */var HQCHART_VERSION="1.1.12432";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12470
12472
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12471
12473
  // BaseIndex:BaseIndex,
12472
12474
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.12431",
5
+ "version": "1.1.12433",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -2844,15 +2844,29 @@ function JSAlgorithm(errorHandler,symbolData)
2844
2844
  let result=[];
2845
2845
  if (typeof(n)=='number')
2846
2846
  {
2847
- if (data.length<=0) return result;
2848
- if (n>=data.length) return result;
2849
-
2850
- result=data.slice(0,data.length-n);
2851
-
2852
- //平滑处理
2853
- var firstData=data[0];
2854
- for(let i=0;i<n;++i)
2855
- result.unshift(firstData);
2847
+ if (IFrameSplitOperator.IsNumber(data)) //单数值
2848
+ {
2849
+ if (n<0) return result;
2850
+ var kData=this.SymbolData.Data.Data;
2851
+ if (!kData || kData.length<=0) return result;
2852
+ var count=kData.length;
2853
+ for(var i=n;i<count;++i)
2854
+ {
2855
+ result[i]=data;
2856
+ }
2857
+ }
2858
+ else
2859
+ {
2860
+ if (data.length<=0) return result;
2861
+ if (n>=data.length) return result;
2862
+
2863
+ result=data.slice(0,data.length-n);
2864
+
2865
+ //平滑处理
2866
+ var firstData=data[0];
2867
+ for(let i=0;i<n;++i)
2868
+ result.unshift(firstData);
2869
+ }
2856
2870
  }
2857
2871
  else //n 为数组的情况
2858
2872
  {
@@ -4130,9 +4144,21 @@ function JSAlgorithm(errorHandler,symbolData)
4130
4144
  {
4131
4145
  if (n==0)
4132
4146
  {
4133
- result[0]=data[0];
4147
+ var start=-1;
4148
+ for(var i=0; i<data.length; ++i) //取第1个有效数
4149
+ {
4150
+ if (IFrameSplitOperator.IsNumber(data[i]))
4151
+ {
4152
+ start=i;
4153
+ break;
4154
+ }
4155
+ }
4156
+
4157
+ if (start<0) return result;
4158
+
4159
+ result[start]=data[start];
4134
4160
 
4135
- for (var i=1; i<data.length; ++i)
4161
+ for (var i=start+1; i<data.length; ++i)
4136
4162
  {
4137
4163
  result[i] = result[i-1]+data[i];
4138
4164
  }
@@ -8571,6 +8571,10 @@ function CloneData(data)
8571
8571
  return item;
8572
8572
  }
8573
8573
 
8574
+ function IsRecvOverlap(rect1, rect2)
8575
+ {
8576
+ return Math.max(rect1.Left,rect2.Left) < Math.min(rect1.Right,rect2.Right) && Math.max(rect1.Top,rect2.Top) < Math.min(rect1.Bottom,rect2.Bottom);
8577
+ }
8574
8578
 
8575
8579
 
8576
8580
  function Point()
@@ -12651,6 +12651,10 @@ function CloneData(data)
12651
12651
  return item;
12652
12652
  }
12653
12653
 
12654
+ function IsRecvOverlap(rect1, rect2)
12655
+ {
12656
+ return Math.max(rect1.Left,rect2.Left) < Math.min(rect1.Right,rect2.Right) && Math.max(rect1.Top,rect2.Top) < Math.min(rect1.Bottom,rect2.Bottom);
12657
+ }
12654
12658
 
12655
12659
 
12656
12660
  function Point()
@@ -94929,15 +94933,29 @@ function JSAlgorithm(errorHandler,symbolData)
94929
94933
  let result=[];
94930
94934
  if (typeof(n)=='number')
94931
94935
  {
94932
- if (data.length<=0) return result;
94933
- if (n>=data.length) return result;
94934
-
94935
- result=data.slice(0,data.length-n);
94936
-
94937
- //平滑处理
94938
- var firstData=data[0];
94939
- for(let i=0;i<n;++i)
94940
- result.unshift(firstData);
94936
+ if (IFrameSplitOperator.IsNumber(data)) //单数值
94937
+ {
94938
+ if (n<0) return result;
94939
+ var kData=this.SymbolData.Data.Data;
94940
+ if (!kData || kData.length<=0) return result;
94941
+ var count=kData.length;
94942
+ for(var i=n;i<count;++i)
94943
+ {
94944
+ result[i]=data;
94945
+ }
94946
+ }
94947
+ else
94948
+ {
94949
+ if (data.length<=0) return result;
94950
+ if (n>=data.length) return result;
94951
+
94952
+ result=data.slice(0,data.length-n);
94953
+
94954
+ //平滑处理
94955
+ var firstData=data[0];
94956
+ for(let i=0;i<n;++i)
94957
+ result.unshift(firstData);
94958
+ }
94941
94959
  }
94942
94960
  else //n 为数组的情况
94943
94961
  {
@@ -96215,9 +96233,21 @@ function JSAlgorithm(errorHandler,symbolData)
96215
96233
  {
96216
96234
  if (n==0)
96217
96235
  {
96218
- result[0]=data[0];
96236
+ var start=-1;
96237
+ for(var i=0; i<data.length; ++i) //取第1个有效数
96238
+ {
96239
+ if (IFrameSplitOperator.IsNumber(data[i]))
96240
+ {
96241
+ start=i;
96242
+ break;
96243
+ }
96244
+ }
96245
+
96246
+ if (start<0) return result;
96247
+
96248
+ result[start]=data[start];
96219
96249
 
96220
- for (var i=1; i<data.length; ++i)
96250
+ for (var i=start+1; i<data.length; ++i)
96221
96251
  {
96222
96252
  result[i] = result[i-1]+data[i];
96223
96253
  }
@@ -127607,7 +127637,7 @@ function ScrollBarBGChart()
127607
127637
 
127608
127638
 
127609
127639
 
127610
- var HQCHART_VERSION="1.1.12430";
127640
+ var HQCHART_VERSION="1.1.12432";
127611
127641
 
127612
127642
  function PrintHQChartVersion()
127613
127643
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12430";
8
+ var HQCHART_VERSION="1.1.12432";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -12695,6 +12695,10 @@ function CloneData(data)
12695
12695
  return item;
12696
12696
  }
12697
12697
 
12698
+ function IsRecvOverlap(rect1, rect2)
12699
+ {
12700
+ return Math.max(rect1.Left,rect2.Left) < Math.min(rect1.Right,rect2.Right) && Math.max(rect1.Top,rect2.Top) < Math.min(rect1.Bottom,rect2.Bottom);
12701
+ }
12698
12702
 
12699
12703
 
12700
12704
  function Point()
@@ -94973,15 +94977,29 @@ function JSAlgorithm(errorHandler,symbolData)
94973
94977
  let result=[];
94974
94978
  if (typeof(n)=='number')
94975
94979
  {
94976
- if (data.length<=0) return result;
94977
- if (n>=data.length) return result;
94978
-
94979
- result=data.slice(0,data.length-n);
94980
-
94981
- //平滑处理
94982
- var firstData=data[0];
94983
- for(let i=0;i<n;++i)
94984
- result.unshift(firstData);
94980
+ if (IFrameSplitOperator.IsNumber(data)) //单数值
94981
+ {
94982
+ if (n<0) return result;
94983
+ var kData=this.SymbolData.Data.Data;
94984
+ if (!kData || kData.length<=0) return result;
94985
+ var count=kData.length;
94986
+ for(var i=n;i<count;++i)
94987
+ {
94988
+ result[i]=data;
94989
+ }
94990
+ }
94991
+ else
94992
+ {
94993
+ if (data.length<=0) return result;
94994
+ if (n>=data.length) return result;
94995
+
94996
+ result=data.slice(0,data.length-n);
94997
+
94998
+ //平滑处理
94999
+ var firstData=data[0];
95000
+ for(let i=0;i<n;++i)
95001
+ result.unshift(firstData);
95002
+ }
94985
95003
  }
94986
95004
  else //n 为数组的情况
94987
95005
  {
@@ -96259,9 +96277,21 @@ function JSAlgorithm(errorHandler,symbolData)
96259
96277
  {
96260
96278
  if (n==0)
96261
96279
  {
96262
- result[0]=data[0];
96280
+ var start=-1;
96281
+ for(var i=0; i<data.length; ++i) //取第1个有效数
96282
+ {
96283
+ if (IFrameSplitOperator.IsNumber(data[i]))
96284
+ {
96285
+ start=i;
96286
+ break;
96287
+ }
96288
+ }
96289
+
96290
+ if (start<0) return result;
96291
+
96292
+ result[start]=data[start];
96263
96293
 
96264
- for (var i=1; i<data.length; ++i)
96294
+ for (var i=start+1; i<data.length; ++i)
96265
96295
  {
96266
96296
  result[i] = result[i-1]+data[i];
96267
96297
  }
@@ -127651,7 +127681,7 @@ function ScrollBarBGChart()
127651
127681
 
127652
127682
 
127653
127683
 
127654
- var HQCHART_VERSION="1.1.12430";
127684
+ var HQCHART_VERSION="1.1.12432";
127655
127685
 
127656
127686
  function PrintHQChartVersion()
127657
127687
  {