o
    Pfw                     @   sR   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 G dd deeZ
dS )	    )Template)
JSCSSMixin)Marker)parse_options)path_optionsc                       s<   e Zd ZdZedZdgZ						d fdd	Z  ZS )
SemiCirclea  Add a marker in the shape of a semicircle, similar to the Circle class.

    Use (direction and arc) or (start_angle and stop_angle), not both.

    Parameters
    ----------
    location: tuple[float, float]
        Latitude and Longitude pair (Northing, Easting)
    radius: float
        Radius of the circle, in meters.
    direction: int, default None
        Direction angle in degrees
    arc: int, default None
        Arc angle in degrees.
    start_angle: int, default None
        Start angle in degrees
    stop_angle: int, default None
        Stop angle in degrees.
    popup: str or folium.Popup, optional
        Input text or visualization for object displayed when clicking.
    tooltip: str or folium.Tooltip, optional
        Display a text when hovering over the object.
    **kwargs
        For additional arguments see :func:`folium.vector_layers.path_options`

    Uses Leaflet plugin https://github.com/jieter/Leaflet-semicircle

    a  
        {% macro script(this, kwargs) %}
            var {{ this.get_name() }} = L.semiCircle(
                {{ this.location|tojson }},
                {{ this.options|tojson }}
                )
                {%- if this.direction %}
                    .setDirection({{ this.direction[0] }}, {{ this.direction[1] }})
                {%- endif %}
                .addTo({{ this._parent.get_name() }});
        {% endmacro %}
        )semicirclejszGhttps://cdn.jsdelivr.net/npm/leaflet-semicircle@2.0.4/Semicircle.min.jsNc	           
         s   t  j|||d d| _|d ur|d ur||fnd | _tdd|d|	| _| jt||d |d u r@|d u r@|d ur@|d usT|d urP|d urP|d u rP|d u sVtdd S d S )N)popuptooltipr   F)lineradius)start_angle
stop_anglezQInvalid arguments. Either provide direction and arc OR start_angle and stop_angle )	super__init___name	directionr   optionsupdater   
ValueError)
selflocationr   r   arcr   r   r	   r
   kwargs	__class__r   e/home/deployuser/azure_apps/autowriter/venv/lib/python3.10/site-packages/folium/plugins/semicircle.pyr   =   s(   zSemiCircle.__init__)NNNNNN)	__name__
__module____qualname____doc__r   	_template
default_jsr   __classcell__r   r   r   r   r   	   s    r   N)jinja2r   folium.elementsr   
folium.mapr   folium.utilitiesr   folium.vector_layersr   r   r   r   r   r   <module>   s    