hqchart 1.1.15455 → 1.1.15474

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.
@@ -6840,6 +6840,15 @@ JSChart.GetShortSymbol=function(symbol)
6840
6840
  return symbol.slice(0,pos);
6841
6841
  }
6842
6842
 
6843
+ JSChart.CancelEvent=function(e)
6844
+ {
6845
+ if (!e) return;
6846
+
6847
+ if (e.preventDefault) e.preventDefault();
6848
+ if (e.stopPropagation) e.stopPropagation();
6849
+ e.returnValue=false;
6850
+ }
6851
+
6843
6852
 
6844
6853
  var JSCHART_EVENT_ID=
6845
6854
  {
@@ -6928,9 +6937,6 @@ var JSCHART_EVENT_ID=
6928
6937
  ON_DRAG_SUB_SELECT_RECT:66, //拖拽区间选择子区域
6929
6938
  ON_DRAG_SUB_SELECT_RECT_MOUSEUP:67, //拖拽区间选择子区域鼠标松开
6930
6939
 
6931
- ON_KEYBOARD_SELECTED:68, //键盘精灵选中回车
6932
- ON_KEYBOARD_MOUSEUP:69,
6933
-
6934
6940
  ON_CLICK_DRAWPICTURE_BUTTON:70, //画图工具按钮
6935
6941
  ON_FINISH_MOVE_DRAWPICTURE:71, //画图工具移动完成
6936
6942
 
@@ -7076,6 +7082,15 @@ var JSCHART_EVENT_ID=
7076
7082
 
7077
7083
  //工具条
7078
7084
  ON_CLICK_STATUSBAR_ITEM:301,
7085
+ ON_RCLICK_STATUSBAR_ITEM:302,
7086
+
7087
+ //5档买卖
7088
+ ON_CLICK_STOCKINFO_ITEM:350,
7089
+ ON_RCLICK_STOCKINFO_ITEM:351,
7090
+
7091
+ ON_KEYBOARD_SHOW:350, //显示键盘精灵
7092
+ ON_KEYBOARD_SELECTED:351, //键盘精灵选中回车
7093
+ ON_KEYBOARD_MOUSEUP:352,
7079
7094
  }
7080
7095
 
7081
7096
  var JSCHART_OPERATOR_ID=
@@ -31518,6 +31533,7 @@ function IChartPainting()
31518
31533
  if (!this.IsShow || this.ChartFrame.IsMinSize) return;
31519
31534
  var bHScreen=(this.ChartFrame.IsHScreen===true);
31520
31535
  if (bHScreen) return;
31536
+ if (!this.Data) return;
31521
31537
 
31522
31538
  var isMinute=this.IsMinuteFrame();
31523
31539
  var dataWidth=this.ChartFrame.DataWidth;
@@ -31658,6 +31674,7 @@ function IChartPainting()
31658
31674
  if (!this.IsShow || this.ChartFrame.IsMinSize) return null;
31659
31675
  var bHScreen=(this.ChartFrame.IsHScreen===true);
31660
31676
  if (bHScreen) return null;
31677
+ if (!this.Data) return null;
31661
31678
 
31662
31679
  var dataWidth=this.ChartFrame.DataWidth;
31663
31680
  var distanceWidth=this.ChartFrame.DistanceWidth;
@@ -107195,6 +107212,24 @@ var MARKET_SUFFIX_NAME=
107195
107212
  return false;
107196
107213
  },
107197
107214
 
107215
+ //是否包含前缀
107216
+ IsPrefixIncludes:function(symbol, aryPrefix)
107217
+ {
107218
+ if (!symbol) return false;
107219
+ var shortSymbol=this.GetShortSymbol(symbol);
107220
+ if (!shortSymbol) return false;
107221
+ shortSymbol=shortSymbol.toUpperCase();
107222
+
107223
+ for(var i=0;i<aryPrefix.length;++i)
107224
+ {
107225
+ var strValue=aryPrefix[i];
107226
+ if (!strValue) continue;
107227
+ if (shortSymbol.search(strValue)===0) return true;
107228
+ }
107229
+
107230
+ return false;
107231
+ },
107232
+
107198
107233
  IsChinaFutures:function(upperSymbol) //是否是国内期货 /期权
107199
107234
  {
107200
107235
  if (!upperSymbol) return false;
@@ -107309,15 +107344,26 @@ var MARKET_SUFFIX_NAME=
107309
107344
  return false;
107310
107345
  },
107311
107346
 
107347
+ //北交所股票代码全面启用“920”开头的六位数编码规则(如 920XXX),已于 2025 年 10 月 9 日完成存量与增量股票的统一切换,标志着其与新三板代码的脱钩。
107348
+ // 新代码通常将原 43、83、87 开头的旧代码前三位变更为 920,后三位保持不变
107312
107349
  IsBJStock:function(symbol) //北交所股票
107313
107350
  {
107314
107351
  if (!symbol) return false;
107315
107352
  var upperSymbol=symbol.toUpperCase();
107316
107353
  if (!this.IsBJ(upperSymbol)) return false;
107317
107354
 
107318
- var value=upperSymbol.charAt(0);
107355
+ if (upperSymbol.charAt(0)=='9' && upperSymbol.charAt(1)=='2' && upperSymbol.charAt(2)=='0') return true;
107356
+
107357
+ return false;
107358
+ },
107359
+
107360
+ IsBJIndex:function(symbol) //北交所指数 北交所指数代码通常以“899”开头,采用6位数字序列
107361
+ {
107362
+ if (!symbol) return false;
107363
+ var upperSymbol=symbol.toUpperCase();
107364
+ if (!this.IsBJ(upperSymbol)) return false;
107319
107365
 
107320
- if (value=='4' || value=='8') return true;
107366
+ if (upperSymbol.charAt(0)=='8' && upperSymbol.charAt(1)=='9' && upperSymbol.charAt(2)=='9') return true;
107321
107367
 
107322
107368
  return false;
107323
107369
  },
@@ -107333,11 +107379,11 @@ var MARKET_SUFFIX_NAME=
107333
107379
  return false;
107334
107380
  },
107335
107381
 
107336
- IsSHGEM:function(symbol) //创业板(growth enterprise market) 30开头
107382
+ IsSZGEM:function(symbol) //创业板(growth enterprise market) 30开头
107337
107383
  {
107338
107384
  if (!symbol) return false;
107339
107385
  var upperSymbol=symbol.toUpperCase();
107340
- if (!this.IsSH(upperSymbol)) return false;
107386
+ if (!this.IsSZ(upperSymbol)) return false;
107341
107387
  if (upperSymbol.charAt(0)=='3' && upperSymbol.charAt(1)=='0')
107342
107388
  return true;
107343
107389
 
@@ -107481,7 +107527,7 @@ var MARKET_SUFFIX_NAME=
107481
107527
  {
107482
107528
  if (!this.IsSHSZStockA(symbol)) return null;
107483
107529
  if (this.IsSHStockSTAR(symbol)) return {Max:0.2 , Min:-0.2}; //科创板 [20% - -20%]
107484
- if (this.IsSHGEM(symbol)) return { Max:0.2 , Min:-0.2}; //创业板 [20% - -20%]
107530
+ if (this.IsSZGEM(symbol)) return { Max:0.2 , Min:-0.2}; //创业板 [20% - -20%]
107485
107531
 
107486
107532
  if (!name) return null;
107487
107533
  if (name.indexOf('ST')>=0) return { Max:0.05, Min:-0.05 }; //ST 股票 [5% - -5%]
@@ -109398,6 +109444,7 @@ function FuturesTimeData()
109398
109444
  [MARKET_SUFFIX_NAME.SHFE + '-AO', {Time:4,Decimal:0,Name:'氧化铝'}],
109399
109445
  [MARKET_SUFFIX_NAME.SHFE + '-BR', {Time:6,Decimal:0,Name:'合成橡胶'}],
109400
109446
  [MARKET_SUFFIX_NAME.SHFE + '-AD', {Time:4,Decimal:0,Name:"铝合金"}],
109447
+ [MARKET_SUFFIX_NAME.SHFE + '-OP', {Time:6,Decimal:0,Name:"胶版印刷纸"}],
109401
109448
 
109402
109449
  //上期所-能源
109403
109450
  [MARKET_SUFFIX_NAME.SHFE + '-NR', {Time:6,Decimal:1,Name:'20号胶'}],
@@ -110959,59 +111006,6 @@ function GetfloatPrecision(symbol) //获取小数位数
110959
111006
  return defaultfloatPrecision;
110960
111007
  }
110961
111008
 
110962
- //把不连续的分时数据转成连续的分时数据
110963
- function GenerateMinuteStockJsonData(data)
110964
- {
110965
- var stock =
110966
- {
110967
- symbol:data.symbol, name:data.name,time:data.time, date:data.date,
110968
- price:data.price, open:data.open, yclose:data.yclose, high:data.high, low:data.low, vol:data.vol,amount:data.amount,
110969
- minute:[]
110970
- };
110971
-
110972
- var mapMinute=new Map();
110973
- for(var i in data.minute)
110974
- {
110975
- var item=data.minute[i];
110976
- mapMinute.set(item.time,item);
110977
- }
110978
-
110979
- var timeData=g_MinuteTimeStringData.GetTimeData(stock.symbol);
110980
- for(var i in timeData) //根据交易时间产生数据
110981
- {
110982
- var time=timeData[i];
110983
- var minuteItem={ time:time, vaild:false };
110984
- if (mapMinute.has(time))
110985
- {
110986
- var find=mapMinute.get(time);
110987
- minuteItem.vaild=true;
110988
- minuteItem.price=find.price;
110989
- minuteItem.open=find.open;
110990
- minuteItem.high=find.high;
110991
- minuteItem.low=find.low;
110992
- minuteItem.avprice=find.avprice;
110993
- minuteItem.vol=find.vol;
110994
- minuteItem.amount=find.amount;
110995
- if (IFrameSplitOperator.IsNumber(find.increase)) minuteItem.increase=find.increase;
110996
- if (IFrameSplitOperator.IsNumber(find.risefall)) minuteItem.risefall=find.risefall;
110997
- if (IFrameSplitOperator.IsNumber(find.position)) minuteItem.position=find.position;
110998
- }
110999
- stock.minute.push(minuteItem);
111000
- }
111001
-
111002
- var vaildCount=0;
111003
- for(var i=stock.minute.length-1;i>=0;--i)
111004
- {
111005
- vaildCount=i+1;
111006
- var item=stock.minute[i];
111007
- if (item.vaild==true) break;
111008
- }
111009
-
111010
- stock.minute=stock.minute.slice(0,vaildCount); //去掉最后无用的数据
111011
-
111012
- return stock;
111013
- }
111014
-
111015
111009
  function GetLocalTime(i) //得到标准时区的时间的函数
111016
111010
  {
111017
111011
  if (typeof i !== 'number') return;
@@ -143122,6 +143116,7 @@ function JSReportChartContainer(uielement)
143122
143116
  this.DestroyMinuteChartTooltip();
143123
143117
  this.DestroyKLineChartTooltip();
143124
143118
  this.DestroyFloatTooltip();
143119
+ this.DestroyPopMenu();
143125
143120
  }
143126
143121
 
143127
143122
  this.StopAutoDragScrollTimer=function()
@@ -143143,6 +143138,14 @@ function JSReportChartContainer(uielement)
143143
143138
  this.JSPopMenu.Inital();
143144
143139
  }
143145
143140
 
143141
+ this.DestroyPopMenu=function()
143142
+ {
143143
+ if (!this.JSPopMenu) return;
143144
+
143145
+ this.JSPopMenu.Destroy();
143146
+ this.JSPopMenu=null;
143147
+ }
143148
+
143146
143149
  this.InitalMinuteChartTooltip=function(option)
143147
143150
  {
143148
143151
  if (this.TooltipMinuteChart) return;
@@ -160818,6 +160821,7 @@ function JSDialogDrawTool()
160818
160821
  this.Close=function(e)
160819
160822
  {
160820
160823
  if (!this.DivDialog) return;
160824
+ if (!this.IsShow()) return;
160821
160825
 
160822
160826
  this.DivDialog.style.visibility='hidden';
160823
160827
 
@@ -161163,6 +161167,8 @@ function JSDialogModifyDraw()
161163
161167
  if (!this.DivDialog) return;
161164
161168
 
161165
161169
  this.ChartPicture=null;
161170
+ if (!this.IsShow()) return;
161171
+
161166
161172
  this.DivDialog.style.visibility='hidden';
161167
161173
 
161168
161174
  if (this.HQChart) this.HQChart.RestoreFocus(this.RestoreFocusDelay);
@@ -163308,6 +163314,21 @@ function JSPopKeyboard()
163308
163314
  var x=xRight-width;
163309
163315
  var y=ybottom-height;
163310
163316
 
163317
+ if (this.Keyboard.JSChart && this.Keyboard.JSChart.JSChartContainer)
163318
+ {
163319
+ var event=this.Keyboard.JSChart.JSChartContainer.GetEventCallback(JSCHART_EVENT_ID.ON_KEYBOARD_SHOW);
163320
+ if (event && event.Callback)
163321
+ {
163322
+ var data={ PreventDefault:false, Y:y, X:x, Height:height, Width:width };
163323
+ event.Callback(event, data, this);
163324
+ if (data.PreventDefault) return;
163325
+
163326
+ //修改显示位置
163327
+ x=data.X;
163328
+ y=data.Y;
163329
+ }
163330
+ }
163331
+
163311
163332
  this.DivDialog.style.visibility='visible';
163312
163333
  this.DivDialog.style.top = y + "px";
163313
163334
  this.DivDialog.style.left = x + "px";
@@ -163333,6 +163354,19 @@ function JSPopKeyboard()
163333
163354
  return this.DivDialog.style.visibility==='visible';
163334
163355
  }
163335
163356
 
163357
+ this.PopKeyboard=function(search)
163358
+ {
163359
+ if (!this.DivDialog) return;
163360
+ if (this.IsShow()) return;
163361
+
163362
+ this.Show();
163363
+ this.InputDOM.focus();
163364
+ if (this.InputDOM.value=="")
163365
+ {
163366
+ if (search) this.InputDOM.value=search;
163367
+ }
163368
+ }
163369
+
163336
163370
  this.OnGlobalKeydown=function(event)
163337
163371
  {
163338
163372
  if (!this.DivDialog) return;
@@ -169094,10 +169128,19 @@ function JSStatusBarChartContainer(uielement)
169094
169128
  var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
169095
169129
  var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
169096
169130
 
169097
- if (e && e.button==0) //左键点击
169131
+ if (e)
169098
169132
  {
169099
- var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
169100
- this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICK_STATUSBAR_ITEM, ptClick, e);
169133
+ if (e.button==0) //左键点击
169134
+ {
169135
+ var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
169136
+ this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICK_STATUSBAR_ITEM, ptClick, e);
169137
+ }
169138
+ else if (e.button==2) //右键点击
169139
+ {
169140
+ this.HideAllTooltip();
169141
+ var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
169142
+ this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_RCLICK_STATUSBAR_ITEM, ptClick, e);
169143
+ }
169101
169144
  }
169102
169145
  }
169103
169146
 
@@ -169183,7 +169226,7 @@ function JSStatusBarChartContainer(uielement)
169183
169226
  {
169184
169227
  if (toolTip.Data)
169185
169228
  {
169186
- var data= { X:e.clientX, Y:e.clientY, Tooltip:toolTip };
169229
+ var data= { X:e.clientX, Y:e.clientY, Tooltip:toolTip, e:e };
169187
169230
  event.Callback(event, data, this);
169188
169231
  return true;
169189
169232
  }
@@ -169912,6 +169955,7 @@ function JSStockInfoChart(divElement)
169912
169955
  this.DivElement.JSChart=this; //div中保存一份
169913
169956
 
169914
169957
  if (option.EnableResize==true) this.CreateResizeListener();
169958
+ if (option.EnablePopMenuV2===true) chart.InitalPopMenu();
169915
169959
 
169916
169960
  if (option.Symbol)
169917
169961
  {
@@ -170113,6 +170157,8 @@ function JSStockInfoChartContainer(uielement)
170113
170157
  this.AutoUpdateTimer=null;
170114
170158
  this.AutoUpdateFrequency=15000; //15秒更新一次数据
170115
170159
 
170160
+ this.JSPopMenu; //内置菜单
170161
+
170116
170162
  this.UIElement=uielement;
170117
170163
 
170118
170164
  this.IsDestroy=false; //是否已经销毁了
@@ -170121,6 +170167,8 @@ function JSStockInfoChartContainer(uielement)
170121
170167
  {
170122
170168
  this.IsDestroy=true;
170123
170169
  this.StopAutoUpdate();
170170
+
170171
+ this.DestroyPopMenu();
170124
170172
  }
170125
170173
 
170126
170174
  //设置事件回调
@@ -170133,6 +170181,37 @@ function JSStockInfoChartContainer(uielement)
170133
170181
  this.mapEvent.set(object.event,data);
170134
170182
  }
170135
170183
 
170184
+ this.RemoveEventCallback=function(eventid)
170185
+ {
170186
+ if (!this.mapEvent.has(eventid)) return;
170187
+
170188
+ this.mapEvent.delete(eventid);
170189
+ }
170190
+
170191
+ this.GetEventCallback=function(id) //获取事件回调
170192
+ {
170193
+ if (!this.mapEvent.has(id)) return null;
170194
+ var item=this.mapEvent.get(id);
170195
+ return item;
170196
+ }
170197
+
170198
+ this.InitalPopMenu=function() //初始化弹出窗口
170199
+ {
170200
+ if (this.JSPopMenu) return;
170201
+
170202
+ this.JSPopMenu=new JSPopMenu(); //内置菜单
170203
+ this.JSPopMenu.Inital();
170204
+ }
170205
+
170206
+ this.DestroyPopMenu=function()
170207
+ {
170208
+ if (!this.JSPopMenu) return;
170209
+
170210
+ this.JSPopMenu.Destroy();
170211
+ this.JSPopMenu=null;
170212
+ }
170213
+
170214
+
170136
170215
  this.ClearData=function()
170137
170216
  {
170138
170217
  this.Data.Name=null;
@@ -170174,14 +170253,15 @@ function JSStockInfoChartContainer(uielement)
170174
170253
  {
170175
170254
  this.CancelAutoUpdate();
170176
170255
  this.ClearData();
170256
+ this.ChartClearMouseOnData();
170177
170257
  this.Symbol=symbol;
170178
170258
  this.Data.Symbol=symbol;
170179
170259
 
170180
170260
  if (option)
170181
170261
  {
170182
- if (IFrameSplitOperator.IsNonEmptyArray(option.Column)) this.SetColumn(option.Column);
170262
+ if (IFrameSplitOperator.IsArray(option.Column)) this.SetColumn(option.Column);
170183
170263
  if (IFrameSplitOperator.IsNumber(option.BuySellCount)) this.SetBuySellCount(option.BuySellCount);
170184
- if (IFrameSplitOperator.IsNonEmptyArray(option.MouseOnKey)) this.SetMouseOnKey(option.MouseOnKey);
170264
+ if (IFrameSplitOperator.IsArray(option.MouseOnKey)) this.SetMouseOnKey(option.MouseOnKey);
170185
170265
  }
170186
170266
 
170187
170267
  this.Draw();
@@ -170346,6 +170426,20 @@ function JSStockInfoChartContainer(uielement)
170346
170426
  this.ClickDownPoint={ X:e.clientX, Y:e.clientY };
170347
170427
  var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
170348
170428
  var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
170429
+
170430
+ if (e)
170431
+ {
170432
+ if (e.button==0) //左键点击
170433
+ {
170434
+ var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
170435
+ this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICK_STOCKINFO_ITEM, ptClick, e);
170436
+ }
170437
+ else if (e.button==2) //右键点击
170438
+ {
170439
+ var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
170440
+ this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_RCLICK_STOCKINFO_ITEM, ptClick, e);
170441
+ }
170442
+ }
170349
170443
  }
170350
170444
 
170351
170445
  this.UIOnContextMenu=function(e)
@@ -170356,6 +170450,87 @@ function JSStockInfoChartContainer(uielement)
170356
170450
  if (e.stopPropagation) e.stopPropagation();
170357
170451
  e.returnValue=false;
170358
170452
  }
170453
+
170454
+ var x = e.clientX-this.UIElement.getBoundingClientRect().left;
170455
+ var y = e.clientY-this.UIElement.getBoundingClientRect().top;
170456
+
170457
+ this.OnRightMenu(x, y, e);
170458
+ }
170459
+
170460
+ this.OnRightMenu=function(x,y,e)
170461
+ {
170462
+ if (!this.JSPopMenu) return;
170463
+
170464
+ var pixelTatio = GetDevicePixelRatio();
170465
+ var toolTip=new TooltipData();
170466
+ var data=null;
170467
+ for(var i=0;i<this.ChartPaint.length;++i)
170468
+ {
170469
+ var item=this.ChartPaint[i];
170470
+ if (item.GetTooltipData(x*pixelTatio,y*pixelTatio,toolTip))
170471
+ {
170472
+ if (toolTip.Data)
170473
+ {
170474
+ data= { Cell:toolTip.Data};
170475
+ break;
170476
+ }
170477
+ }
170478
+ }
170479
+
170480
+ if (!data) return;
170481
+
170482
+ data.e=e;
170483
+ var menuData={ Menu:null, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
170484
+ menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
170485
+
170486
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_RIGHT_MENU);
170487
+ if (event && event.Callback)
170488
+ {
170489
+ var sendData={ MenuData:menuData, Data:data };
170490
+ event.Callback(event, sendData, this);
170491
+ }
170492
+
170493
+ if (menuData.Menu) this.PopupMenuByRClick(menuData, x, y);
170494
+ }
170495
+
170496
+ //右键菜单
170497
+ this.PopupMenuByRClick=function(menuData, x, y)
170498
+ {
170499
+ if (!this.JSPopMenu) return;
170500
+
170501
+ var rtClient=this.UIElement.getBoundingClientRect();
170502
+ var rtScroll=GetScrollPosition();
170503
+
170504
+ x+=rtClient.left+rtScroll.Left;
170505
+ y+=rtClient.top+rtScroll.Top;
170506
+
170507
+ this.JSPopMenu.CreatePopMenu(menuData);
170508
+ this.JSPopMenu.PopupMenuByRight(x,y);
170509
+ }
170510
+
170511
+ //点击右键菜单
170512
+ this.OnClickRightMenu=function(data)
170513
+ {
170514
+ JSConsole.Chart.Log('[JSStockInfoChartContainer::OnClickRightMenu] ',data);
170515
+ if (!data || !data.Data) return;
170516
+
170517
+ var cmdID=data.Data.ID; //命令ID
170518
+ var aryArgs=data.Data.Args; //参数
170519
+
170520
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND); //回调通知外部
170521
+ if (event && event.Callback)
170522
+ {
170523
+ var data={ PreventDefault:false, CommandID:cmdID, Args:aryArgs, SrcData:data };
170524
+ event.Callback(event,data,this);
170525
+ if (data.PreventDefault) return;
170526
+ }
170527
+
170528
+ this.ExecuteMenuCommand(cmdID, aryArgs);
170529
+ }
170530
+
170531
+ this.ExecuteMenuCommand=function(cmdID, aryArgs)
170532
+ {
170533
+
170359
170534
  }
170360
170535
 
170361
170536
  this.UIOnMouseMove=function(e)
@@ -170385,6 +170560,36 @@ function JSStockInfoChartContainer(uielement)
170385
170560
  return false;
170386
170561
  }
170387
170562
 
170563
+ this.TryClickPaintEvent=function(eventID, ptClick, e)
170564
+ {
170565
+ var event=this.GetEventCallback(eventID);
170566
+ if (!event) return false;
170567
+
170568
+ if (ptClick.X==e.clientX && ptClick.Y==e.clientY)
170569
+ {
170570
+ var pixelTatio = GetDevicePixelRatio();
170571
+ var x = (e.clientX-uielement.getBoundingClientRect().left)*pixelTatio;
170572
+ var y = (e.clientY-uielement.getBoundingClientRect().top)*pixelTatio;
170573
+
170574
+ var toolTip=new TooltipData();
170575
+ for(var i=0;i<this.ChartPaint.length;++i)
170576
+ {
170577
+ var item=this.ChartPaint[i];
170578
+ if (item.GetTooltipData(x,y,toolTip))
170579
+ {
170580
+ if (toolTip.Data)
170581
+ {
170582
+ var data= { X:e.clientX, Y:e.clientY, Tooltip:toolTip };
170583
+ event.Callback(event, data, this);
170584
+ return true;
170585
+ }
170586
+ }
170587
+ }
170588
+ }
170589
+
170590
+ return false;
170591
+ }
170592
+
170388
170593
  this.UIOnMouseleave=function(e)
170389
170594
  {
170390
170595
  var option={ Update:false }
@@ -170670,7 +170875,7 @@ function ChartStockData()
170670
170875
 
170671
170876
  this.ClearMouseOnData=function(option)
170672
170877
  {
170673
- if (!this.MouseOnItem)
170878
+ if (this.MouseOnItem)
170674
170879
  {
170675
170880
  this.MouseOnItem=null;
170676
170881
  if (option) option.Update=true; //需要更新
@@ -170749,6 +170954,26 @@ function ChartStockData()
170749
170954
  return false;
170750
170955
  }
170751
170956
 
170957
+ this.GetTooltipData=function(x,y,tooltip)
170958
+ {
170959
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect)) return false;
170960
+
170961
+ for(var i=0;i<this.AryCellRect.length;++i)
170962
+ {
170963
+ var item=this.AryCellRect[i];
170964
+ var rect=item.Rect;
170965
+ if (Path2DHelper.PtInRect(x,y, rect))
170966
+ {
170967
+ tooltip.Data=item;
170968
+ tooltip.ChartPaint=this;
170969
+ tooltip.Type=151;
170970
+ return true;
170971
+ }
170972
+ }
170973
+
170974
+ return false;
170975
+ }
170976
+
170752
170977
  this.Draw=function()
170753
170978
  {
170754
170979
  this.AryCellRect=[];
@@ -171250,7 +171475,7 @@ function ChartStockData()
171250
171475
 
171251
171476
 
171252
171477
 
171253
- var HQCHART_VERSION="1.1.15454";
171478
+ var HQCHART_VERSION="1.1.15473";
171254
171479
 
171255
171480
  function PrintHQChartVersion()
171256
171481
  {