MCPcopy Index your code
hub / github.com/plotly/plotly.js / setupTraceToggle

Function setupTraceToggle

src/components/legend/draw.js:633–668  ·  view source on GitHub ↗
(g, gd, legendId)

Source from the content-addressed store, hash-verified

631}
632
633function setupTraceToggle(g, gd, legendId) {
634 var doubleClickDelay = gd._context.doubleClickDelay;
635 var newMouseDownTime;
636 var numClicks = 1;
637
638 var traceToggle = Lib.ensureSingle(g, 'rect', legendId + 'toggle', function(s) {
639 if(!gd._context.staticPlot) {
640 s.style('cursor', 'pointer').attr('pointer-events', 'all');
641 }
642 s.call(Color.fill, 'rgba(0,0,0,0)');
643 });
644
645 if(gd._context.staticPlot) return;
646
647 traceToggle.on('mousedown', function() {
648 newMouseDownTime = (new Date()).getTime();
649 if(newMouseDownTime - gd._legendMouseDownTime < doubleClickDelay) {
650 // in a click train
651 numClicks += 1;
652 } else {
653 // new click train
654 numClicks = 1;
655 gd._legendMouseDownTime = newMouseDownTime;
656 }
657 });
658 traceToggle.on('mouseup', function() {
659 if(gd._dragged || gd._editing) return;
660 var legend = gd._fullLayout[legendId];
661
662 if((new Date()).getTime() - gd._legendMouseDownTime > doubleClickDelay) {
663 numClicks = Math.max(numClicks - 1, 1);
664 }
665
666 clickOrDoubleClick(gd, legend, g, numClicks, d3.event);
667 });
668}
669
670function setupTitleToggle(scrollBox, gd, legendObj, legendId) {
671 // For now, skip title click for legends containing pie-like traces

Callers

nothing calls this directly

Calls 1

clickOrDoubleClickFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…