o
    h                     @   s  d dl Z d dlZd dlmZmZmZ d dlZd dlZd dlZd dl	Z	d dl
Z
ddlmZ dd Zdd Zd	ejv Zejejejed
Ze
eZe
jeddZdeZdddZ							dddZdd ZdddZdd Z													d ddZ dS )!    N)realpathjoindirname   )DECKGL_SEMVERc                  C   s(   z	t  } | dW S  ty   Y dS w )NkernelF)get_ipython	has_trait	NameError)ip r   B/var/www/vscode/kcb/lib/python3.10/site-packages/pydeck/io/html.py
in_jupyter   s   r   c                 C   s   t | tur| S | rdS dS )zOSerializes Python booleans to JavaScript. Returns non-boolean values unchanged.truefalse)typebool)py_boolr   r   r   convert_js_bool   s   r   zgoogle.colabz./templates/T)loadertrim_blockszEhttps://cdn.jsdelivr.net/npm/@deck.gl/jupyter-widget@{}/dist/index.jsFc                 C   s   t d}|rtd| dj|dS | r=d}tttt|ddd}| }W d    n1 s3w   Y  d	|S d
t	S )NPYDECK_DEV_PORTzRpydeck running in development mode, expecting @deck.gl/jupyter-widget served at {}z<script type='text/javascript' src='http://localhost:{dev_port}/dist/index.js'></script>
<script type='text/javascript' src='http://localhost:{dev_port}/dist/index.js.map'></script>
)dev_portz../nbextension/static/index.jsrutf-8encodingz*<script type='text/javascript'>{}</script>z<script src='{}'></script>)
osgetenvprintformatopenr   r   __file__readCDN_URL)offliner   RELPATH_TO_BUNDLEfilejsr   r   r   
cdn_picker'   s   



r)   c              
   C   sH   t d}t d}	|	j|d}
|j||| t|dt||
||d}|S )Nzindex.j2zstyle.j2)css_background_color)r%   )
mapbox_keygoogle_maps_key
json_inputdeckgl_jupyter_widget_bundletooltipcss_textcustom_librariesconfiguration)j2_envget_templaterenderr)   r   )r-   r+   r,   r/   r*   r1   r2   r%   r(   cssr0   html_strr   r   r   render_json_to_html9   s   



r8   c                 C   s"   d | }td t| dS )zGConverts HTML into a temporary file and opens it in the system browser.z	file://{}g      ?N)r    timesleep
webbrowserr!   )filenameurlr   r   r   display_htmlS   s   

r>   100%  c                 C   s   t |trd| d}t| }d| d| d| d}ddlm} t  d}tjd	|d
 ||W  d    S 1 s>w   Y  d S )N"z#
        <iframe
            width=z
            height=z1
            frameborder="0"
            srcdoc="z"
        ></iframe>
    r   )HTMLz-Consider using IPython.display.IFrame insteadignore)message)	
isinstancestrhtmlescapeIPython.displayrB   warningscatch_warningsfilterwarnings)r7   widthheightsrcdociframerB   msgr   r   r   iframe_with_srcdoc[   s    

	
$rR   c                 C   sD   ddl m}m} d| d| d| d}t|| t||  d S )Nr   )rB   
Javascriptz$google.colab.output.setIframeHeight(z, true, {minHeight: z, maxHeight: z}))rI   rB   rS   display)r7   iframe_heightrB   rS   js_height_snippetr   r   r   render_for_colabq   s   rW   c              
   C   s   t | |||	||
||d}|r3t|ddd}|| W d   n1 s%w   Y  |r3tt|j |du r:t }trCt|| dS |sI|rI|S |rQt	|||S dS )z,Converts deck.gl format JSON to an HTML page)r+   r,   r/   r*   r1   r2   r%   zw+r   r   N)
r8   r!   writer>   r   namer   in_google_colabrW   rR   )	deck_jsonr+   r,   r<   open_browsernotebook_displayr*   rU   iframe_widthr/   r1   r2   	as_stringr%   r7   fr   r   r   deck_to_htmly   s4   
ra   )F)NNTNNNF)r?   r@   )NNNFNNr@   r?   TNNFF)!rG   r   os.pathr   r   r   sysr9   rJ   r;   jinja2frontend_semverr   r   r   modulesrZ   pathabspathr"   TEMPLATES_PATHFileSystemLoader	j2_loaderEnvironmentr3   r    r$   r)   r8   r>   rR   rW   ra   r   r   r   r   <module>   sT    	






