(gd, legend, legendItem, numClicks, evt)
| 515 | } |
| 516 | |
| 517 | function clickOrDoubleClick(gd, legend, legendItem, numClicks, evt) { |
| 518 | var fullLayout = gd._fullLayout; |
| 519 | var trace = legendItem.data()[0][0].trace; |
| 520 | |
| 521 | var itemClick = legend.itemclick; |
| 522 | var itemDoubleClick = legend.itemdoubleclick; |
| 523 | |
| 524 | var evtData = { |
| 525 | event: evt, |
| 526 | node: legendItem.node(), |
| 527 | curveNumber: trace.index, |
| 528 | expandedIndex: trace.index, |
| 529 | data: gd.data, |
| 530 | layout: gd.layout, |
| 531 | frames: gd._transitionData._frames, |
| 532 | config: gd._context, |
| 533 | fullData: gd._fullData, |
| 534 | fullLayout: fullLayout |
| 535 | }; |
| 536 | |
| 537 | if(trace._group) { |
| 538 | evtData.group = trace._group; |
| 539 | } |
| 540 | if(Registry.traceIs(trace, 'pie-like')) { |
| 541 | evtData.label = legendItem.datum()[0].label; |
| 542 | } |
| 543 | var clickVal = Events.triggerHandler(gd, 'plotly_legendclick', evtData); |
| 544 | if(numClicks === 1) { |
| 545 | if(clickVal === false) return; |
| 546 | legend._clickTimeout = setTimeout(function() { |
| 547 | if(!gd._fullLayout) return; |
| 548 | if(itemClick) handleItemClick(legendItem, gd, legend, itemClick); |
| 549 | }, gd._context.doubleClickDelay); |
| 550 | } else if(numClicks === 2) { |
| 551 | if(legend._clickTimeout) clearTimeout(legend._clickTimeout); |
| 552 | gd._legendMouseDownTime = 0; |
| 553 | |
| 554 | var dblClickVal = Events.triggerHandler(gd, 'plotly_legenddoubleclick', evtData); |
| 555 | // Activate default double click behaviour only when both single click and double click values are not false |
| 556 | if(dblClickVal !== false && clickVal !== false && itemDoubleClick) { |
| 557 | handleItemClick(legendItem, gd, legend, itemDoubleClick); |
| 558 | } |
| 559 | } |
| 560 | } |
| 561 | |
| 562 | function drawTexts(g, gd, legendObj) { |
| 563 | var legendId = helpers.getId(legendObj); |
no outgoing calls
no test coverage detected
searching dependent graphs…