
    Dhh                         S SK Jr  S SKJrJr  S SKJrJrJrJ	r	J
r
  S SKJr  S SKJrJr  S r " S S\
5      r " S	 S
\
5      r " S S\
5      r " S S\
5      r " S S\
5      rg)    wraps)ListTuple)CssLinkElementFigureJavascriptLinkMacroElement)Template)JsCodecamelizec                 0   ^  [        T 5      U 4S j5       nU$ )Nc                 X   > U R                  [        U TR                  /UQ70 UD65        g N)	add_child
MethodCall__name__)selfargskwargsfns      bC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\folium/elements.pyinnerleaflet_method.<locals>.inner   s$    z$EdEfEF    r   )r   r   s   ` r   leaflet_methodr      s"    
2YG G Lr   c            	          ^  \ rS rSr% Sr/ r\\\\4      \	S'   / r
\\\\4      \	S'   U 4S jrS\S\4S jrS\S\4S	 jrS\S\S
\\\\4      4S jrSrU =r$ )
JSCSSMixin   z6Render links to external Javascript and CSS resources.
default_jsdefault_cssc                 ^  > U R                  5       n[        U[        5      (       d   S5       eU R                   H(  u  p4UR                  R                  [        U5      US9  M*     U R                   H(  u  p4UR                  R                  [        U5      US9  M*     [        TU ](  " S0 UD6  g )Nz8You cannot render this Element if it is not in a Figure.)name )get_root
isinstancer	   r!   headerr   r
   r"   r   superrender)r   r   figurer$   url	__class__s        r   r*   JSCSSMixin.render"   s    F
 
 	FE	F 
 IDMM##N3$7d#C ) ))IDMM##GCLt#< * 	  r   r$   r,   c                 <    U R                  XU R                  5        g)z Add or update css resource link.N)	_add_linkr"   r   r$   r,   s      r   add_css_linkJSCSSMixin.add_css_link0   s    t$"2"23r   c                 <    U R                  XU R                  5        g)zAdd or update JS resource link.N)r0   r!   r1   s      r   add_js_linkJSCSSMixin.add_js_link4   s    t$//2r   default_listc                 p    [        U5       H  u  pEUS   U:X  d  M  X4X4'     g   UR                  X45        g)zNModify a css or js link.

If `name` does not exist, the link will be appended
r   N)	enumerateappend)r   r$   r,   r7   ipairs         r   r0   JSCSSMixin._add_link8   s>     !.GAAw$#'+ /
 ,r   r%   )r   
__module____qualname____firstlineno____doc__r!   r   r   str__annotations__r"   r*   r2   r5   r0   __static_attributes____classcell__r-   s   @r   r   r      s    @(*JU38_%*)+KeCHo&+!4 43 43 3# 3-c - -4c3h;P - -r   r   c                   P   ^  \ rS rSrSr\" S5      rS	S\S\S\	4U 4S jjjr
SrU =r$ )
EventHandlerF   a  
Add javascript event handlers.

Examples
--------
>>> import folium
>>> from folium.utilities import JsCode
>>>
>>> m = folium.Map()
>>>
>>> geo_json_data = {
...     "type": "FeatureCollection",
...     "features": [
...         {
...             "type": "Feature",
...             "geometry": {
...                 "type": "Polygon",
...                 "coordinates": [
...                     [
...                         [100.0, 0.0],
...                         [101.0, 0.0],
...                         [101.0, 1.0],
...                         [100.0, 1.0],
...                         [100.0, 0.0],
...                     ]
...                 ],
...             },
...             "properties": {"prop1": {"title": "Somewhere on Sumatra"}},
...         }
...     ],
... }
>>>
>>> g = folium.GeoJson(geo_json_data).add_to(m)
>>>
>>> highlight = JsCode(
...     """
...    function highlight(e) {
...        e.target.original_color = e.layer.options.color;
...        e.target.setStyle({ color: "green" });
...    }
... """
... )
>>>
>>> reset = JsCode(
...     """
...    function reset(e) {
...       e.target.setStyle({ color: e.target.original_color });
...    }
... """
... )
>>>
>>> g.add_child(EventHandler("mouseover", highlight))
>>> g.add_child(EventHandler("mouseout", reset))
z
        {% macro script(this, kwargs) %}
            {{ this._parent.get_name()}}.{{ this.method }}(
                {{ this.event|tojson}},
                {{ this.handler.js_code }}
            );
        {% endmacro %}
        eventhandleroncec                 t   > [         TU ]  5         SU l        Xl        X l        U(       a  SU l        g SU l        g )NrH   rL   on)r)   __init___namerJ   rK   method)r   rJ   rK   rL   r-   s       r   rO   EventHandler.__init__   s.    #

 $f$r   )rP   rJ   rK   rQ   )F)r   r>   r?   r@   rA   r   	_templaterB   r   boolrO   rD   rE   rF   s   @r   rH   rH   F   s9    5n 		I/c /F /$ / /r   rH   c                   H   ^  \ rS rSrSr\" S5      rS\S\4U 4S jjrSr	U =r
$ )ElementAddToElement   4Abstract class to add an element to another element.z
        {% macro script(this, kwargs) %}
            {{ this.element_name }}.addTo({{ this.element_parent_name }});
        {% endmacro %}
    element_nameelement_parent_namec                 :   > [         TU ]  5         Xl        X l        g r   )r)   rO   rY   rZ   )r   rY   rZ   r-   s      r   rO   ElementAddToElement.__init__   s    (#6 r   )rY   rZ   )r   r>   r?   r@   rA   r   rS   rB   rO   rD   rE   rF   s   @r   rV   rV      s-    >	I7S 7s 7 7r   rV   c                   P   ^  \ rS rSrSr\" S5      rS\4U 4S jjrU 4S jr	Sr
U =r$ )IncludeStatement   z)Generate an include statement on a class.zl
        {{ this.leaflet_class_name }}.include(
            {{ this.options | tojavascript }}
        )
    leaflet_class_namec                 :   > [         TU ]  5         Xl        X l        g r   )r)   rO   r`   options)r   r`   r   r-   s      r   rO   IncludeStatement.__init__   s    "4r   c                 $   > [         TU ]  " U0 UD6$ r   )r)   r*   )r   r   r   r-   s      r   r*   IncludeStatement.render   s    w~t.v..r   )r`   rb   )r   r>   r?   r@   rA   r   rS   rB   rO   r*   rD   rE   rF   s   @r   r^   r^      s+    3	I3 
/ /r   r^   c                   H   ^  \ rS rSrSr\" S5      rS\S\4U 4S jjr	Sr
U =r$ )r      rX   a,  
        {% macro script(this, kwargs) %}
            {{ this.target }}.{{ this.method }}(
                {% for arg in this.args %}
                    {{ arg | tojavascript }},
                {% endfor %}
                {{ this.kwargs | tojavascript }}
            );
        {% endmacro %}
    targetrQ   c                    > [         TU ]  5         UR                  5       U l        [	        U5      U l        X0l        X@l        g r   )r)   rO   get_namerh   r   rQ   r   r   )r   rh   rQ   r   r   r-   s        r   rO   MethodCall.__init__   s2    oo'v&	r   )r   r   rQ   rh   )r   r>   r?   r@   rA   r   rS   r   rB   rO   rD   rE   rF   s   @r   r   r      s-    >		I| S  r   r   N)	functoolsr   typingr   r   branca.elementr   r   r	   r
   r   folium.templater   folium.utilitiesr   r   r   r   rH   rV   r^   r   r%   r   r   <module>rq      sb       % -+- +-\H/< H/V7, 7"/| /( r   