hqchart 1.1.13263 → 1.1.13269

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.
@@ -4542,6 +4542,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4542
4542
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
4543
4543
  if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
4544
4544
  if (IFrameSplitOperator.IsNumber(item.IndexTitleSpace)) chart.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;
4545
+ if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) frame.HorizontalReserved=item.HorizontalReserved;
4545
4546
 
4546
4547
  if (item.OverlayIndexType)
4547
4548
  {
@@ -4988,6 +4989,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4988
4989
  if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
4989
4990
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
4990
4991
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
4992
+ if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) frame.HorizontalReserved=item.HorizontalReserved;
4991
4993
  }
4992
4994
  }
4993
4995
 
@@ -6563,6 +6565,8 @@ var JSCHART_MENU_ID=
6563
6565
  CMD_DELETE_OVERLAY_INDEX_ID:29, //删除叠加指标
6564
6566
  CMD_SHOW_OVERLAY_Y_AXIS_ID:30, //显示隐藏Y轴叠加指标
6565
6567
  CMD_ENABLE_OVERLAY_SHARE_Y_ID:31, //和主图指标共享Y轴坐标
6568
+
6569
+ CMD_CHANGE_DEFAULTCURSOR_ID:32, //修改鼠标形状
6566
6570
  }
6567
6571
 
6568
6572
 
@@ -13271,6 +13275,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13271
13275
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
13272
13276
  this.Draw();
13273
13277
 
13278
+ break;
13279
+ case JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID:
13280
+ if (!IFrameSplitOperator.IsString(srcParam)) return;
13281
+ this.DefaultCursor=srcParam;
13282
+ this.UIElement.style.cursor=this.DefaultCursor;
13274
13283
  break;
13275
13284
  }
13276
13285
  }
@@ -13868,6 +13877,7 @@ function IChartFramePainting()
13868
13877
 
13869
13878
  this.HorizontalMax; //Y轴最大值
13870
13879
  this.HorizontalMin; //Y轴最小值
13880
+ this.HorizontalReserved=null; //Y轴预留高度 { Top:上, Bottom:下 }
13871
13881
  this.XPointCount=10; //X轴数据个数
13872
13882
 
13873
13883
  this.ClientBGColor; //客户区背景色
@@ -26833,9 +26843,9 @@ function IChartPainting()
26833
26843
  if (!IFrameSplitOperator.IsNumber(ptStart.X) || !IFrameSplitOperator.IsNumber(ptStart.Y)) return null;
26834
26844
  if (!IFrameSplitOperator.IsNumber(ptEnd.X) || !IFrameSplitOperator.IsNumber(ptEnd.Y)) return null;
26835
26845
 
26836
- if (x==ptStart.X || y==ptStart.Y)
26846
+ if (x==ptStart.X && y==ptStart.Y)
26837
26847
  return { Identify:this.Identify, Chart:this };
26838
- if (x==ptEnd.X || y==ptEnd.Y)
26848
+ if (x==ptEnd.X && y==ptEnd.Y)
26839
26849
  return { Identify:this.Identify, Chart:this };
26840
26850
 
26841
26851
  var lineWidth=5;
@@ -49570,6 +49580,11 @@ IFrameSplitOperator.IsVaild=function(value)
49570
49580
  return true;
49571
49581
  }
49572
49582
 
49583
+ IFrameSplitOperator.IsUndefined=function(value)
49584
+ {
49585
+ return value===undefined;
49586
+ }
49587
+
49573
49588
  IFrameSplitOperator.RemoveZero=function(strValue)
49574
49589
  {
49575
49590
  while(strValue.length>0)
@@ -50582,12 +50597,15 @@ function FrameSplitY()
50582
50597
  if (this.EnableRemoveZero) this.RemoveZero(this.Frame.HorizontalInfo);
50583
50598
 
50584
50599
  this.DynamicMessageText();
50600
+
50585
50601
  this.Frame.HorizontalMax=splitData.Max;
50586
50602
  this.Frame.HorizontalMin=splitData.Min;
50587
50603
 
50588
50604
  if (this.EnableZoomUpDown==true && !this.FixedYMaxMin)
50589
50605
  this.FixedYMaxMin={ Max:splitData.Max, Min:splitData.Min };
50590
50606
 
50607
+ this.ReservedHeight(splitData); //预留高度
50608
+
50591
50609
  if (this.GetEventCallback)
50592
50610
  {
50593
50611
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE);
@@ -50600,6 +50618,49 @@ function FrameSplitY()
50600
50618
  }
50601
50619
  }
50602
50620
 
50621
+ this.ReservedHeight=function(splitData)
50622
+ {
50623
+ if (this.Frame.IsHScreen) return; //横屏以后再搞
50624
+
50625
+ var yReserved=this.Frame.HorizontalReserved;
50626
+ if (!yReserved) return;
50627
+
50628
+ var reservedHeight=0;
50629
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Top)) reservedHeight+=yReserved.Top;
50630
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Bottom)) reservedHeight+=yReserved.Bottom;
50631
+ if (reservedHeight<=0) return;
50632
+
50633
+ var border=this.Frame.GetBorder();
50634
+ var top=border.TopEx;
50635
+ var bottom=border.BottomEx;
50636
+ var srcHeight=bottom-top;
50637
+ if (srcHeight<reservedHeight) return;
50638
+
50639
+ var max=splitData.Max;
50640
+ var min=splitData.Min;
50641
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Top)) top-=yReserved.Top;
50642
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Bottom)) bottom+=yReserved.Bottom;
50643
+
50644
+ var value=(max-min)/(bottom-top); //1个像素点对应的数值
50645
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Top))
50646
+ {
50647
+ var topValue=value*yReserved.Top;
50648
+ max+=topValue;
50649
+ }
50650
+
50651
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Bottom))
50652
+ {
50653
+ var bottomValue=value*yReserved.Bottom;
50654
+ min-=bottomValue;
50655
+ }
50656
+
50657
+ splitData.Max=max;
50658
+ splitData.Min=min;
50659
+
50660
+ this.Frame.HorizontalMax=splitData.Max;
50661
+ this.Frame.HorizontalMin=splitData.Min;
50662
+ }
50663
+
50603
50664
 
50604
50665
  this.FormatValueString=function(value)
50605
50666
  {
@@ -76891,6 +76952,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76891
76952
  { Name:"画图工具", Data:{ ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID, Args:[]}, Checked:this.IsShowDrawToolDialog() },
76892
76953
 
76893
76954
  { Name:"移动筹码图", Data:{ ID:bShowStockChip?JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID, Args:[]}, Checked:bShowStockChip},
76955
+ { Name:JSPopMenu.SEPARATOR_LINE_NAME },
76956
+ {
76957
+ Name:"鼠标形状",
76958
+ SubMenu:
76959
+ [
76960
+ { Name:"默认", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID, Args:["default"]}, Checked:this.DefaultCursor=="default" },
76961
+ { Name:"十字线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID, Args:["crosshair"]}, Checked:this.DefaultCursor=="crosshair" },
76962
+ ]
76963
+ }
76894
76964
  ]
76895
76965
  }
76896
76966
  ];
@@ -132067,7 +132137,7 @@ function ScrollBarBGChart()
132067
132137
 
132068
132138
 
132069
132139
 
132070
- var HQCHART_VERSION="1.1.13262";
132140
+ var HQCHART_VERSION="1.1.13268";
132071
132141
 
132072
132142
  function PrintHQChartVersion()
132073
132143
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13262";
8
+ var HQCHART_VERSION="1.1.13268";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -4586,6 +4586,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4586
4586
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
4587
4587
  if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
4588
4588
  if (IFrameSplitOperator.IsNumber(item.IndexTitleSpace)) chart.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;
4589
+ if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) frame.HorizontalReserved=item.HorizontalReserved;
4589
4590
 
4590
4591
  if (item.OverlayIndexType)
4591
4592
  {
@@ -5032,6 +5033,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5032
5033
  if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
5033
5034
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
5034
5035
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
5036
+ if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) frame.HorizontalReserved=item.HorizontalReserved;
5035
5037
  }
5036
5038
  }
5037
5039
 
@@ -6607,6 +6609,8 @@ var JSCHART_MENU_ID=
6607
6609
  CMD_DELETE_OVERLAY_INDEX_ID:29, //删除叠加指标
6608
6610
  CMD_SHOW_OVERLAY_Y_AXIS_ID:30, //显示隐藏Y轴叠加指标
6609
6611
  CMD_ENABLE_OVERLAY_SHARE_Y_ID:31, //和主图指标共享Y轴坐标
6612
+
6613
+ CMD_CHANGE_DEFAULTCURSOR_ID:32, //修改鼠标形状
6610
6614
  }
6611
6615
 
6612
6616
 
@@ -13315,6 +13319,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13315
13319
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
13316
13320
  this.Draw();
13317
13321
 
13322
+ break;
13323
+ case JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID:
13324
+ if (!IFrameSplitOperator.IsString(srcParam)) return;
13325
+ this.DefaultCursor=srcParam;
13326
+ this.UIElement.style.cursor=this.DefaultCursor;
13318
13327
  break;
13319
13328
  }
13320
13329
  }
@@ -13912,6 +13921,7 @@ function IChartFramePainting()
13912
13921
 
13913
13922
  this.HorizontalMax; //Y轴最大值
13914
13923
  this.HorizontalMin; //Y轴最小值
13924
+ this.HorizontalReserved=null; //Y轴预留高度 { Top:上, Bottom:下 }
13915
13925
  this.XPointCount=10; //X轴数据个数
13916
13926
 
13917
13927
  this.ClientBGColor; //客户区背景色
@@ -26877,9 +26887,9 @@ function IChartPainting()
26877
26887
  if (!IFrameSplitOperator.IsNumber(ptStart.X) || !IFrameSplitOperator.IsNumber(ptStart.Y)) return null;
26878
26888
  if (!IFrameSplitOperator.IsNumber(ptEnd.X) || !IFrameSplitOperator.IsNumber(ptEnd.Y)) return null;
26879
26889
 
26880
- if (x==ptStart.X || y==ptStart.Y)
26890
+ if (x==ptStart.X && y==ptStart.Y)
26881
26891
  return { Identify:this.Identify, Chart:this };
26882
- if (x==ptEnd.X || y==ptEnd.Y)
26892
+ if (x==ptEnd.X && y==ptEnd.Y)
26883
26893
  return { Identify:this.Identify, Chart:this };
26884
26894
 
26885
26895
  var lineWidth=5;
@@ -49614,6 +49624,11 @@ IFrameSplitOperator.IsVaild=function(value)
49614
49624
  return true;
49615
49625
  }
49616
49626
 
49627
+ IFrameSplitOperator.IsUndefined=function(value)
49628
+ {
49629
+ return value===undefined;
49630
+ }
49631
+
49617
49632
  IFrameSplitOperator.RemoveZero=function(strValue)
49618
49633
  {
49619
49634
  while(strValue.length>0)
@@ -50626,12 +50641,15 @@ function FrameSplitY()
50626
50641
  if (this.EnableRemoveZero) this.RemoveZero(this.Frame.HorizontalInfo);
50627
50642
 
50628
50643
  this.DynamicMessageText();
50644
+
50629
50645
  this.Frame.HorizontalMax=splitData.Max;
50630
50646
  this.Frame.HorizontalMin=splitData.Min;
50631
50647
 
50632
50648
  if (this.EnableZoomUpDown==true && !this.FixedYMaxMin)
50633
50649
  this.FixedYMaxMin={ Max:splitData.Max, Min:splitData.Min };
50634
50650
 
50651
+ this.ReservedHeight(splitData); //预留高度
50652
+
50635
50653
  if (this.GetEventCallback)
50636
50654
  {
50637
50655
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE);
@@ -50644,6 +50662,49 @@ function FrameSplitY()
50644
50662
  }
50645
50663
  }
50646
50664
 
50665
+ this.ReservedHeight=function(splitData)
50666
+ {
50667
+ if (this.Frame.IsHScreen) return; //横屏以后再搞
50668
+
50669
+ var yReserved=this.Frame.HorizontalReserved;
50670
+ if (!yReserved) return;
50671
+
50672
+ var reservedHeight=0;
50673
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Top)) reservedHeight+=yReserved.Top;
50674
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Bottom)) reservedHeight+=yReserved.Bottom;
50675
+ if (reservedHeight<=0) return;
50676
+
50677
+ var border=this.Frame.GetBorder();
50678
+ var top=border.TopEx;
50679
+ var bottom=border.BottomEx;
50680
+ var srcHeight=bottom-top;
50681
+ if (srcHeight<reservedHeight) return;
50682
+
50683
+ var max=splitData.Max;
50684
+ var min=splitData.Min;
50685
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Top)) top-=yReserved.Top;
50686
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Bottom)) bottom+=yReserved.Bottom;
50687
+
50688
+ var value=(max-min)/(bottom-top); //1个像素点对应的数值
50689
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Top))
50690
+ {
50691
+ var topValue=value*yReserved.Top;
50692
+ max+=topValue;
50693
+ }
50694
+
50695
+ if (IFrameSplitOperator.IsPlusNumber(yReserved.Bottom))
50696
+ {
50697
+ var bottomValue=value*yReserved.Bottom;
50698
+ min-=bottomValue;
50699
+ }
50700
+
50701
+ splitData.Max=max;
50702
+ splitData.Min=min;
50703
+
50704
+ this.Frame.HorizontalMax=splitData.Max;
50705
+ this.Frame.HorizontalMin=splitData.Min;
50706
+ }
50707
+
50647
50708
 
50648
50709
  this.FormatValueString=function(value)
50649
50710
  {
@@ -76935,6 +76996,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76935
76996
  { Name:"画图工具", Data:{ ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID, Args:[]}, Checked:this.IsShowDrawToolDialog() },
76936
76997
 
76937
76998
  { Name:"移动筹码图", Data:{ ID:bShowStockChip?JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID, Args:[]}, Checked:bShowStockChip},
76999
+ { Name:JSPopMenu.SEPARATOR_LINE_NAME },
77000
+ {
77001
+ Name:"鼠标形状",
77002
+ SubMenu:
77003
+ [
77004
+ { Name:"默认", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID, Args:["default"]}, Checked:this.DefaultCursor=="default" },
77005
+ { Name:"十字线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID, Args:["crosshair"]}, Checked:this.DefaultCursor=="crosshair" },
77006
+ ]
77007
+ }
76938
77008
  ]
76939
77009
  }
76940
77010
  ];
@@ -134914,6 +134984,8 @@ function JSDialogDrawTool()
134914
134984
  { Title: '趋势线', ClassName: 'hqchart_drawtool icon-draw_trendline', Type:0, Data:{ ID:"趋势线" } },
134915
134985
  { Title: '水平线', ClassName: 'hqchart_drawtool icon-draw_hline', Type:0, Data:{ ID:"水平线" } },
134916
134986
  { Title: '涂鸦线段', ClassName: 'hqchart_drawtool icon-draw_line', Type:0, Data:{ ID:"涂鸦线段" } },
134987
+ { Title: '阻速线', ClassName: 'hqchart_drawtool icon-draw_resline', Type:0, Data:{ ID:"阻速线" } },
134988
+ { Title: '江恩角度线', ClassName: 'hqchart_drawtool icon-jiangenjiaoduxian', Type:0, Data:{ ID:"江恩角度线" } },
134917
134989
  ]
134918
134990
  },
134919
134991
  {
@@ -134925,13 +134997,21 @@ function JSDialogDrawTool()
134925
134997
  { Title: '平行射线', ClassName: 'hqchart_drawtool icon-draw_p_rays_lines', Type:0, Data:{ ID:"平行射线" } },
134926
134998
  { Title: '平行通道', ClassName: 'hqchart_drawtool icon-draw_parallelchannel',Type:0, Data:{ ID:"平行通道" } },
134927
134999
  { Title: '价格通道线', ClassName: 'hqchart_drawtool icon-draw_pricechannel', Type:0, Data:{ ID:"价格通道线" } },
134928
- { Title: '箱型线', ClassName: 'iconfont icon-draw_box', Type:0, Data:{ ID:"箱型线" } },
135000
+ { Title: '箱型线', ClassName: 'hqchart_drawtool icon-draw_box', Type:0, Data:{ ID:"箱型线" } },
134929
135001
  { Title:"不相交通道", ClassName:"hqchart_drawtool icon-buxiangjiaojiao", Type:0, Data:{ ID:"DisjointChannel"} },
134930
- { Title:"平滑顶/底", ClassName:"hqchart_drawtool icon-tubiao_buxiangjiaotongdao", Type:0, Data:{ ID:"FlatTop"}}
135002
+ { Title:"平滑顶/底", ClassName:"hqchart_drawtool icon-tubiao_buxiangjiaotongdao", Type:0, Data:{ ID:"FlatTop"}},
135003
+
135004
+ { Title: "波段线", ClassName:'hqchart_drawtool icon-draw_waveband', Type:0, Data:{ ID:"波段线" } },
135005
+ { Title: "百分比线", ClassName:'hqchart_drawtool icon-PercentageLine', Type:0, Data:{ ID:"百分比线" } },
135006
+ { Title: "黄金分割", ClassName:'hqchart_drawtool icon-GoldenSection', Type:0, Data:{ ID:"黄金分割" } },
135007
+
135008
+ { Title: "线形回归线", ClassName:'hqchart_drawtool icon-linear_3', Type:0, Data:{ ID:"线形回归线" } },
135009
+ { Title: "线形回归带", ClassName:'hqchart_drawtool icon-linear_1', Type:0, Data:{ ID:"线形回归带" } },
135010
+ { Title: "延长线形回归带", ClassName:'hqchart_drawtool icon-linear_2', Type:0, Data:{ ID:"延长线形回归带" } },
134931
135011
  ]
134932
135012
  },
134933
135013
  {
134934
- Title:"多边形",
135014
+ Title:"形状",
134935
135015
  AryChart:
134936
135016
  [
134937
135017
  { Title: '圆弧线', ClassName: 'hqchart_drawtool icon-draw_arc', Type:0, Data:{ ID:"圆弧线" } },
@@ -134950,6 +135030,17 @@ function JSDialogDrawTool()
134950
135030
  { Title: '头肩型', ClassName: 'hqchart_drawtool icon-draw_head_shoulders_bt', Type:0, Data:{ ID:"头肩型" } },
134951
135031
  { Title: '波浪尺', ClassName: 'hqchart_drawtool icon-waveruler', Type:0, Data:{ ID:"波浪尺" } },
134952
135032
  { Title: 'AB波浪尺', ClassName: 'hqchart_drawtool icon-waveruler', Type:0, Data:{ ID:"AB波浪尺" } },
135033
+
135034
+ ]
135035
+ },
135036
+ {
135037
+ Title:"斐波那契",
135038
+ AryChart:
135039
+ [
135040
+ { Title: '斐波那契周期线', ClassName: 'hqchart_drawtool icon-feibonaqizhouqixian', Type:0, Data:{ ID:"斐波那契周期线" } },
135041
+ { Title: '斐波那契楔形', ClassName: 'hqchart_drawtool icon-feibonaqiqixing', Type:0, Data:{ ID:"FibWedge" } },
135042
+ { Title: '斐波那契回撤', ClassName: 'hqchart_drawtool icon-feibonaqihuiche', Type:0, Data:{ ID:"FibRetracement" } },
135043
+ { Title: '斐波那契速度阻力扇', ClassName: 'hqchart_drawtool icon-feibonaqisuduzulishan', Type:0, Data:{ ID:"FibSpeedResistanceFan" } },
134953
135044
  ]
134954
135045
  },
134955
135046
  {
@@ -135476,7 +135567,7 @@ function HQChartScriptWorker()
135476
135567
 
135477
135568
 
135478
135569
 
135479
- var HQCHART_VERSION="1.1.13262";
135570
+ var HQCHART_VERSION="1.1.13268";
135480
135571
 
135481
135572
  function PrintHQChartVersion()
135482
135573
  {