
    e                         d Z ddlZddlZ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  G d
 de          ZdS )z
React template
    N   )config)depends)CSS_URLS)GridSpec   )BasicTemplatec            
           e Zd ZdZ ej        dg d          Z ej        ddddd	d
          Z ej        dddddd
          Z	 ej
        edd          Z ej        d          Z ej        d ed          d ed          dd          Z ej        dd          Z ej        dd          Z ej        e          j        dz  Z ej        e          j        dz  Zej         dej         dej         d ej         d!d"d#ed#         id$Z fd%Z fd&Z e d'd(d)d*d+d,d-d.          d/             Z! xZ"S )0ReactTemplatezL
    ReactTemplate is built on top of React Grid Layout web components.
    N)Nvertical
horizontalboth)defaultobjects   
         r   )lgmdsmxsxxs)r   i  i  i   i  r   Tz=
        A list-like container which populates the main area.)class_constantdoc   inf)minWmaxWminHmaxHz;A dictionary of minimum/maximum width/height in grid units.)r   r   Fz!Prevent collisions between items.zSave layout to local storage.z	react.cssz
react.htmlz%/react@17/umd/react.production.min.jsz-/react-dom@17/umd/react-dom.production.min.jsz%/babel-standalone@latest/babel.min.jsz6/react-grid-layout@1.3.4/dist/react-grid-layout.min.js)reactz	react-dombabelz
react-gridzfont-awesome)jscssc                     d|vrt          dd          |d<    t                      j        di | |                                  d S )Nmainr   override)ncolsmode )r   super__init___update_render_vars)selfparams	__class__s     =lib/python3.11/site-packages/panel/template/react/__init__.pyr.   zReactTemplate.__init__8   sY    %BZ@@@F6N""6"""  """""    c           	      $   t                                          |           |j        | j        urd S g }t	          | j        j                                                  D ]\  }\  \  }}}}}|d}|d}|d}|| j        j        }||||z
  ||z
  t          |dz             d}	|		                    d | j
                                        D                        |                    |	           t          j        ||d          | j        d<   d S )Nr   r      )xywhic                 B    i | ]\  }}t          j        |          ||S r,   )mathisinf).0dvs      r3   
<dictcomp>z6ReactTemplate._update_render_items.<locals>.<dictcomp>I   s,    WWW$!QTUWAWWWr4   )r   r   layouts)r-   _update_render_itemsobjr(   	enumerater   itemsnrowsstrupdate
dimensionsappendjsondumps_render_variables)r0   eventrC   r;   y0x0y1x1rA   elemr2   s             r3   rD   z"ReactTemplate._update_render_items>   s%   $$U+++9DI%%F(1$)2C2I2I2K2K(L(L 	! 	!$A$ RR!z2z2z2z	2"2b5r"u3qs88LLDKKWW$/*?*?*A*AWWWXXXNN4    ,0JgW7U7U,V,Vy)))r4   colsbreakpoints
row_heightcompactrK   prevent_collisionsave_layout)watchc                     | j         | j        d<   | j        | j        d<   | j        | j        d<   | j        | j        d<   | j        | j        d<   | j        | j        d<   | j        | j        d<   d S )NrW   rV   	rowHeightrY   rK   preventCollision
saveLayout)rW   rO   rV   rX   rY   rK   rZ   r[   )r0   s    r3   r/   z!ReactTemplate._update_render_varsM   sw     150@}-)-v&.2o{+,0Ly)/3|,595K12/3/?|,,,r4   )#__name__
__module____qualname____doc__paramObjectSelectorrY   DictrV   rW   ClassSelectorr   r(   IntegerrX   floatrK   BooleanrZ   r[   pathlibPath__file__parent_css	_templater   npm_cdnr   
_resourcesr.   rD   r   r/   __classcell__)r2   s   @r3   r   r      sO         #e"49a9a9abbbG5:Rr!ANNOOOD%*D3cZ[%\%\]]]K5h D@ A A AD s+++JQeaY^Y^_dYeYe$f$f ac c cJ &e9\]]]%-3RSSSK7<!!(;6DX&&-<I MMM"NYYYMMM#^ccc	
 
 H^4

 
J# # # # #W W W W W WV]L)\K^$( ( (@ @( (@ @ @ @ @r4   r   )rd   rM   r=   rl   re   r   r   io.resourcesr   layoutr   baser	   r   r,   r4   r3   <module>rx      s                     $ $ $ $ $ $                  E@ E@ E@ E@ E@M E@ E@ E@ E@ E@r4   