@@ -11,6 +11,7 @@ import {
1111 getAxisTitle ,
1212 axisIdToAxisName ,
1313} from 'lib' ;
14+ import { TRACE_TO_AXIS } from '../../lib/constants' ;
1415
1516export const AxisAnchorDropdown = connectToContainer ( UnconnectedDropdown , {
1617 modifyPlotProps : ( props , context , plotProps ) => {
@@ -539,16 +540,12 @@ export const HoverInfo = connectToContainer(UnconnectedFlaglist, {
539540 ] . includes ( container . type )
540541 ) {
541542 options . push ( { label : _ ( 'Z' ) , value : 'z' } ) ;
542- }
543-
544- if ( container . type === 'choropleth' ) {
543+ } else if ( container . type === 'choropleth' ) {
545544 options = [
546545 { label : _ ( 'Location' ) , value : 'location' } ,
547546 { label : _ ( 'Values' ) , value : 'z' } ,
548547 ] ;
549- }
550-
551- if ( container . type === 'scattergeo' ) {
548+ } else if ( container . type === 'scattergeo' ) {
552549 if ( container . locations ) {
553550 options = [ { label : _ ( 'Location' ) , value : 'location' } ] ;
554551 } else if ( container . lat || container . lon ) {
@@ -557,40 +554,30 @@ export const HoverInfo = connectToContainer(UnconnectedFlaglist, {
557554 { label : _ ( 'Latitude' ) , value : 'lat' } ,
558555 ] ;
559556 }
560- }
561-
562- if ( container . type === 'scattermapbox' ) {
557+ } else if ( container . type === 'scattermapbox' ) {
563558 options = [
564559 { label : _ ( 'Longitude' ) , value : 'loc' } ,
565560 { label : _ ( 'Latitude' ) , value : 'lat' } ,
566561 ] ;
567- }
568-
569- if ( container . type === 'scatterternary' ) {
562+ } else if ( container . type === 'scatterternary' ) {
570563 options = [
571564 { label : _ ( 'A' ) , value : 'a' } ,
572565 { label : _ ( 'B' ) , value : 'b' } ,
573566 { label : _ ( 'C' ) , value : 'c' } ,
574567 ] ;
575- }
576-
577- if ( container . type === 'table' ) {
578- plotProps . isVisible = false ;
579- }
580-
581- if ( [ 'scatterpolar' , 'scatterpolargl' ] . includes ( container . type ) ) {
568+ } else if ( [ 'scatterpolar' , 'scatterpolargl' ] . includes ( container . type ) ) {
582569 options = [
583570 { label : _ ( 'R' ) , value : 'r' } ,
584571 { label : _ ( 'Theta' ) , value : 'theta' } ,
585572 ] ;
586- }
587-
588- if ( container . type === 'pie' ) {
573+ } else if ( container . type === 'pie' ) {
589574 options = [
590575 { label : _ ( 'Label' ) , value : 'label' } ,
591576 { label : _ ( 'Value' ) , value : 'value' } ,
592577 { label : _ ( 'Percent' ) , value : 'percent' } ,
593578 ] ;
579+ } else if ( container . type === 'table' ) {
580+ plotProps . isVisible = false ;
594581 }
595582
596583 if ( container . text ) {
@@ -625,9 +612,7 @@ export const FillDropdown = connectToContainer(UnconnectedDropdown, {
625612 { label : _ ( 'To Self' ) , value : 'toself' } ,
626613 { label : _ ( 'To Next' ) , value : 'tonext' } ,
627614 ] ;
628- }
629-
630- if (
615+ } else if (
631616 context . container . type === 'scattergeo' ||
632617 context . container . type === 'scattermapbox'
633618 ) {
@@ -641,3 +626,55 @@ export const FillDropdown = connectToContainer(UnconnectedDropdown, {
641626 plotProps . clearable = false ;
642627 } ,
643628} ) ;
629+
630+ export const HoveronDropdown = connectToContainer ( UnconnectedDropdown , {
631+ modifyPlotProps : ( props , context , plotProps ) => {
632+ const { localize : _ } = context ;
633+
634+ let options ;
635+ if ( context . container . type === 'box' ) {
636+ options = [
637+ { label : _ ( 'Boxes' ) , value : 'boxes' } ,
638+ { label : _ ( 'Points' ) , value : 'points' } ,
639+ { label : _ ( 'Boxes and Points' ) , value : 'boxes+points' } ,
640+ ] ;
641+ } else if ( context . container . type === 'violin' ) {
642+ options = [
643+ { label : _ ( 'Violins' ) , value : 'violins' } ,
644+ { label : _ ( 'Points' ) , value : 'points' } ,
645+ { label : _ ( 'KDE' ) , value : 'kde' } ,
646+ { label : _ ( 'Violins and Points' ) , value : 'violins+points' } ,
647+ { label : _ ( 'Violins, Points and KDE' ) , value : 'violins+points+kde' } ,
648+ ] ;
649+ } else {
650+ options = [
651+ { label : _ ( 'Points' ) , value : 'points' } ,
652+ { label : _ ( 'Fills' ) , value : 'fills' } ,
653+ { label : _ ( 'Points and Fills' ) , value : 'points+fills' } ,
654+ ] ;
655+ }
656+
657+ plotProps . options = options ;
658+ plotProps . clearable = false ;
659+ } ,
660+ } ) ;
661+
662+ export const HovermodeDropdown = connectToContainer ( UnconnectedDropdown , {
663+ modifyPlotProps : ( props , context , plotProps ) => {
664+ const { localize : _ } = context ;
665+
666+ plotProps . options =
667+ context . container . xaxis && Object . keys ( context . container . xaxis ) . length > 0
668+ ? [
669+ { label : _ ( 'Closest' ) , value : 'closest' } ,
670+ { label : _ ( 'X Axis' ) , value : 'x' } ,
671+ { label : _ ( 'Y Axis' ) , value : 'y' } ,
672+ { label : _ ( 'Disable' ) , value : false } ,
673+ ]
674+ : [
675+ { label : _ ( 'Closest' ) , value : 'closest' } ,
676+ { label : _ ( 'Disable' ) , value : false } ,
677+ ] ;
678+ plotProps . clearable = false ;
679+ } ,
680+ } ) ;
0 commit comments