
    e                        d dl Zd dlZddlmZmZmZmZmZ ddl	m
Z
 ddlmZ  G d d	e          Z G d
 de
e          Z G d de
e          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )    N   )HLineHSpanTilesVLineVSpan   )	GeomMixin   )ElementPlotc                   >    e Zd ZdZg dZdZddZed	d            ZdS )
	ShapePlotN)opacity	fillcolor
line_color
line_width	line_dashTr   Fc           	          |rAddddd} |j         |fi | |                    dd           rd|d<   t          |g	          S t          dd
| j        it          |fi |}t          |g          S )NscattermapboxlinesFskip)typemode
showlegend	hoverinfor   toselffill)tracesr   )shapes )updategetdict_shape_type)selfdatumoptionsindexis_geokwargstraceshapes           @lib/python3.11/site-packages/holoviews/plotting/plotly/shapes.py
init_graphzShapePlot.init_graph   s     	('##	 E EL**'*** {{;-- ) (fw''''IId.I$u2H2H2H2HIIEw''''    c           	          d                     d t          | dd          |dd                    D                       }d| d          d|d          | }|r|dz  }|S )N c                 $    g | ]\  }}d | d| S )L r    ).0xys      r-   
<listcomp>z(ShapePlot.build_path.<locals>.<listcomp>&   s8     = = = $1 (KKAKK = = =r/   r   Mr   r4   Z)joinzip)xsysclosedline_tospaths        r-   
build_pathzShapePlot.build_path$   s    77 = =(+BqrrFBqrrF(;(;= = = > >,2a5,,2a5,(,, 	CKDr/   )r   F)T)	__name__
__module____qualname__r$   
style_opts_supports_geor.   staticmethodrB   r    r/   r-   r   r   	   s_         KRRRJM( ( ( (&    \  r/   r   c                       e Zd ZdZddZdS )BoxShapePlotrectFc           	         | j         rdnd}fd|D             \  }}}	}
|rt          |          dk    rg }g }nt          j        ||          \  }}t          j        |	|
          \  }}t	          d t	          ||||          D              \  }}t          j        |          }t          j        |          }||dgS d t	          |||	|
          D             S )	Nr   r   r   r	   r   r   r	   r   c              3   B   K   | ]}                     |          V  d S Ndimension_valuesr5   kdelements     r-   	<genexpr>z(BoxShapePlot.get_data.<locals>.<genexpr>5   1      JJrg66r::JJJJJJr/   r   eastingnorthingc           	      `    g | ]+\  }}}}|||||t           j        g|||||t           j        gf,S r    npnanr5   lon0lat0lon1lat1s        r-   r8   z)BoxShapePlot.get_data.<locals>.<listcomp>?   sX     / / / 1tT4 D$dBF;D$dBF;=/ / /r/   latlonc           
      B    g | ]\  }}}}t          ||||d d          S r6   r7   )x0x1y0y1xrefyrefr#   r5   ri   rk   rj   rl   s        r-   r8   z)BoxShapePlot.get_data.<locals>.<listcomp>I   K     E E E(RR B2"#CHHH E E Er/   invert_axeslenr   easting_northing_to_lon_latr<   r]   concatenater%   rU   rangesstyler)   r*   indsx0sy0sx1sy1sre   rf   lon0slat0slon1slat1s
lon_chunks
lat_chunkss    `                 r-   get_datazBoxShapePlot.get_data3   s/   #/A||\JJJJTJJJS#s 	E3xx1}}$@WZ[[[u$@WZ[[[u), / / 58ueU4S4S/ / / *&
J nZ00nZ00,,--E E,/S#s,C,CE E E Er/   NFrC   rD   rE   r$   r   r    r/   r-   rJ   rJ   0   s3        KE E E E E Er/   rJ   c                       e Zd ZdZddZdS )SegmentShapePlotlineFc           	         | j         rdnd}fd|D             \  }}}	}
|rt          |          dk    rg }g }nt          j        ||          \  }}t          j        |	|
          \  }}t	          d t	          ||||          D              \  }}t          j        |          }t          j        |          }||dgS d t	          |||	|
          D             S )	NrM   rN   c              3   B   K   | ]}                     |          V  d S rP   rQ   rS   s     r-   rV   z,SegmentShapePlot.get_data.<locals>.<genexpr>R   rW   r/   r   rX   c                 T    g | ]%\  }}}}||t           j        g||t           j        gf&S r    r\   r_   s        r-   r8   z-SegmentShapePlot.get_data.<locals>.<listcomp>[   sL     / / / 1tT4 D"&)D"&)+/ / /r/   rd   c           
      B    g | ]\  }}}}t          ||||d d          S rh   ro   rp   s        r-   r8   z-SegmentShapePlot.get_data.<locals>.<listcomp>e   rq   r/   rr   rw   s    `                 r-   r   zSegmentShapePlot.get_dataP   s/   #/A||\JJJJTJJJS#s 	E3xx1}}$@WZ[[[u$@WZ[[[u), / / 58ueU4S4S/ / / *&
J nZ00nZ00,,--E E,/S#s,C,CE E E Er/   Nr   r   r    r/   r-   r   r   M   s3        KE E E E E Er/   r   c                       e Zd ZdZddZdS )PathShapePlotrA   Fc                 X   | j         r+|                    d          }|                    d          }n*|                    d          }|                    d          }|rt          j        ||          \  }}	|	|dgS t                              ||          }
t          |
dd          gS )Nr   r   rX   rd   r6   r7   rA   rm   rn   )rs   rR   r   ru   r   rB   r#   )r%   rU   rx   ry   r)   r*   r>   r=   rf   re   rA   s              r-   r   zPathShapePlot.get_datal   s     	-))!,,B))!,,BB))!,,B))!,,B 	98bQQQHC,,--''B//Dd377788r/   Nr   r   r    r/   r-   r   r   i   s-        K9 9 9 9 9 9r/   r   c                       e Zd ZdZddZdS )	PathsPlotrA   Fc                    |rg }g }|                                 D ]}| j        rdnd\  }	}
|                    |	          }|                    |
          }t          j        ||          \  }}|                    |t          j        gg           |                    |t          j        gg           |r)t          j        |          }t          j        |          }ng }g }||dgS g }|                                 D ]z}| j        rdnd\  }	}
|                    |	          }|                    |
          }t          
                    ||          }|                    t          |dd                     {|S )N)r   r   )r   r   rd   r6   r7   r   )splitrs   rR   r   ru   extendr]   r^   rv   r   rB   appendr#   )r%   rU   rx   ry   r)   r*   r   r   elxdimydimr=   r>   el_lonel_latrf   re   pathsrA   s                      r-   r   zPathsPlot.get_data   s    	JJmmoo 6 6'+'7CVVV
d((..((..!&!B2r!J!J!!6BF8"4555!!6BF8"45555 nZ00nZ00,,--Emmoo B B'+'7CVVV
d((..((.. ++B33Tt#C@@@AAAALr/   Nr   r   r    r/   r-   r   r   |   s-        K     r/   r   c                   @    e Zd Z ej        dd          ZdZdZd ZdS )
HVLinePlotFF
        Whether to include the annotation in axis range calculations.defaultdocr   c           	          t          |t                    r| j        st          |t                    r)| j        s"|j        }|d u}t          ||dddd|          gS |j        }|d u}t          dd||dd|          gS 	Nr   r   r6   paper)ri   rj   rk   rl   rm   rn   visibleg        g      ?r7   )
isinstancer   rs   r   datar#   )r%   rU   rx   ry   r*   r6   r   r7   s           r-   r   zHVLinePlot.get_data   s    '' 	D,< 	''	040@	AtmGqQSw     AtmG31sG    r/   N	rC   rD   rE   paramBooleanapply_rangesr$   rG   r   r    r/   r-   r   r      sR         5= 5I J J JL KM    r/   r   c                   @    e Zd Z ej        dd          ZdZdZd ZdS )
HVSpanPlotFr   r   rK   c           	         t          |t                    r| j        st          |t                    r1| j        s*|j        \  }}|d u o|d u  }t          ||dddd|          gS |j        \  }}	|d u o|	d u  }t          dd||	dd|          gS r   )r   r   rs   r   r   r#   )
r%   rU   rx   ry   r*   ri   rj   r   rk   rl   s
             r-   r   zHVSpanPlot.get_data   s    '' 	D,< 	''	040@	\FB:4"*5G"qs'     \FB:4"*5G32"7g    r/   Nr   r    r/   r-   r   r      sR         5= 5I J J JL KM    r/   r   )numpyr]   r   rU   r   r   r   r   r   mixinsr
   r   r   rJ   r   r   r   r   r   r    r/   r-   <module>r      s        8 8 8 8 8 8 8 8 8 8 8 8 8 8                  $ $ $ $ $ $ $ $NE E E E E9i E E E:E E E E Ey) E E E89 9 9 9 9I 9 9 9&    	   @       0         r/   