
    	/g:                         d dl Z d dlZ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 d dlmZ dd	lmZ dd
lmZ ddlmZ  e       Zd Zd Zd Zd Zd Zd Z G d de      Zy)    N)Document)script_for_render_items)%standalone_docs_json_and_render_items)wrap_in_script_tag)
_link_docs)panel   )LabelledData)Store)	extensionc                 \  K   ddl m} |j                  j                         }| |vr2t	        j
                  d       d {    t        | |       d {    y |j                  j                         }||j                  |          }t        ||j                  j                         y 7 h7 Vw)Nr   )Bokehg?)jsr   indexobject_keysasynciosleep_linkobject_valuesindexOfr   modeldocument)refdocr   renderedviewsviews         1lib/python3.12/site-packages/holoviews/pyodide.pyr   r      s     {{&&(H
(mmC   CoKK%%'E!!#&'DsDJJ''( 	!s#   =B,B( B,B*AB,*B,c                    ddl m} t        t        j                  d      rt        j                  j
                  }nt        d      t               }t        |       j                  |d       t        |j                  d      \  }\  }|j                  D ]  }||j                  j                  |<    |j                  |      j                  j                  d	       t!        ||g      }t#        j$                  t'        |j                  d   j(                  d
   |            }t*        j                  |       |j-                  t*        j.                         dt1        |      ii fS )Nr   )r   _outz,Could not determine target node to write to.F)locationT)suppress_callback_warningzbk-rootidz	text/html)r   r   hasattrsysstdoutr    
ValueErrorr   as_panel
server_docr   roots_rootsgetElementById	classListaddr   r   create_taskr   r   _background_taskadd_done_callbackdiscardr   )	objr   targetr   	docs_jsonrender_itemrootscripttasks	            r   render_htmlr:      s   szz6"GHH
*CSMS51 E		T!I~ 		)/  & F#--11)<$Y>FuSYYq\%5%5d%;SABD+334+F34b88    c                 P   |t         j                  vryt         j                  }t        |       t         j                  |   vryt         j
                  |   }|j                  |       }||j                  j                  d      d   j                  vry |||      \  }}|d   |ii fS )zj
    Used to render elements to an image format (svg or png) if requested
    in the display formats.
    Nexistingfig)fmt	mime_type)	r   display_formatscurrent_backendtyperegistry	renderersget_plotparamobjects)elementr?   backendrendererplotdatainfos          r   render_imagerO   3   s    
 %'''##GG}ENN733w'HW%D (..((4U;CCC$C(JD$t$b((r;   c                     t        | d      S )NpngrO   rI   s    r   
render_pngrT   H       ''r;   c                     t        | d      S )NsvgrR   rS   s    r   
render_svgrX   K   rU   r;   c                  \    dd l } t        | d      xs t        | d      xs t        | d       S )Nr   _JUPYTERLAB1webpackChunk_jupyterlite_pyodide_kernel_extensionr   )r   r$   )r   s    r   in_jupyterliter\   N   sF    2}%  I5h)i  Iqxy{  ~H  rI  nI  Ir;   c                   "     e Zd ZdZ fdZ xZS )pyodide_extensionFc                    t        |   |i | | j                  st        j                  j                  t        t        j                  j                                      t        j                  dt        t               t        j                  dt        t               t        j                  dt        t               dt        _        y y )Nzhtml+jsrQ   rW   T)super__call___loadedr   output_settings
initializelistrE   keysset_display_hookr
   r:   rT   rX   r^   )selfargsparams	__class__s      r   ra   zpyodide_extension.__call__Z   s    $)&)||!!,,T%//2F2F2H-IJ""9lKH""5,
C""5,
C(,% r;   )__name__
__module____qualname__rb   ra   __classcell__)rk   s   @r   r^   r^   V   s    G- -r;   r^   )r   r%   bokeh.documentr   bokeh.embed.elementsr   bokeh.embed.utilr   bokeh.embed.wrappersr   panel.io.pyodider   
panel.paner   r(   core.dimensionr
   core.optionsr   utilr   
_extensionsetr0   r   r:   rO   rT   rX   r\   r^    r;   r   <module>r|      s[     
 # 8 B 3 ' ( (  )
 5 	)9()*((I-
 -r;   