
    Le                     J    d dl mZ d dlmZmZ d dlmZ  G d de          ZdS )   )Store)	NdOverlayOverlay)OverlaySelectionDisplayc                       e Zd ZdZd Zd ZdS )PlotlyOverlaySelectionDisplayzH
    Overlay selection display subclass for use with plotly backend
    c                    t          j        d          }|t          |          j        f         d         }|j        dv rt          d          }ni }t          |          }dv r||d<   n	dv r||d<   |)|                    |                     |                     nX| j        D ]P}	|j	        
                    d	          d
         
                    |	d           }
|
r|                    |	|
i           QdD ]}||v r|v r||         ||<   fd|                                D             } |j	        dddd|S )NplotlybackendstyleselectedpointsF)r   opacityalpha)group    )cmapcolorbarc                 $    i | ]\  }}|v 	||S  r   ).0kvalloweds      Clib/python3.11/site-packages/holoviews/plotting/plotly/selection.py
<dictcomp>zFPlotlyOverlaySelectionDisplay._build_element_layer.<locals>.<dictcomp>*   s$    IIITQALLAqLLL    Tcloner   r   )r   optionstypenameallowed_keywordsdictupdate_get_color_kwargcolor_propsoptsgetitems)selfelementlayer_colorlayer_alphar(   backend_optionsstyle_optionsshared_optsmerged_opts
color_propcurrent_coloroptfilteredr   s                @r   _build_element_layerz2PlotlyOverlaySelectionDisplay._build_element_layer   s   -999'g);(=>wG0w&&e444KKK;''%0K	""#.K "t44[AABBBB #. D D
 ' 0 0w 0 ? ? B F FzSW X X  D&&
M'BCCC' 	- 	-Cd{{sg~~#'9C IIII[%6%6%8%8IIIw|E$EEHEEEr   c                    ddl m} t          j        d          }d }t	          |t
                    rt          |j                  j        }nxt	          |t                    rOt          |
                    d                    j        }t          |
                    d                    j        }nt          |          j        }||f         d         }|j        }i }	|dk    r:|r ||d	d
          d         }
d|v r|pd} ||d	d
          d         }
d|v rd|	d<   n|pd} ||d	d
          d         }
d|v r|r|
|	d<   nd|v r|r|
|	d<   d|v rd|	d<    |j        |fddd|	}|r|dk    r|                    |dd          }|S )N   )linear_gradientr
   r   r      r   	Histogramz#000000	   r   Spanz#e6e9ec
line_widthcolor
line_colorr   FTr   Pathblack)r   rA   )utilr:   r   r    
isinstancer   r!   lastr"   r   r)   r#   r(   )r+   region_elementunselected_colorr:   r/   el2_nameel1_namer0   r#   r    region_colorregions               r   _style_region_elementz3PlotlyOverlaySelectionDisplay._style_region_element-   s   ******-999ni00 	1N/005HH00 	1N..q11227HN..q11227HHN++0H'4W=(9{"" R./?ANNqQ!!#3#@y ./?ANNqQ///()%  0<9*?+;YJJ1ML&&&+;&+GG---2B-$0GL!///(-G$%$$XWT8WWwWW 	QF**[[8[PPFr   N)__name__
__module____qualname____doc__r7   rM   r   r   r   r   r      s@          F  F  FD) ) ) ) )r   r   N)core.optionsr   core.overlayr   r   	selectionr   r   r   r   r   <module>rU      s    ! ! ! ! ! ! . . . . . . . . 0 0 0 0 0 0P P P P P$; P P P P Pr   