
    e""                       d dl Zd dlZd dlZd dlZd dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dl m!Z!m"Z" d dl#m$Z$ d d	l%m&Z&m'Z' d d
l(m)Z)m*Z* ej+        ,                     eej-                   ed          k     d          Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d  ZAd! ZBd" ZCd# ZDd$ ZEd% ZFd& ZGd' ZHd( ZIej+        J                    d)d*d+g          d,             ZKd- ZLd. ZMd/ ZNd0 ZOd1 ZPd2 ZQd3 ZRd4 ZSd5 ZTd6 ZUd7 ZVd8 ZWd9 ZXd: ZYd; ZZej+        [                    d<          d=             Z\d> Z]d? Z^d@ Z_e.dA             Z`dB ZadC ZbdD ZcdE ZddF ZedG ZfdH ZgdI ZhdJ ZidK ZjdL ZkdM ZldN ZmdO ZndP ZodQ ZpdR ZqdS ZrdT ZsdU ZtdV ZudW ZvdX ZwdY ZxdZ Zyd[ Zzd\ Z{d] Z|d^ Z}d_ Z~d` Zda Zdb Zdc Zdd Zde Zdf Zdg Zdh Zdi Zdj Zej+        J                    dkg dl          dm             Zdn Zdo Zdp Zdq Zdr Zds Zdt Zdu Zdv Zdw Zdx Zdy Zdz Zd{ Zd| Zd} Zd~ Zd Zd Zej+        J                    dddidgddg          d             Zej+        J                    dddidgddg          d             Zd Zej+        J                    dddidgddg          d             ZdS )    N)AvgAggregator
CellEditorCheckboxEditorDataCube
DateEditorDateFormatterHTMLTemplateFormatter	IntEditorMinAggregatorNumberEditorNumberFormatterSelectEditorStringEditorStringFormatterSumAggregator)Version)bind)
set_curdoc)CellClickEventTableEditEvent)serve_and_request
wait_until)BOKEH_JS_NAT)Button	TextInput)	DataFrame	Tabulatorz1.3zRequires latest pandas)reasonc                  l    g dg dg dt          j        dd          d} t          j        |           S )N              ?       @      @      @r!   r"   r!   r"   r!   foo1foo2foo3foo4foo5z1/1/2009   periodsABCD)pdbdate_ranger   )datas    ?lib/python3.11/site-packages/panel/tests/widgets/test_tables.pymakeMixedDataFramer9      sM    &&&&&&555^J222	 D <    c                    t          |           }|                    ||          }|j        \  }}}}|j        dk    sJ t	          |j        t                    sJ t	          |j        t                    sJ |j        dk    sJ t	          |j        t                    sJ t	          |j        t                    sJ |j        dk    sJ t	          |j        t                    sJ t	          |j        t                    sJ |j        dk    sJ t	          |j        t                    sJ t	          |j        t                    sJ d S )Nindexintfloatstr)r   get_rootcolumnstitle
isinstance	formatterr   editorr   r
   r   r   )		dataframedocumentcommtablemodel	index_colint_col	float_colstr_cols	            r8   test_dataframe_widgetrO   %   sK   i  ENN8T**E-2]*Iw	7?g%%%%i)?;;;;;i&
33333=E!!!!g'99999gni00000?g%%%%i)?;;;;;i&55555=E!!!!i)?;;;;;i&5555555r:   c                    t          | d          }|                    ||          }t          |j                  dk    sJ |j        \  }}}|j        dk    sJ |j        dk    sJ |j        dk    sJ d|_        t          |j                  dk    sJ |j        \  }}}}|j        d	k    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d S )
NF
show_index   r=   r>   r?   T   r<   )r   r@   lenrA   rB   rR   )	rF   rG   rH   rI   rJ   rL   rM   rN   rK   s	            r8   #test_dataframe_widget_no_show_indexrV   >   s   iE222ENN8T**Eu}"""""'-GY=E!!!!?g%%%%=E!!!!Eu}""""-2]*Iw	7?g%%%%=E!!!!?g%%%%=E!!!!!!r:   c                 J   t          j        dg dit          j        dd                    }t          |          }|                    | |          }|j        \  }}|j        dk    sJ t          |j        t                    sJ t          |j	        t                    sJ d S )Nr=         rS   z
2000-01-01rS   r.   r<   r<   )r5   r   
date_ranger@   rA   rB   rC   rD   r   rE   r   )rG   rH   dfrI   rJ   dt_col_s          r8   test_dataframe_widget_datetimesr`   S   s    	uiii(lTU0V0V0V	W	W	WBbMMENN8T**EIFA<7""""f&66666fmZ0000000r:   c                    t          g d          }t          | d|i          }|                    ||          }|j        d         j        }t          |t                     |usJ t          |t                     sJ |j        g dk    sJ d S )Nr1   r2   r3   optionsr?   editors)r   r   r@   rA   rE   rC   rd   rF   rG   rH   rE   rI   rJ   model_editors          r8   test_dataframe_editorsrj   `   s    ///222Fi%999ENN8T**E=$+LlL11????lL11111???222222r:   c                     t          d          }t          | d|i          }|                    ||          }|j        d         j        }||usJ t          |t                     sJ |j        |j        k    sJ d S )N0.0000formatr>   
formattersrZ   )r   r   r@   rA   rD   rC   rn   rF   rG   rH   rD   rI   rJ   model_formatters          r8   test_dataframe_formatterrs   k   s    x000IiWi,@AAAENN8T**EmA&0O)++++o77777!Y%5555555r:   c                     g }|fd}t          |           }|j                            |d           |                    ddg dii           t	          |          dk    sJ d S )Nc                 0    |                     |            d S Nappendeventeventss     r8   	incrementz*test_dataframe_triggers.<locals>.incrementx       er:   valuer7   r?   )r3   r2   r1   rY   r   paramwatch_process_eventsrU   rF   r{   r|   rI   s       r8   test_dataframe_triggersr   u       F &     i  E	Ki)))	6E???#;<===v;;!r:   c                     g }|fd}t          |           }|j                            |d           |                    ddg dii           t	          |          dk    sJ d S )Nc                 0    |                     |            d S rv   rw   ry   s     r8   r|   z2test_dataframe_does_not_trigger.<locals>.increment   r}   r:   r~   r7   r?   rb   r   r   r   s       r8   test_dataframe_does_not_triggerr      r   r:   c                     t          | ddg          }t          j                            |j        | j        ddg                    d S Nr   rZ   	selection)r   r5   testingassert_frame_equalselected_dataframeilocrF   rI   s     r8   !test_dataframe_selected_dataframer      sD    iAq6222EJ!!%":INAq6<RSSSSSr:   c                     t          | ddg          }|                    dddgi           t          j                            |j        | j        ddg                    d S )Nr   rZ   r   indices)r   r   r5   r   r   r   r   r   s     r8   &test_dataframe_process_selection_eventr      sa    iAq6222E	9q!f-...J!!%":INAq6<RSSSSSr:   c                 t   |                                  }t          | ddg          }|                    ddg dii           g d|d<   t          j                            |j        |           |                    ddddd	d
ii           g d|d<   t          j                            |j        |           d S )Nr   rZ   r   r7   r=   )r-      	   rS   rT   rY   )rY   rZ   r   )rY   rS   rT   )copyr   r   r5   r   r   r~   )rF   r]   rI   s      r8   !test_dataframe_process_data_eventr      s    			BiAq6222E	6E999#56777		BuIJ!!%+r222	6EqQ1+=+=#>?@@@		BuIJ!!%+r22222r:   c                    t          j        ddgddggddg          }t          j        t                    5  t          |          }d d d            n# 1 swxY w Y   t          j        ddgddggddg          }t          |          }t          j        t                    5  |j                            ddi          |_        d d d            n# 1 swxY w Y   t          j        ddgddggddg          }t          |          }|                    | |           t          j        t                    5  |j                            ddi          |_        d d d            d S # 1 swxY w Y   d S )NrY   rZ   colrA   ab)r5   r   pytestraises
ValueErrorr~   renamer@   rG   rH   r]   rI   s       r8   $test_dataframe_duplicate_column_namer      s$   	1v1v&	?	?	?B	z	"	"  "               
1v1v&c
	;	;	;BbMME	z	"	" = =k((#s(<<= = = = = = = = = = = = = = = 
1v1v&c
	;	;	;BbMME	NN8T"""	z	"	" = =k((#s(<<= = = = = = = = = = = = = = = = = =s5   AAA%#CCC;#E++E/2E/c                    t          j        g dg d                              ddg          }t          |ddddd	i
          }|                    | |          }t	          |t
                    sJ t          |j                  dk    sJ |j        d         }t          |j                  dk    sJ |j        \  }}|j	        dk    sJ t	          |t                    sJ |j	        dk    sJ t	          |t                    sJ ddi|_        |j        \  }}|j	        dk    sJ t	          |t                    sJ |j	        dk    sJ t	          |t                    sJ d S )N))Germany  r   g333333@r1   )r     rS   g333333@r3   )r        g@r2   )UKr   r-   g       @r1   )r   r   rY   g333333@r2   )r   r   r   g@r1   )CountryYearIntFloatStrr   r   r   Tsummean)r   r   )r~   hierarchicalaggregatorsrY   r   rZ   r   r   min)r5   r   	set_indexr@   rC   r   rU   groupingr   field_r   r   r   )rG   rH   r]   rI   rJ   r   agg1agg2s           r8   test_hierarchical_indexr      s   	    :99
; 
; 
; <E9iQWEX;Y;Y  BT#)56+J+J"KM M ME NN8T**EeX&&&&&u~!####~a Hx#$$))))%JD$;%dM*****;'!!!!dM*****E%JD$;%dM*****;'!!!!dM*******r:   c                 n   t          j        g dg dg ddg d          }t          |          }|                    | |          }t          j        |j        j        d         t          j        g d                    sJ |j        d	         j	        dk    sJ |j        d	         j
        d
k    sJ d S NrX   )Q	@Q@gףp=
"@rb   )r=   r>   r<   r[   r~   )rH   level_0r    )r5   r   r@   nparray_equalsourcer7   arrayrA   fieldrB   rG   rH   r]   rI   rJ   s        r8   test_table_index_columnr          	yy###   YY	
 
 
B
 BENN8$N//E>%,+I68K8KLLLLL=!Y....=!R''''''r:   c                     t          d           }|j        g k    sJ |                    | |          }|j        j        i k    sJ d S )Nr   )r   indexesr@   r   r7   )rG   rH   rI   rJ   s       r8   test_none_tabler      sT    D!!!E=BNN8T**E<""""""r:   c                      t                      } t          | ddg          }t          j                            |j        | j        ddg                    d S r   )r9   r   r5   r   r   r   r   )r]   rI   s     r8   !test_tabulator_selected_dataframer      sN    			BbQF+++EJ!!%":BGQFOLLLLLr:   c                    t                      }t          |                    ddg                    }|                    | |          }|j        d         dddddiddddd	dgk    sJ t          j        |j        j        d         t          j	        g d
                    sJ t          j        |j        j        d         t          j	        g d                    sJ d S )Nr1   r3   rA   numberr   sorterr   r2   r4   	timestampr    r'   
r9   r   r   r@   configurationr   r   r   r7   r   r   s        r8   test_tabulator_multi_indexr      s    			BbllC:..//ENN8T**Ey)**	#**--	.     >%,+C0"(;O;O;O2P2PQQQQQ>%,+C0"(;c;c;c2d2deeeeeeer:   c                    t                      }t          |                    ddg          dd          }|                    | |          }|j        d         dddd	did
dddddgk    sJ t          j        |j        j        d         t          j	        g d                    sJ t          j        |j        j        d         t          j	        g d                    sJ d S )Nr1   r3   remoterS   
pagination	page_sizerA   r   r   r   r2   r4   r   )r!   r"   r#   r(   r)   r*   r   r   s        r8   ,test_tabulator_multi_index_remote_paginationr     s    			BbllC:..8qQQQENN8T**Ey)**	#**--	.     >%,+C0"(<<<2H2HIIIII>%,+C0"(;S;S;S2T2TUUUUUUUr:   c                    t                      }t          |ddgd           }|                    | |          }t          |j                  dk    sJ d|j        v sJ |j        d         }|j        dk    sJ d|j        v sJ |j        d         }|j        dk    sJ ddg|_        d|j        vsJ d|j        v sJ ||j        d         u sJ d|j        v sJ |j        d         }|j        dk    sJ d S )	Nr   rY   c                     | j         S rv   r1   rs    r8   <lambda>z1test_tabulator_expanded_content.<locals>.<lambda>       r:   )expandedrow_contentrZ   z&lt;pre&gt;0.0&lt;/pre&gt;z&lt;pre&gt;1.0&lt;/pre&gt;z&lt;pre&gt;2.0&lt;/pre&gt;)r9   r   r@   rU   childrentextr   )rG   rH   r]   rI   rJ   row0row1row2s           r8   test_tabulator_expanded_contentr     s=   			BbAq6}}EEEENN8T**Eu~!####>!D944444>!D944444VENEN""""5>!$$$$$>!D94444444r:   c                 n   t          j        g dg dg ddg d          }t          |          }|                    | |          }t	          j        |j        j        d         t	          j        g d                    sJ |j	        d	         j
        dk    sJ |j	        d	         j        d
k    sJ d S r   )r5   r   r   r@   r   r   r   r7   r   rA   r   rB   r   s        r8   test_tabulator_index_columnr   5  r   r:   c                     t                      }t          |ddgd dd          }|                    | |          }t          |j                  dk    sJ d|_        t          |j                  dk    sJ d S )Nr   rY   c                     | j         S rv   r   r   s    r8   r   z<test_tabulator_expanded_content_pagination.<locals>.<lambda>G  r   r:   r   rZ   )r   r   r   r   )r9   r   r@   rU   r   pager   s        r8   *test_tabulator_expanded_content_paginationr   D  s    			BbAq6}}QYefgggENN8T**Eu~!####EJu~!######r:   c                    t                      }t          |dd           }|                    | |          }t          |j                  t          |          k    sJ |                                D ]3\  }}||j        v sJ |j        |         }|j        d|j         dk    sJ 4d |_        |                                D ]6\  }}||j        v sJ |j        |         }|j        d|j        dz    dk    sJ 7d S )NTc                     | j         S rv   r   r   s    r8   r   z7test_tabulator_expanded_content_embed.<locals>.<lambda>U  s    AC r:   )embed_contentr   z&lt;pre&gt;z&lt;/pre&gt;c                     | j         dz   S NrY   r   r   s    r8   r   z7test_tabulator_expanded_content_embed.<locals>.<lambda>`  s    !#' r:   rY   )	r9   r   r@   rU   r   iterrowsr   r1   r   )rG   rH   r]   rI   rJ   ir   rows           r8   %test_tabulator_expanded_content_embedr   R  s,   			Bb--HHHENN8T**Eu~#b'')))) < <1EN""""nQx;!#;;;;;;;;))E > >1EN""""nQx=!#a%========> >r:   c           
         t                      }t          |t          t          t	          |                                        }t
          j                            |j        |           |	                    dd           t
          j                            |j        ||d         dk                        |
                    d           g d|_        |	                    dd           |j        dgk    sJ d S )Nr   r*   r3   r   rY   rZ   r   )r9   r   listrangerU   r5   r   r   r   
add_filterremove_filterr   r   s       r8   .test_tabulator_selected_and_filtered_dataframer  h  s    			BbDs2ww$8$8999EJ!!%":B???	VS!!!J!!%":Br#w&?P<QRRR	iiEO	VS!!!?qc!!!!!!r:   c                     t                      }t          |          }|                    | |          }|j        d         dddddddddddid	d
dgk    sJ |j        d         dk    sJ d S )NrA   r<   r   r   r1   r2   r   r3   r4   r   
selectableTr9   r   r@   r   r   s        r8   test_tabulator_config_defaultsr  {  s    			BbMMENN8T**Ey)X..****	#--.     |,444444r:   c                     t                      }t          |ddd          }|                    | |          }|j        d         dddd	ddd
dddddidddgk    sJ |j        d         j        dk    sJ d S )Nz22%d   r1   r2   )widthsrA   r<   r   r   r1   )r   r   widthr2   r   r3   r4   r   rZ   )r9   r   r@   r   rA   r  r   s        r8   $test_tabulator_config_widths_percentr    s    			Bbu3!7!7888ENN8T**Ey)X..E::**	#--.     =!S((((((r:   c           	          t                      }t          |d          }|                    | |          }|j        d         ddddddddddddd	dd
ddddgk    sJ d S )NTheader_filtersrA   r<   r   )r   r   headerFilterr1   r2   r3   )r   r  r4   Fr   )r   r  r   r  r   s        r8   ,test_tabulator_header_filters_config_booleanr    s    			Bb...ENN8T**Ey)XxHH4@@4@@t,,uDD.      r:   c                     t                      }t          |ddi          }|                    | |          }|j        d         ddddddd	ddddd
diddddgk    sJ |j        d         dk    sJ d S )Nr3   r   r  rA   r<   r   r   r1   r2   valuesLookupTr   r  headerFilterParamsr4   r   r  r  r   s        r8   0test_tabulator_header_filters_column_config_listr    s    			Bb#v777ENN8T**Ey)X..****vnVZE[\\--.     |,444444r:   rE   selectautocompletec           
          t                      }t          |||ddd          }|                    | |          }|j        d         dddd	ddd
ddddddidddddiddgk    sJ |j        d         dk    sJ d S )NT)typevalues)r3   r4   r  rA   r<   r   r   r1   r2   r3   r   r  r  r4   r   )r   r  r  r   r  r  )rG   rH   rE   r]   rI   rJ   s         r8   Ptest_tabulator_header_filters_column_config_select_autocomplete_backwards_compatr    s    			Bb--* *   E
 NN8T**Ey)X..****vnVZE[\\vnVZE[grss.     |,444444r:   c           
          t                      }t          |ddddddi          }|                    | |          }|j        d         d	d
ddd
ddd
dddddiddddddgk    sJ |j        d         dk    sJ d S )Nr3   r   Tz!=z	Not equal)r  r  funcplaceholderr  rA   r<   r   r   r1   r2   r  )r   r  r  headerFilterFuncheaderFilterPlaceholderr4   r   r  r  r   s        r8   0test_tabulator_header_filters_column_config_dictr$    s    			BbfdDQ\]]*   E NN8T**Ey)X..****"#14"8 $'2	
 	
 --.     |,444444r:   c                    t          j        ddgddgddgt          j        ddd          t          j        d	dd          gt          j        ddd          t          j        d	dd          gd
dgd          }t          |          }|                    | |          }t          |j        d         j	        t                    sJ t          |j        d         j	        t                    sJ t          |j        d         j	        t                    sJ t          |j        d         j	        t                    sJ t          |j        d         j	        t                    sJ t          |j        d         j	        t                    sJ d S )NrY   rZ   r   r   r1   r2          TF)r=   r>   r?   datedatetimeboolrS   rT   r-   r   )r5   r   dtr)  r*  r   r@   rC   rA   rE   r
   r   r   r   r   r   s        r8   test_tabulator_editors_defaultr-    sg   	1vSzq!$$bgdAq&9&9:[q!,,bk$1.E.EFu  
 
B bMMENN8T**EemA&-y99999emA&-|<<<<<emA&-|<<<<<emA&-z:::::emA&-z:::::emA&-~>>>>>>>r:   c                     t          j        ddgddgddgt          j        ddd          t          j        d	dd          gt          j        ddd          t          j        d	dd          gd
          }t          |          }|                    | |          }|j        d         j        }t          |t                    sJ |j        d         j        }t          |t                    sJ |j        dk    sJ |j        d         j        }t          |t                    sJ |j        d         j        }t          |t                    sJ |j        dk    sJ |j        d         j        }t          |t                    sJ |j        dk    sJ d S )NrY   rZ   r   r   r1   r2   r&  r'  r(  )r=   r>   r?   r)  r*  z0,0.0[00000]rS   rT   z%Y-%m-%dr-   z%Y-%m-%d %H:%M:%S)r5   r   r,  r)  r*  r   r@   rA   rD   rC   r   rn   r   r   )rG   rH   r]   rI   rJ   
mformatters         r8   !test_tabulator_formatters_defaultr0    s   	1vSzq!$$bgdAq&9&9:[q!,,bk$1.E.EF  
 
B bMMENN8T**Eq!+Jj/22222q!+Jj/22222....q!+Jj/22222q!+Jj-00000
****q!+Jj-00000 3333333r:   c                     t                      }t          |ddi          }|                    | |          }|j        d         d         ddddk    sJ d S )Nr2   	tickCrossro   rA   rZ   r   )r   r   rD   r  r   s        r8   &test_tabulator_config_formatter_stringr3    sf    			Bbc;%7888ENN8T**Ey)!,#`k0l0lllllllr:   c                     t                      }t          |ddddi          }|                    | |          }|j        d         d         dddd	did
k    sJ d S )Nr2   r2  T)r  tristatero   rA   rZ   r   r5  )r   r   rD   formatterParamsr  r   s        r8   $test_tabulator_config_formatter_dictr7    s    			BbcKT+R+R%STTTENN8T**Ey)!,#`k  BL  NR  AS  1T  1T  T  T  T  T  T  Tr:   c                     t                      }t          |ddi          }|                    | |          }|j        d         d         ddddk    sJ d S )	Nr2   r  re   rA   rZ   r   r   r   r   rE   r  r   s        r8   4test_tabulator_config_editor_string_backwards_compatr:    se    			Bb3/222ENN8T**Ey)!,#]c0d0dddddddr:   c                     t                      }t          |ddi          }|                    | |          }|j        d         d         ddddk    sJ d S )Nr2   r   re   rA   rZ   r   r9  r  r   s        r8   #test_tabulator_config_editor_stringr<  (  se    			Bb3-000ENN8T**Ey)!,#]c0d0dddddddr:   c                     t                      }t          |ddddi          }|                    | |          }|j        d         d         dddd	did
k    sJ d S )Nr2   r   T)r  r  re   rA   rZ   r   r  )r   r   rE   editorParamsr  r   s        r8   !test_tabulator_config_editor_dictr?  1  s    			Bb3(N(N"OPPPENN8T**Ey)!,#]c  wE  GK  vL  1M  1M  M  M  M  M  M  Mr:   c                     t          | d          }|                    ||          }t          d |j        d         D                       rJ d S )NFsortablec              3   &   K   | ]}|d          V  dS )
headerSortN .0r   s     r8   	<genexpr>z/test_tabulator_sortable_bool.<locals>.<genexpr>=  s'      OO3|$OOOOOOr:   rA   )r   r@   anyr   rF   rG   rH   rI   rJ   s        r8   test_tabulator_sortable_boolrK  :  sX    i%000ENN8T**EOO0CI0NOOOOOOOOOOr:   c                     t          | ddi          }|                    ||          }t          d |j        d         D                       sJ d S )Nr=   FrA  c              3   P   K   | ]!}|d          dk    r	|d          n|d         V  "dS )r   r=   rD  NrE  rF  s     r8   rH  z/test_tabulator_sortable_dict.<locals>.<genexpr>C  sV       : : ),G(=(=3|$$$3|CT : : : : : :r:   rA   )r   r@   allr   rJ  s        r8   test_tabulator_sortable_dictrO  @  su    i5%.999ENN8T**E : :-i8: : : : : : : : : :r:   c                     t                      }t          |ddgddgd          }|                    | |          }|j        d         dd	d
ddd	d
dd	d
gddddiddd
gdgk    sJ d S )Nr1   r2   r3   r4   )NumberOthergroupsrA   r<   r   r   rQ  rB   rA   rR  r   r   r  r   s        r8   test_tabulator_groupsrV  G  s    			BbS#J#s!L!LMMMENN8T**Ey)X..X..X..
	 	
 cN[11
	 	.      r:   c                    t          j        t          j                            dd                    }t          |dddgi          }|                    | |          }|j        d         dd	d
ddd	d
dd	d
gddd	d
gk    sJ d S )N
   rS   rQ  r   rY   rS  rA   r<   r   r   01rU  2)r5   r   r   randomrandr   r@   r   r   s        r8   test_tabulator_numeric_groupsr^  \  s    	binnR++	,	,Bb(QF!3444ENN8T**Ey)X..X..X..
	 	
 **.      r:   c                     t                      }t          |dg          }|                    | |          }|j        d         dddddddd	ddd
didddgk    sJ d S )Nr<   )frozen_columnsrA   r   T)r   r   frozenr1   r   r2   r   r3   r4   r   r  r   s        r8   test_tabulator_frozen_colsrb  m  s    			Bb'333ENN8T**Ey)X>>****	#--.      r:   c                     t                      }t          |ddg          }|                    | |          }|j        ddgk    sJ ddg|_        |j        ddgk    sJ d S )Nr   rg   )frozen_rowsrT   rY   rS   )r9   r   r@   rd  r   s        r8   test_tabulator_frozen_rowsrf  |  sx    			Bbq"g...ENN8T**EA&&&&BEA&&&&&&r:   c                     t                      }t          |d           }|                    | |          }|j        ddgk    sJ d S )Nc                 R    t          | | j        dk             j        j                  S NrZ   )r   r1   r<   r  r]   s    r8   r   z0test_tabulator_selectable_rows.<locals>.<lambda>  s    T"RT!V*:J:Q5R5R r:   selectable_rowsrS   rT   )r9   r   r@   rl  r   s        r8   test_tabulator_selectable_rowsrm    sT    			Bb*R*RSSSENN8T**E QF******r:   z0See https://github.com/holoviz/panel/issues/3644c                    t                      }t          |d           }|                    | |          }|j        dgk    sJ t	          j        t                    5  dg|_        d d d            d S # 1 swxY w Y   d S )Nc                     dgS r   rE  rj  s    r8   r   zKtest_tabulator_selectable_rows_nonallowed_selection_error.<locals>.<lambda>  s    aS r:   rk  rY   r   )r9   r   r@   rl  r   r   r   r   r   s        r8   9test_tabulator_selectable_rows_nonallowed_selection_errorrp    s    			Bb..999ENN8T**E QC'''' 
z	"	"  #                 s   	A44A8;A8c                    t                      }t          |dd          }|                    | |          }|j        dk    sJ |j        dk    sJ |j        dk    sJ t          j        ddg          t          j        ddg          t          j        ddg          t          j        ddg          t          j        d	d
gd                              t          j	                  dz  d}|j
        j                                        D ]+\  }}t          j                            |||                    ,d|_        t          j        ddg          t          j        ddg          t          j        ddg          t          j        ddg          t          j        ddgd                              t          j	                  dz  d}|j
        j                                        D ]+\  }}t          j                            |||                    ,d|_        d|_        |j        dk    sJ t          j        g d          t          j        g d          t          j        g d          t          j        g d          t          j        g dd                              t          j	                  dz  d}|j
        j                                        D ]+\  }}t          j                            |||                    ,d S )Nr   rZ   r   rS   rY   r   r(   r)   2009-01-01T00:00:00.0000000002009-01-02T00:00:00.000000000datetime64[ns]dtype    .Ar<   r1   r2   r3   r4   r!   r"   r*   r+   2009-01-05T00:00:00.0000000002009-01-06T00:00:00.000000000r   )r   rY   r   r   )rr  rs  ry  )r9   r   r@   max_pager   r   r   r   astypeint64r   r7   itemsr   assert_array_equalrG   rH   r]   rI   rJ   expectedr   r  s           r8   test_tabulator_paginationr    s   			BbX;;;ENN8T**E>Q?a:???? 1a&!!Xq!fXq!fXvv&''X668,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<EJ 1a&!!Xq!fXr2hXvv&''X668,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<EOEJ>Q )))$$Xiii  Xiii  X...//X 8 8 8 -. . . /5fRX.>.>F	 	H |(..00 = =V

%%fhsm<<<<= =r:   c                     t                      }t          |dd          }|                    | |          }ddg|_        |j        j        j        g k    sJ d|_        |j        j        j        ddgk    sJ d S )Nr   rZ   r   rS   r   rY   )r9   r   r@   r   r   selectedr   r   r   s        r8   #test_tabulator_pagination_selectionr    s    			BbX;;;ENN8T**E!fEO< (B....EJ< (QF222222r:   c                     t                      }t          |ddd           }|                    | |          }|j        ddgk    sJ d|_        |j        dgk    sJ d S )Nr   rS   c                 F    t          | j        j        d d d                   S ri  )r   r<   r  rj  s    r8   r   z;test_tabulator_pagination_selectable_rows.<locals>.<lambda>  s    4!(<#=#= r:   )r   r   rl  r   rZ   )r9   r   r@   rl  r   r   s        r8   )test_tabulator_pagination_selectable_rowsr    s~    			B
x1==  E
 NN8T**E QF****EJ QC''''''r:   c                     t                      }t          |          }d }|j                            |dg           |                    | |          }|j        d         ddgiddgiddgiddgiddgidk    sJ d S )	Nc                     | dk    rdndS )NrZ   z
color: redzcolor: blackrE  r   s    r8   high_redz(test_tabulator_styling.<locals>.high_red  s    $qyy||n<r:   r1   )subsetr7   rZ   )colorblack)r  redr   rY   rZ   rS   rT   )r9   r   styleapplymapr@   cell_styles)rG   rH   r]   rI   r  rJ   s         r8   test_tabulator_stylingr    s    			BbMME= = = 
K3%000NN8T**EV$"#$"#$"#$ !" !") )      r:   c                 ,   t                      }t          j        g |j                  }t	          |          }|                    | |           |j        j        |j        k    sJ |                    |d           |j        j        |j        k    sJ d S )Nr   Tfollow)	r9   r5   r   rA   r   r@   r~   shapestream)rG   rH   value_dfempty_dfrI   s        r8   test_tabulator_empty_tabler    s    !##H|B(8999HhE	NN8T""";....	LL$L''';......r:   c                    t          j        t          j                            dd                    }t          |          }ddddg|_        t           j                            |j	        |
                    d                     d S )	NrX  rT   r<   r   descr   r   dirF	ascending)r5   r   r   r\  r]  r   sortersr   r   current_view
sort_indexr   s       r8   $test_tabulator_sorters_unnamed_indexr    s{    	binnR++	,	,BbMME&(6JJKEMJ!!
&&    r:   c                    t          j        t          j                            dd                    }t          |          }dddg|_        t           j                            |j	        |
                    dgd                     d S )	NrX  rT   rY  r  )r   r  r   Fr  )r5   r   r   r\  r]  r   r  r   r   r  sort_valuesr   s       r8   &test_tabulator_sorters_int_name_columnr  !  s}    	binnR++	,	,BbMME"6223EMJ!!
se,,    r:   c           
         t                      }t          |          }|                    | |          }t          j        dddt          j        ddd          d          }|                    |           t          |j	                  dk    sJ t          j        g d          t          j        g d          t          j        g d	          t          j        g d
          t          j        g dd                              t          j                  dz  d}|j        j                                        D ]+\  }}t          j                            |||                    ,d S )Nr-   rY   foo6r&  r'  r0   r   )r   rY   rZ   rS   rT   r-   )r   rY   r   rY   r   rY   )r(   r)   r*   r+   r,   r  )rr  rs  ry  rz  2009-01-07T00:00:00.0000000002009-01-08T00:00:00.000000000rt  ru  rw  rx  r9   r   r@   r5   Seriesr,  r*  r  rU   r~   r   r   r|  r}  r   r7   r~  r   r  	rG   rH   r]   rI   rJ   stream_valuer  r   r  s	            r8   test_tabulator_stream_seriesr  -  sq   			BbMMENN8T**E9116DRSUV@W@WXXYYL	LLu{q     ,,,--X((())X((())XFFFGGX 8 8 8 -. . . /5fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c           
         t                      }t          |          }|                    | |          }t          j        dddt          j        ddd          d          }|                    |d           t          |j	                  dk    sJ t          j        g d          t          j        g d          t          j        g d	          t          j        g d
          t          j        g dd                              t          j                  dz  d}|j        j                                        D ]+\  }}t          j                            |||                    ,d S Nr-   rY   r  r&  r'  r0   )rollover)rY   rZ   rS   rT   r-   )rY   r   rY   r   rY   )r)   r*   r+   r,   r  )rs  ry  rz  r  r  rt  ru  rw  rx  r  r  s	            r8   %test_tabulator_stream_series_rolloverr  J  sl   			BbMMENN8T**E9116DRSUV@W@WXXYYL	LLL***u{q     ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . .
 /5fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                    t                      }t          |          }|                    | |          }t          j        dgdgdgt          j        t          j        ddd                    gd          }|	                    |d           t          |j                  dk    sJ t          j        g d          t          j        g d          t          j        g d	          t          j        g d
          t          j        g dd                              t
          j                  dz  d}|j        j                                        D ]+\  }}t
          j                            |||                    ,d S r  )r9   r   r@   r5   r   r   
datetime64r,  r*  r  rU   r~   r   r|  r}  r   r7   r~  r   r  r  s	            r8   !test_tabulator_stream_df_rolloverr  e  s   			BbMMENN8T**E<qc6("-XZXcdhjkmnXoXoJpJpIq r rssL	LLL***u{q     ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . .
 /5fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                    t                      }t          |          }|                    | |          }dgdgdgt          j        ddd          gd}|                    |d           t          |j                  dk    sJ t          j	        g d          t          j	        g d          t          j	        g d	          t          j	        g d
          t          j	        g dd          
                    t          j                  dz  d}|j        j                                        D ]+\  }}t          j                            |||                    ,d S r  )r9   r   r@   r,  r*  r  rU   r~   r   r   r|  r}  r   r7   r~  r   r  r  s	            r8   #test_tabulator_stream_dict_rolloverr    sj   			BbMMENN8T**EA3fXR[qRS=T=T<UVVL	LLL***u{q     ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . .
 /5fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                    t                      }t          |          }|                    | |          }|                    ddgdgd           t	          j        g d          t	          j        g d          t	          j        g d          t	          j        g d          t	          j        g d	d
          d}|j        j                                        D ]\  }}|dk    r)||         	                    t          j
                  dz  }n||         }t          j                            ||           |dk    r6t          j                            |j        |         j        ||                    d S )Nr   rZ   rT   rY   r   foo0r1   r3   r  rZ   rY   rZ   rS   rY   r   rY   r   rY   r   r  r)   r*   r+   r,   rr  rs  ry  rz  r  rt  ru  rx  r4   rw  r<   )r9   r   r@   patchr   r   r   r7   r~  r|  r}  r   r  r~   r  	rG   rH   r]   rI   rJ   r  r   r  expected_arrays	            r8   test_tabulator_patch_scalarsr    sw   			BbMMENN8T**E	KKvv&k];;<<< ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . . H |(..00 R RV#::%c]11"(;;dBNN%c]N

%%fn==='>>J))%+c*:*A8C=QQQR Rr:   c                    t                      }t          |          }|                    | |          }|                    t	          j        dddgiddg                     t          j        g d          t          j        g d          t          j        g d	          t          j        g d
          t          j        g dd          d}|j        j	        
                                D ]\  }}|dk    r)||                             t          j                  dz  }n||         }t          j                            ||           |dk    r6t          j                            |j        |         j        ||                    d S )Nr1   rZ   rY   r   rT   r[   r  r  r  r'   r  rt  ru  rx  r4   rw  r<   )r9   r   r@   r  r5   r   r   r   r   r7   r~  r|  r}  r   r  r~   r  r  s	            r8   #test_tabulator_patch_with_dataframer    s   			BbMMENN8T**E	KKcAq6]1a&999::: ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . . H |(..00 R RV#::%c]11"(;;dBNN%c]N

%%fn==='>>J))%+c*:*A8C=QQQR Rr:   c                    t          j        t          g d          g d          }t          j        t          dg          dg          }t          |          }|                    | |          }|                    |           t          j        g d          t          j        g d          d}|j        j	        
                                D ]i\  }}||         }	t          j                            ||	           |d	k    r6t          j                            |j        |         j        ||                    jd S )
NrY   rT   rZ   r   r   r[   rX  r)   rY   rX  rZ   r<   r1   r<   )r5   r   dictr   r@   r  r   r   r   r7   r~  r   r  r~   r  
rG   rH   r]   df_patchrI   rJ   r  r   r  r  s
             r8   0test_tabulator_patch_with_dataframe_custom_indexr    s4   	dYYY'''/G/G/G	H	H	HB|DB4LLL999HbMMENN8T**E	KK 22233Xjjj!! H |(..00 R RV!#

%%fn==='>>J))%+c*:*A8C=QQQ	R Rr:   c                    t          j        t          g d          g d          }d|j        _        t          j        t          dg          dg          }d|j        _        t          |          }|                    | |          }|                    |           t          j	        g d          t          j	        g d          d	}|j
        j                                        D ]i\  }}||         }	t          j                            ||	           |dk    r6t          j                            |j        |         j        ||                    jd S )
Nr  r   r   r[   foorX  r)   r  )r  r1   )r5   r   r  r<   namer   r@   r  r   r   r   r7   r~  r   r  r~   r  r  s
             r8   5test_tabulator_patch_with_dataframe_custom_index_namer    sF   	dYYY'''/G/G/G	H	H	HBBHM|DB4LLL999HBHMbMMENN8T**E	KK x00011Xjjj!! H |(..00 R RV!#

%%fn===%<<J))%+c*:*A8C=QQQ	R Rr:   c                 v   t                      g d         }g d|_        t          |          }|                    | |          }|                    |           t          j        g d          t          j        g d          t          j        g d          t          j        g d          d}|j        j        	                                D ]i\  }}||         }t
          j
                            ||           |dk    r6t
          j
                            |j        |         j        ||                    jd S )Nrb   )r   rY   rZ   rS   rX  r  r  r'   )r<   r1   r2   r3   r<   )r9   r<   r   r@   r  r   r   r   r7   r~  r   r  r~   r  r  s	            r8   9test_tabulator_patch_with_complete_dataframe_custom_indexr    s-   			ooo	.BBHbMMENN8T**E	KKOOO ***++Xooo&&Xooo&&X>>>??	 H |(..00 R RV!#

%%fn==='>>J))%+c*:*A8C=QQQ	R Rr:   c                    t          j        t          g d          g d          }|                                }t          j        t          ddg          ddg          }t	          |          }t          j        t          d	          5  |                    |           d d d            n# 1 swxY w Y   t           j	        
                    |j        |           d S )
Nr  r   )r(   r(   r*   r[      rX  r(   zbPatching a table with duplicate index values is not supported\. Found this duplicate index: 'foo1'match)r5   r   r  r   r   r   r   r   r  r   r   r~   )rG   rH   r]   originalr  rI   s         r8   ?test_tabulator_patch_with_dataframe_custom_index_multiple_errorr    s   	dYYY'''/G/G/G	H	H	HBwwyyH|DB8,,,VV4DEEEHbMME	s
 
 
   	H	               J!!%+x88888s   B11B58B5c                 B   t                                          dd          }t          |          }|                    | |          }|                    t          j        dddgiddg          d	           t          j        g d
          t          j        g d          t          j        g d          t          j        g d          t          j        g dd          d}|j	        j
                                        D ]\  }}|dk    r)||                             t          j                  dz  }n||         }t          j                            ||           |dk    r6t          j                            |j        |         j        ||                    d S )Nr1   Fr  rZ   rY   r   rT   r[   as_indexrT   rS   rZ   rY   r   rZ   rS   rZ   rY   rY   r  )r,   r+   r*   r)   r(   r  rz  ry  rs  rr  rt  ru  rx  r4   rw  r<   )r9   r  r   r@   r  r5   r   r   r   r   r7   r~  r|  r}  r   r  r~   r  r  s	            r8   0test_tabulator_patch_with_dataframe_not_as_indexr  '  s   				)	)#	)	?	?BbMMENN8T**E	KKcAq6]1a&999EKJJJ ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . . H |(..00 R RV#::%c]11"(;;dBNN%c]N

%%fn==='>>J))%+c*:*A8C=QQQR Rr:   c                    t                      }t          |          }|                    | |          }|                    t	          j        ddgddgd                     t          j        g d          t          j        g d          t          j        g d	          t          j        g d
          t          j        g dd          d}|j        j	        
                                D ]\  }}|dk    r)||                             t          j                  dz  }n||         }t          j                            ||           |dk    r6t          j                            |j        |         j        ||                    d S )NrZ   rY   r   rT   r1   )r<   r  r  r  r  r'   r  rt  ru  rx  r4   rw  r<   )r9   r   r@   r  r5   r  r   r   r   r7   r~  r|  r}  r   r  r~   r  r  s	            r8    test_tabulator_patch_with_seriesr  D  s   			BbMMENN8T**E	KK	1a&AS999::: ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . . H |(..00 R RV#::%c]11"(;;dBNN%c]N

%%fn==='>>J))%+c*:*A8C=QQQR Rr:   c                    t                                          dd          }t          |          }|                    | |          }|                    ddgdgdd           t          j        g d	          t          j        g d
          t          j        g d          t          j        g d          t          j        g dd          d}|j        j        	                                D ]\  }}|dk    r)||         
                    t
          j                  dz  }n||         }t
          j                            ||           |dk    r6t
          j                            |j        |         j        ||                    d S )Nr1   Fr  r  r  r  r  r  r  r  r  )r  r+   r*   r)   r(   r  rt  ru  rx  r4   rw  r<   )r9   r  r   r@   r  r   r   r   r7   r~  r|  r}  r   r  r~   r  r  s	            r8   )test_tabulator_patch_scalars_not_as_indexr  a  s   				)	)#	)	?	?BbMMENN8T**E	KKvv&k];;eKLLL ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . . H |(..00 R RV#::%c]11"(;;dBNN%c]N

%%fn==='>>J))%+c*:*A8C=QQQR Rr:   c                    t                      }t          |dddddg          }|                    | |          }|                    ddgd	gd
           t	          j        g d          t	          j        g d          t	          j        g d          t	          j        g d          t	          j        g dd          d}t	          j        dg          t	          j        dg          t	          j        dg          t	          j        dg          t	          j        dgd                              t          j                  dz  d}|j        j	        
                                D ]g\  }}t          j                            |||                    |dk    r6t          j                            |j        |         j        ||                    hd S )Nr1   r   >r[  r   r   r  r~   )filtersr  r  r  r  r  r  r  r  r  rt  ru  rx  rS   rY   r+   rz  rw  r<   r9   r   r@   r  r   r   r|  r}  r   r7   r~  r   r  r~   r  	rG   rH   r]   rI   rJ   expected_dfexpected_srcr   r  s	            r8   !test_tabulator_patch_with_filtersr  ~  s   			BbSHc\_#`#`"abbbENN8T**E	KKvv&k];;<<< ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . . K 1#Xqc]]Xqc]]XvhX67,. . ..4fRX.>.>F L |(..00  V

%%fl3.?@@@'>>J))C 'S)9   r:   c                    t                      }t          |ddddg          }|                    | |          }|                    ddgdgd	           t	          j        g d
          t	          j        g d          t	          j        g d          t	          j        g d          t	          j        g dd          d}t	          j        g d
          t	          j        g d          t	          j        g d          t	          j        g d          t	          j        g dd                              t          j                  dz  d}|j        j	        
                                D ]g\  }}t          j                            |||                    |dk    r6t          j                            |j        |         j        ||                    hd S )Nr1   r   r  r  r  r  r  r  r  r  r  r  r  r  rt  ru  rx  )r#   r"   r#   r$   r"   r&   rw  r<   r  r  s	            r8   !test_tabulator_patch_with_sortersr    s   			BbSHV#T#T"UVVVENN8T**E	KKvv&k];;<<< ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . . K ///**X***++X***++X>>>??X 8 8 8
 -. . .
 /5fRX.>.>F L |(..00  V

%%fl3.?@@@'>>J))C 'S)9   r:   c                    t                      }t          |ddddgddd          }|                    | |          }|                    d	d
gdgd           t	          j        g d          t	          j        g d          t	          j        g d          t	          j        g d          t	          j        g dd          d}t	          j        ddg          t	          j        ddg          t	          j        ddg          t	          j        ddg          t	          j        ddgd                              t          j                  dz  d}|j        j	        
                                D ]g\  }}t          j                            |||                    |dk    r6t          j                            |j        |         j        ||                    hd S )Nr1   r   r  r  r   rS   rZ   )r  r   r   r   r  r  r  r  r  r  r  r  r  rt  ru  rx  rY   rT   r   r)   r,   rs  r  rw  r<   r  r  s	            r8   0test_tabulator_patch_with_sorters_and_paginationr    s   			B
shvFFGqq  E
 NN8T**E	KKvv&k];;<<< ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . . K 1a&!!Xq!fXq!fXvv&''X668,. . ..4fRX.>.>F L |(..00  V

%%fl3.?@@@'>>J))C 'S)9   r:   c                 2   t                      }t          |          }|                    | |          }|                    t	          dd          g dfgt	          dd          g dfgd           t          j        g d          t          j        g d          t          j        g d          t          j        g d	          t          j        g d
d          d}|j        j        	                                D ]\  }}|dk    r)||         
                    t
          j                  dz  }n||         }t
          j                            ||           |dk    r6t
          j                            |j        |         j        ||                    d S )Nr   r-   )r-   rT   rS   rZ   rY   rS   )r*   r)   r(   r  r  r  )r*   r)   r(   r+   r,   r  rt  ru  rx  r4   rw  r<   )r9   r   r@   r  slicer   r   r   r7   r~  r|  r}  r   r  r~   r  r  s	            r8   test_tabulator_patch_rangesr    s   			BbMMENN8T**E	KKQ{{OOO,-Q{{44456     ///**Xooo&&Xooo&&X>>>??X 8 8 8
 -. . . H |(..00 R RV#::%c]11"(;;dBNN%c]N

%%fn==='>>J))%+c*:*A8C=QQQR Rr:   c                    t          j        t          t          j        ddg                              }t	          |          }|                    | |          }|                    ddt          j        d          fgi           t          j	        ddg          t          j	        dd	gd
          d}|j
        j                                        D ]\  }}|dk    r)||                             t          j                  dz  }n||         }t          j                            ||           |dk    r6t          j                            |j        |         j        ||                    d S )N
1980-01-01z
1980-01-02r   r1   r   z
2021-01-01rY   z2021-01-01T00:00:00.000000000z1980-01-02T00:00:00.000000000rt  ru  r  rw  r<   )r5   r   r  to_datetimer   r@   r  	Timestampr   r   r   r7   r~  r|  r}  r   r  r~   r  r  s	            r8   #test_tabulator_patch_with_timestampr     sa   	dR^\<,HIIJJJ	K	KBbMMENN8T**E	KK2<55678999 1a&!!X668,. . . H |(..00 R RV#::%c]11"(;;dBNN%c]N

%%fn==='>>J))%+c*:*A8C=QQQR Rr:   c                 T   t          j        t          t          j        dt          j        g                              }|j        d         t           j        u sJ t          |          }|	                    | |          }|
                    ddt           j        fgi           t	          j        ddg          t	          j        t          t          g          d}|j        j                                        D ]-\  }}||         }t          j                            ||           .d S )Nr  r   )rY   r1   r1   r   rY   r  )r5   r   r  r  r   nanlocNaTr   r@   r  r   r   r   r7   r~  r   r  r  s	            r8   test_tabulator_patch_with_NaTr  '  s   	dR^\26,BCCDDD	E	EB6&>RV####bMMENN8T**E	KK26{m$%%%
 1a&!!X|\233 H |(..00 > >V!#

%%fn====> >r:   c           
         t                      }t          |dd          }|                    | |          }t          j        dddt          j        ddd          d	          }|                    |d
           |j        dk    sJ t          |j
                  dk    sJ t          j        ddg          t          j        ddg          t          j        ddg          t          j        ddg          t          j        ddgd                              t          j                  dz  d}|j        j                                        D ]+\  }}t          j                            |||                    ,d S )Nr   rZ   r   r-   rY   r  r&  r'  r0   Fr  r   r   r(   r)   rr  rs  rt  ru  rw  rx  r9   r   r@   r5   r  r,  r*  r  r   rU   r~   r   r   r|  r}  r   r7   r~  r   r  r  s	            r8   1test_tabulator_stream_series_paginated_not_followr  =  sz   			BbX;;;ENN8T**E9116DRSUV@W@WXXYYL	LLeL,,,:????u{q     1a&!!Xq!fXq!fXvv&''X668,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c           
         t                      }t          |dd          }|                    | |          }t          j        dddt          j        ddd          d	          }|                    |d
           |j        dk    sJ t          |j
                  dk    sJ t          j        ddg          t          j        ddg          t          j        ddg          t          j        ddg          t          j        ddgd                              t          j                  dz  d}|j        j                                        D ]+\  }}t          j                            |||                    ,d S )Nr   rZ   r   r-   rY   r  r&  r'  r0   Tr  rS   r   rT   r   r,   r  r  rt  ru  rw  rx  r  r  s	            r8   -test_tabulator_stream_series_paginated_followr
  W  sz   			BbX;;;ENN8T**E9116DRSUV@W@WXXYYL	LLdL+++:????u{q     1a&!!Xq!fXq!fXvv&''X668,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                    t                      }t          |dd          }ddddg|_        |                    | |          }dg|_        |j        j        j        d	gk    sJ d
d	g|_        |j        j        j        g k    sJ ddg|_        |j        j        j        d	d
gk    sJ g |_        |j        j        j        g k    sJ |                    dd
d	gi           |j        ddgk    sJ |                    dd	gi           |j        dgk    sJ ddddg|_        |                    dd	gi           |j        d	gk    sJ d S )Nr   rZ   r   r1   r   decr  rS   rY   r   rT   r   asc)	r9   r   r  r@   r   r   r  r   r   r   s        r8   )test_tabulator_paginated_sorted_selectionr  q  s   			BbX;;;E"huEEFEMNN8T**EcEO< (QC////!fEO< (B....!fEO< (QF2222EO< (B....	9q!f-...?q!f$$$$	9qc*+++?qc!!!!"huEEFEM	9qc*+++?qc!!!!!!r:   c                    t                      }t          |          }|                    | |          }t          j        ddgddgddgt          j        ddd          t          j        ddd	          gd
          }|                    |           t          |j	                  dk    sJ t          j        g d          t          j        g d          t          j        g d          t          j        g d          t          j        g dd                              t          j                  dz  d}|j        j                                        D ]+\  }}t          j                            |||                    ,d S )Nr-   r   rY   r   r  foo7r&  r'  r   r0   r   )r   rY   rZ   rS   rT   r-   r   )r   rY   r   rY   r   rY   r   )r(   r)   r*   r+   r,   r  r  )rr  rs  ry  rz  r  r  2009-01-09T00:00:00.000000000rt  ru  rw  rx  )r9   r   r@   r5   r   r,  r*  r  rU   r~   r   r   r|  r}  r   r7   r~  r   r  r  s	            r8   test_tabulator_stream_dataframer    s   			BbMMENN8T**E<VVfk$1%%r{4A'>'>?	! !  L 
LLu{q     ///00X+++,,X+++,,XNNNOOX 8 8 8 -. . . /5fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c           	      v   t                      }t          |          }ddddg|_        t          j        t          j        dg          t          j        dg          t          j        dg          t          j        dgd	          d
dg          }t          j                            |j	        |           d S )Nr3   =r*   r   r  r~   r#   r!   ry  rt  ru  r0   rZ   r[   
r9   r   r  r5   r   r   r   r   r   
_processedrG   rH   r]   rI   r  s        r8   1test_tabulator_constant_scalar_filter_client_sider    s    			BbMME"C&AABEM|Xrd^^Xrd^^XvhX67,. . .	  S  H J!!%"2H=====r:   c           	      x   t                      }t          |          }dddddg|_        t          j        t          j        dg          t          j        dg          t          j        dg          t          j        d	gd
          ddg          }t          j                            |j	        |           d S )Nr<   r   r  rZ   r  r#   r!   r*   ry  rt  ru  r0   r[   r  r  s        r8   :test_tabulator_constant_scalar_filter_on_index_client_sider    s    			BbMME&(CRSTTUEM|Xrd^^Xrd^^XvhX67,. . .	  S  H J!!%"2H=====r:   c           	         t                      }t          |                    ddg                    }dddddddddg|_        t	          j        t          j        d	g          t          j        dg          t          j        d
g          t          j        dgd          d          }t          j        	                    |j
        |           d S )Nr1   r3   r   r  rZ   r  r*   r  r#   r!   ry  rt  ru  )r1   r3   r2   r4   )r9   r   r   r  r5   r   r   r   r   r   r  r  s        r8   @test_tabulator_constant_scalar_filter_on_multi_index_client_sider    s    			BbllC:..//E 3CCsV44EM
 |Xrd^^XvhXrd^^X67,. . .	   H J!!%"2H=====r:   c           	         t                      }t          |          }ddddgdg|_        t          j        t          j        ddg          t          j        dd	g          t          j        ddg          t          j        d
dgd          dddg          }t          j                            |j	        |           d S )Nr3   inr*   r,   r  rZ   r%   r   r!   ry  r  rt  ru  r0   rT   r[   r  r  s        r8   /test_tabulator_constant_list_filter_client_sider     s    			BbMME"DFF;KLLMEM|Xq"gXq"gXvv&''X668,. . .	  V  H J!!%"2H=====r:   c           	      x   t                      }t          |          }dddgdg|_        t          j        t          j        dg          t          j        dg          t          j        dg          t          j        dgd	          d
dg          }t          j                            |j	        |           d S )Nr3   r  r*   r  r#   r!   ry  rt  ru  r0   rZ   r[   r  r  s        r8   >test_tabulator_constant_single_element_list_filter_client_sider"    s    			BbMME"DF8DDEEM|Xrd^^Xrd^^XvhX67,. . .	  S  H J!!%"2H=====r:   c           	         t                      }t          |          }ddddg|_        t          j        t          j        ddg          t          j        ddg          t          j        d	d
g          t          j        ddgd          dddg          }t          j                            |j	        |           d S )Nr3   keywords	foo3 foo5r  rZ   r%   r   r!   r*   r,   ry  r  rt  ru  r0   rT   r[   r  r  s        r8   *test_tabulator_keywords_filter_client_sider&    s    			BbMME"JMMNEM|Xq"gXq"gXvv&''X668,. . .	  V  H J!!%"2H=====r:   c           	         t                      }t          |dddddi          }ddddg|_        t          j        t          j        d	g          t          j        d
g          t          j        dg          t          j        dgd          ddg          }t          j                            |j	        |           d S )Nr3   inputr$  Tr  r   matchAllr  f oo 3r  r#   r!   r*   ry  rt  ru  r0   rZ   r[   r  r  s        r8   4test_tabulator_keywords_match_all_filter_client_sider,    s    			Bb#ae/f/f)ghhhE"JJJKEM|Xrd^^Xrd^^XvhX67,. . .	  S  H J!!%"2H=====r:   c                 .   t                      }t          |d          }|                    | |          }ddddg|_        t	          j        dg          t	          j        dg          t	          j        dg          t	          j        dg          t	          j        d	gd
                              t          j                  dz  d}|j        j	        
                                D ]+\  }}t          j                            |||                    ,d S )Nr   r   r3   r  r*   r  rZ   r   ry  rt  ru  rw  rx  r9   r   r@   r  r   r   r|  r}  r   r7   r~  r   r  r  s           r8   Atest_tabulator_constant_scalar_filter_with_pagination_client_sider0     s   			BbX...ENN8T**E"C&AABEM 1#Xqc]]Xqc]]XvhX67,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                 0   t                      }t          |d          }|                    | |          }dddddg|_        t	          j        dg          t	          j        dg          t	          j        dg          t	          j        d	g          t	          j        d
gd                              t          j                  dz  d}|j        j	        
                                D ]+\  }}t          j                            |||                    ,d S )Nr   r.  r<   r   r  rZ   r  r   r*   ry  rt  ru  rw  rx  r/  r  s           r8   Jtest_tabulator_constant_scalar_filter_on_index_with_pagination_client_sider2  3  s   			BbX...ENN8T**E&(CRSTTUEM 1#Xqc]]Xqc]]XvhX67,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                 d   t                      }t          |                    ddg          d          }|                    | |          }dddddddd	d
g|_        t          j        dg          t          j        dg          t          j        d	g          t          j        dg          t          j        dgd                              t
          j                  dz  d}|j	        j
                                        D ]+\  }}t
          j                            |||                    ,d S )Nr1   r3   r   r.  r   r  rZ   r  r*   r  r   ry  rt  ru  rw  )r<   r1   r3   r2   r4   )r9   r   r   r@   r  r   r   r|  r}  r   r7   r~  r   r  r  s           r8   Ptest_tabulator_constant_scalar_filter_on_multi_index_with_pagination_client_sider4  F  s0   			BbllC:..8DDDENN8T**E 3CCsV44EM 1#Xqc]]XvhXqc]]X67,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                 <   t                      }t          |d          }|                    | |          }ddddgdg|_        t	          j        dd	g          t	          j        dd	g          t	          j        d
d
g          t	          j        ddg          t	          j        ddgd                              t          j                  dz  d}|j        j	        
                                D ]+\  }}t          j                            |||                    ,d S )Nr   r.  r3   r  r*   r,   r  rZ   rT   r   ry  r  rt  ru  rw  rx  r/  r  s           r8   ?test_tabulator_constant_list_filter_with_pagination_client_sider6  \  s&   			BbX...ENN8T**E"DFF;KLLMEM 1a&!!Xq!fXq!fXvv&''X668,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                 8   t                      }t          |d          }|                    | |          }ddddg|_        t	          j        ddg          t	          j        ddg          t	          j        d	d	g          t	          j        d
dg          t	          j        ddgd                              t          j                  dz  d}|j        j	        
                                D ]+\  }}t          j                            |||                    ,d S )Nr   r.  r3   r$  r%  r  rZ   rT   r   r*   r,   ry  r  rt  ru  rw  rx  r/  r  s           r8   :test_tabulator_keywords_filter_with_pagination_client_sider8  q  s!   			BbX...ENN8T**E"JMMNEM 1a&!!Xq!fXq!fXvv&''X668,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                 <   t                      }t          |dddddid          }|                    | |          }dddd	g|_        t	          j        d
g          t	          j        d
g          t	          j        dg          t	          j        dg          t	          j        dgd                              t          j                  dz  d}|j        j	        
                                D ]+\  }}t          j                            |||                    ,d S )Nr3   r(  r$  Tr)  r   )r  r   r+  r  rZ   r   r*   ry  rt  ru  rw  rx  r/  r  s           r8   Dtest_tabulator_keywords_match_all_filter_with_pagination_client_sider:    s)   			B
C':SW!X!XY  E
 NN8T**E"JJJKEM 1#Xqc]]Xqc]]XvhX67,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                 >   t                      }t          |          }|                    | |          }|                    dd           t	          j        dg          t	          j        dg          t	          j        dg          t	          j        dg          t	          j        dgd                              t          j                  dz  d	}|j        j	        
                                D ]+\  }}t          j                            |||                    ,d S )
Nr*   r3   rZ   r   ry  rt  ru  rw  rx  r9   r   r@   r  r   r   r|  r}  r   r7   r~  r   r  r  s           r8   %test_tabulator_constant_scalar_filterr=    s   			BbMMENN8T**E	VS!!! 1#Xqc]]Xqc]]XvhX67,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                    t                      }t          |          }|                    | |          }t          d          }|                    |d           t          j        dg          t          j        dg          t          j        dg          t          j        dg          t          j        dgd                              t
          j                  d	z  d
}|j	        j
                                        D ]+\  }}t
          j                            |||                    ,d|_        t          j        dg          t          j        dg          t          j        dg          t          j        dg          t          j        dgd                              t
          j                  d	z  d
}|j	        j
                                        D ]+\  }}t
          j                            |||                    ,d S )Nr*   r   r3   rZ   r   ry  rt  ru  rw  rx  r(   rr  )r9   r   r@   r   r  r   r   r|  r}  r   r7   r~  r   r  r~   )	rG   rH   r]   rI   rJ   widgetr  r   r  s	            r8   #test_tabulator_widget_scalar_filterr@    s   			BbMMENN8T**EV$$$F	VS!!! 1#Xqc]]Xqc]]XvhX67,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<FL 1#Xqc]]Xqc]]XvhX67,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   r   r0   c                    t                      }d|j        d<   d|j        d<   t          |          }|                    | |          }t	          |j        ddgd d f         |                   }|                    ||           t          j        ddg          t          j        ddg          t          j        ddg          t          j        d	d
g          t          j        ddgd          	                    t          j
                  dz  d}|j        j                                        D ]+\  }}t          j                            |||                    ,d S )Ng      $@)rZ   r2   g      4@)rT   r2   rZ   rT   r#   r%   r*   r,   ry  r  rt  ru  rw  rx  )r9   atr   r@   r   r   r  r   r   r|  r}  r   r7   r~  r   r  )rG   rH   r   r]   rI   rJ   r  r  s           r8   #test_tabulator_constant_list_filterrC    sY   			B BE&MBE&MbMMENN8T**E"'1a&!!!)$S)**F	VS!!! 1a&!!Xr2hXsCj!!Xvv&''X668,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                 6   t                      }t          |          }|                    | |          }t          d          }d }|                    t          ||          d           t          j        dg          t          j        dg          t          j        dg          t          j        dg          t          j        dgd	                              t          j	                  d
z  d}|j
        j                                        D ]+\  }}	t          j                            |	||                    ,d|_        t          j        dg          t          j        dg          t          j        dg          t          j        dg          t          j        dgd	                              t          j	                  d
z  d}|j
        j                                        D ]+\  }}	t          j                            |	||                    ,d S )Nr*   r   c                 L    | | j         j                            |                   S rv   )r3   r?   contains)r]   r~   s     r8   filter_cz0test_tabulator_function_filter.<locals>.filter_c  s    "$(##E**++r:   r3   rZ   r   ry  rt  ru  rw  rx  r(   rr  )r9   r   r@   r   r  r   r   r   r|  r}  r   r7   r~  r   r  r~   )
rG   rH   r]   rI   rJ   r?  rG  r  r   r  s
             r8   test_tabulator_function_filterrH    s   			BbMMENN8T**EV$$$F, , , 
T(&1113777 1#Xqc]]Xqc]]XvhX67,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<FL 1#Xqc]]Xqc]]XvhX67,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                 H   t                      }t          |          }|                    | |          }|                    dd           t	          j        ddg          t	          j        ddg          t	          j        ddg          t	          j        ddg          t	          j        d	d
gd                              t          j                  dz  d}|j        j	        
                                D ]+\  }}t          j                            |||                    ,d S )N)rZ   rS   r1   rZ   rS   r   rY   r*   r+   ry  rz  rt  ru  rw  rx  r<  r  s           r8   $test_tabulator_constant_tuple_filterrJ    s   			BbMMENN8T**E	VS!!! 1a&!!Xq!fXq!fXvv&''X668,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                 <   t                      }t          |          }|                    | |          }|                    ddgd           t	          j        ddgddgddgt          j        d	dd
          t          j        d	dd          gd          }|                    |           t          |j
                  dk    sJ t          j        ddg          t          j        ddg          t          j        ddg          t          j        ddg          t          j        ddgd                              t          j                  dz  d}|j        j                                        D ]+\  }}t          j                            |||                    ,d S )Nr)   r  r3   r-   r   rY   r   r  r&  r'  r   r0   r   rs  r  rt  ru  rw  rx  )r9   r   r@   r  r5   r   r,  r*  r  rU   r~   r   r   r|  r}  r   r7   r~  r   r  r  s	            r8   +test_tabulator_stream_dataframe_with_filterrL  $  s   			BbMMENN8T**E	ff%s+++<VVfk$1%%r{4A'>'>?	! !  L 
LLu{q     1a&!!Xq!fXq!fXvv&''X668,. . ..4fRX.>.>F H |(..00 = =V

%%fhsm<<<<= =r:   c                 j   t                      }t          |d           }|                    | |          }|j        g dk    sJ t	          j        ddgddgdd	gt          j        d
dd          t          j        d
dd          gd          }|                    |           |j        g dk    sJ d S )Nc                 X    t          t          dt          |           d                    S )Nr   rZ   )r   r  rU   rj  s    r8   r   zAtest_tabulator_stream_dataframe_selectable_rows.<locals>.<lambda>E  s     T%3r77A:N:N5O5O r:   rk  )r   rZ   rT   r-   r   rY   r   r  r  r&  r'  r   r0   )r   rZ   rT   r   )	r9   r   r@   rl  r5   r   r,  r*  r  )rG   rH   r]   rI   rJ   r  s         r8   /test_tabulator_stream_dataframe_selectable_rowsrO  C  s    			Bb*O*OPPPENN8T**E III----<VVfk$1%%r{4A'>'>?	! !  L 
LL LLL000000r:   c                    t                      }t          |          }|                    | |          }t          j        ddddddd          }d|j        _        d|j        _        ||_        t          |j                  d	k    sJ |j        \  }}}|j
        dk    sJ |j
        d
k    sJ |j
        dk    sJ |j        ddidd
iddigdddk    sJ t          j        ddgt                    t          j        ddgt                    t          j        ddgt                    d}	|j        j                                        D ]+\  }
}t          j                            ||	|
                    ,d S )NR0C0R1C0)R_l0_g0R_l0_g1R0C1R1C1)C_l0_g0C_l0_g1R0C0rS   rW  rX  r   TF)rA   r  dataTreeru  rS  rT  )rW  rX  rY  )r9   r   r@   r5   r   r<   r  rA   r~   rU   r   r   r   r   objectr   r7   r~  r   r  )rG   rH   r]   rI   rJ   	custom_dfc1c2c3r  r   r  s               r8   %test_tabulator_dataframe_replace_datara  V  s   			BbMMENN8T**E%&99%&99   I  IO!IEKu}""""JBB8t8y    8y    dOgy%9GY;OP# #     8VV,F;;;8VV,F;;;h	9-V<<< H
 |(..00 = =V

%%fhsm<<<<= =r:   c                     t                      } t          |           }|                                \  }}t          |t                    sJ t          |t
                    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d S )Nz	table.csvFilenameDownloadr9   r   download_menurC   r   r   r~   r  r]   rI   filenamebuttons       r8   $test_tabulator_download_menu_defaultrj  v  s    			BbMME**,,Hfh	*****ff%%%%%>[((((=J&&&&;*$$$$$$r:   c                  (   t                      } t          |           }|                    dddddi          \  }}t          |t                    sJ t          |t
                    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d S )NzEnter filenamezfile.csv)r  r~   r  zDownload table)text_kwargsbutton_kwargsre  rg  s       r8   *test_tabulator_download_menu_custom_kwargsrn    s    			BbMME**-
CC/0 +  Hf
 h	*****ff%%%%%>Z''''=,,,,,;*******r:   c                  Z   t                      } t          |           }g |                    fd           | j        D ]j}t	          t          |                     D ]K}t          d ||          }|                    |           d         ||| |         j        |         fk    sJ Lkd S )Nc                 R                         | j        | j        | j        f          S rv   rx   columnr   r~   er  s    r8   r   z,test_tabulator_patch_event.<locals>.<lambda>  s     FMM18QUAG*DEE r:   rJ   rr  r   rg   )	r9   r   on_editrA   r  rU   r   _process_eventr   )r]   rI   r   r   rz   r  s        @r8   test_tabulator_patch_eventrx    s    			BbMMEF	MMEEEEFFFz ? ?R>> 	? 	?C"csCCCE  '''":#sBsGL,=!>>>>>>	?? ?r:   c                     t                      } t          |           t                     t          fd           t	          j                                                  d         \  }\  }}t	          j                                                  d         }g 	                    fd           t          |j        j                  }d|d         d<                       ||d d|j        j        |                               |t          |dd                     t          fd           d         j        dk    sJ d         j        dk    sJ d S )	Nc                  ,    t           j                  S rv   r+  _modelsrI   s   r8   r   z(test_server_edit_event.<locals>.<lambda>      tEM** r:   r   c                 .                         |           S rv   rw   )rt  r{   s    r8   r   z(test_server_edit_event.<locals>.<lambda>  s    FMM!,, r:   r   r2   rY   r7   c                  *    t                     dk    S r   )rU   )r{   s   r8   r   z(test_server_edit_event.<locals>.<lambda>  s    s6{{a' r:   )r9   r   r   r   r   r|  r~  
_documentskeysrv  r  r   r7   _server_change_server_eventr   r~   old)r]   refrJ   r_   docnew_datar{   rI   s         @@r8   test_server_edit_eventr    s[   			BbMMEe****+++5=..0011!4OC%
u$$&&
'
'
*CF	MM,,,,---EL%&&HHSM!	c41BHMMM	^E3::;;;''''(((!9?d""""!9=Ar:   c                     t                      } t          |           }g |                    fd           |                                 }|j        D ]j}t          t          |                    D ]K}t          d ||          }|                    |           d         ||||         j	        |         fk    sJ Lkd S )Nc                 R                         | j        | j        | j        f          S rv   rq  rs  s    r8   r   z1test_tabulator_cell_click_event.<locals>.<lambda>       V]]AHaeQW+EFF r:   ru  rg   )
r9   r   on_clickreset_indexrA   r  rU   r   rw  r   )r]   rI   r7   r   r   rz   r  s         @r8   test_tabulator_cell_click_eventr    s    			BbMMEF	NNFFFFGGG>>D| A AT## 	A 	AC"csCCCE  '''":#sDIN3,?!@@@@@@	AA Ar:   c                  n   t                      } t          |           g dgffd	}                    |           t                     t	          fd           t          j                                                  d         d         j        }| 	                                }t          |          5  |j        D ]H}t          t          |                    D ])}t          d ||          }                    |           *I	 d d d            n# 1 swxY w Y   t	          fd           d S )Nr   c                    K   dd l }|dxx         dz  cc<                       |d                    |                    d           d {V  |dxx         dz  cc<   d S )Nr   rY   )asynciorx   sleep)rz   countr  countss      r8   cbz.test_server_cell_click_async_event.<locals>.cb  sx      aAeAhmmAaAr:   c                  ,    t           j                  S rv   r{  r}  s   r8   r   z4test_server_cell_click_async_event.<locals>.<lambda>  r~  r:   ru  c                  P    t                     dk    ot                     dk    S r   )rU   max)r  s   r8   r   z4test_server_cell_click_async_event.<locals>.<lambda>  s!    s6{{a';CKK!O r:   )r9   r   r  r   r   r   r|  r  rG   r  r   rA   r  rU   r   rw  )	r]   r  r  r7   r   r   rz   r  rI   s	          @@r8   "test_server_cell_click_async_eventr    s   			BbMMEF c       
NN2e****+++
u}##%%
&
&q
)!
,
5C>>D	C , ,< 	, 	,CSYY'' , ,&T#3GGG$$U++++,	,, , , , , , , , , , , , , , , ;;;;<<<<<s   :ADDDc            	         t                      } t          | dd          }g |                    fd           |                                 }|j        D ]}t          t          |           dz            D ]s}|dz   |_        t          d          D ]W}t          d ||          }|	                    |           d         ||dz  |z   ||         j
        |dz  |z            fk    sJ Xtd S )Nr   rZ   r   c                 R                         | j        | j        | j        f          S rv   rq  rs  s    r8   r   zCtest_tabulator_pagination_remote_cell_click_event.<locals>.<lambda>  r  r:   rY   ru  rg   )r9   r   r  r  rA   r  rU   r   r   rw  r   r]   rI   r7   r   pr   rz   r  s          @r8   1test_tabulator_pagination_remote_cell_click_eventr    s$   			BbX;;;EF	NNFFFFGGG>>D| Q Qs2wwz"" 	Q 	QA1EJQxx Q Q&T#3GGG$$U+++bzcAaC9d3inac3Y6O%PPPPPPQ	QQ Qr:   c                  h   t                      } t          | dd          }g |                    fd           |                                 }|j        D ]}t          t          |           dz            D ]}|dz   |_        t          d          D ]W}t          d ||          }|	                    |           d         ||dz  |z   ||         j
        |dz  |z            fk    sJ X|                    t          j        dd	d
| j        j
        d         fg| j        dg                     d S )Nr   rZ   r   c                 R                         | j        | j        | j        f          S rv   rq  rs  s    r8   r   zOtest_tabulator_pagination_remote_cell_click_event_with_stream.<locals>.<lambda>  r  r:   rY   ru  rg   g      @r   r  r-   )rA   r<   )r9   r   r  r  rA   r  rU   r   r   rw  r   r  r5   r   r4   r  s          @r8   =test_tabulator_pagination_remote_cell_click_event_with_streamr    s`   			BbX;;;EF	NNFFFFGGG>>D| i is2wwz"" 	i 	iA1EJQxx Q Q&T#3GGG$$U+++bzcAaC9d3inac3Y6O%PPPPPPLLQ	"'F&GQSQ[decfggghhhh	ii ir:   c                  V   t          j        dddgiddg          } t          | ddddg	          }g |                    fd
           t	          d dd          }t          j        t          d          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr1   rY   rZ   r   )r7   r<   r   r  r  r  c                 R                         | j        | j        | j        f          S rv   rq  rs  s    r8   r   zGtest_tabulator_cell_click_event_error_duplicate_index.<locals>.<lambda>  r  r:   yr   ru  zFound this duplicate index: 'a'r  )	r5   r   r   r  r   r   r   r   rw  )r]   rI   rz   r  s      @r8   5test_tabulator_cell_click_event_error_duplicate_indexr    s   	C!Q=c
	;	;	;BbSHV#T#T"UVVVEF	NNFFFFGGGcq999E	z)J	K	K	K $ $U###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   ;BB"%B"c                    t          j        g d                              t          t          t
          d          }t          |          }|j                            d d           |	                    | |          }|j
        i k    sJ t          j        dgdgdgd          |_        |j        d	         d
ddgddgddgdik    sJ d S )Nrb   r   c                 >    d |                                  D             S )Nc                     g | ]\  }}d S )z*border-color: #dc3545; border-style: solidrE  )rG  r  r~   s      r8   
<listcomp>zLtest_tabulator_styling_empty_dataframe.<locals>.<lambda>.<locals>.<listcomp>  s*     ! ! !9Du4! ! !r:   )r~  )xs    r8   r   z8test_tabulator_styling_empty_dataframe.<locals>.<lambda>  s(     ! !HI		! ! ! r:   rY   )axisr   r  rS   r7   r   )zborder-colorz#dc3545)zborder-stylesolid)rZ   rS   rT   )r5   r   r|  r>   r?   r=   r   r  applyr@   stylesr~   r  r   s        r8   &test_tabulator_styling_empty_dataframer    s   	ooo	.	.	.	5	57 7 
 
B
 bMME	K       NN8T**E<2,dV5'DDEEEKV$	+-FG+-FG+-FG
 
)      r:   c                 ~   t          g d          }t          | d|i          }|                    ||          }|j        d         j        }t          |t                     |usJ t          |t                     sJ |j        |j        k    sJ ddg|_        |j        d         j        }|j        |j        k    sJ d S )Nrb   rc   r?   re   rg   r4   E)r   r   r@   rA   rE   rC   rd   rh   s          r8   %test_tabulator_editor_property_changer  '  s    ///222Fi%999ENN8T**E=$+LlL11????lL111116>11113ZFN=$+L6>111111r:   c                 P   t          d          }t          | d|i          }|                    ||          }|j        d         j        }||usJ t          |t                     sJ |j        |j        k    sJ d|_        |j        d         j        }|j        |j        k    sJ d S )Nrl   rm   r>   ro   rZ   0.0)r   r   r@   rA   rD   rC   rn   rq   s          r8   test_tabulator_formatter_updater  5  s    x000IiWi,@AAAENN8T**EmA&0O)++++o77777!Y%55555ImA&0O!Y%5555555r:   c                    t          | ddi          }|                    ||          }|j        d         d         d         rJ ddd|_        |j        d         d         d         sJ |j        d         d	         d         rJ d S )
Nr=   FrA  rA   rY   rD  T)r=   r>   rZ   )r   r@   r   rB  rJ  s        r8   test_tabulator_sortable_updater  B  s    i5%.999ENN8T**E"9-a0>>>>!E22ENy)!,\::::"9-a0>>>>>>r:   c                  z    t          t          j                    d          } g d| _        | j        g dk    sJ d S )NFrQ   )r   r   c)r   r5   r   hidden_columnsr}  s    r8   !test_tabulator_hidden_columns_fixr  K  sF     blnn777E*??E???222222r:   alignr  rightr  r?   )idsc                    t          j        dg di          }dt          d          i}|d         j        dk    sJ t	          |||           }|                    d|          }|d         j        j        }|dk    sJ d S )	Nr  g?r#   g(\@r  rm   leftrp   
text_alignr   r  )r5   r   r   r  r   _get_column_definitionsrD   )r  r7   rp   rJ   rA   outputs         r8   $test_bokeh_formatter_with_text_alignr  R  s     <.../00De4445Jc?%////dzeDDDE++C66GQZ!,FWr:   c                 J   t          j        dg di          }dt          dd          i}t          |||           }d}t	          j        t          |          5  |                    d|          }d d d            n# 1 swxY w Y   |d	         j        j	        }|d
k    sJ d S )Nr  r  r  center)rn   r  r  zWThe 'text_align' in Tabulator\.formatters\['x'\] is overridden by Tabulator\.text_alignr  r   r  )
r5   r   r   r   r   warnsRuntimeWarningr  rD   r  )r  r7   rp   rJ   msgrA   r  s          r8   -test_bokeh_formatter_with_text_align_conflictr  ]  s     <.../00DeIIIJJdzeDDDE
dC	nC	0	0	0 ; ;//T::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;QZ!,FWs   A>>BBc                      t          j        g dg dd          } |                     d          } t          d          }t	          | d|i          t                     t          fd           d S )NrX   r  r1   zJ<a href="https://www.google.com/search?code=<%= value %>"><%= value %></a>templatero   c                  ,    t           j                  S rv   r{  r}  s   r8   r   z>test_bokeh_formatter_index_with_no_textalign.<locals>.<lambda>s  r~  r:   )r5   r   r   r	   r   r   r   )r]   index_formatrI   s     @r8   ,test_bokeh_formatter_index_with_no_textalignr  i  s    	IIIIII66	7	7B	c		B(]  L bc<%8999Ee****+++++r:   r  r1   r  c                     t          j        dg di          }t          |t          t	          d                    |          }|                    | |          }|j        d         d         d	         d
k    sJ d S )Nr1   rX   z<b><%= value %>"></b>r  r   r  rA   rY   hozAlignr  )r5   r   r   r  r	   r@   r   )rG   rH   r  r]   rI   rJ   s         r8   @test_bokeh_formatter_column_with_no_textalign_but_text_align_setr  u  s    	sIII&	'	'B
/9PQQQRRR  E NN8T**Ey)!,Z8HDDDDDDr:   )r*  r,  numpyr   pandasr5   r   bokeh.models.widgets.tablesr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   packaging.versionr   panel.dependsr   panel.io.stater   panel.models.tabulatorr   r   panel.tests.utilr   r   
panel.utilr   panel.widgetsr   r   panel.widgets.tablesr   r   markskipif__version__pd_oldr9   rO   rV   r`   rj   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  parametrizer  r$  r-  r0  r3  r7  r:  r<  r?  rK  rO  rV  r^  rb  rf  rm  xfailrp  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r
  r  r  r  r  r  r   r"  r&  r,  r0  r2  r4  r6  r8  r:  r=  r@  rC  rH  rJ  rL  rO  ra  rj  rn  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rE  r:   r8   <module>r     s	                                                 & % % % % %       % % % % % % A A A A A A A A : : : : : : : : # # # # # # + + + + + + + + 5 5 5 5 5 5 5 5			GGBN33ggennD#; 
 
= 
=  6 6 62" " "*
1 
1 
13 3 36 6 6	 	 		 	 	T T T
T T T
3 
3 
3= = ="+ + +B( ( (# # #M M Mf f f"V V V"5 5 5:( ( ($ $ $> > >," " "&5 5 5) ) )  5 5 5 Hn#=>>5 5 ?>5$5 5 50? ? ?&4 4 42m m mT T Te e ee e eM M MP P P: : :  *  "  
' 
' 
'+ + + LMM
 
 NM
4= 4= 4=n3 3 3( ( (   &/ / /	 	 		 	 	= = =:= = =6= = =8= = =8R R R:R R R:R R R(R R R,R R R,9 9 9 R R R:R R R:R R R:! ! !F% % %N% % %NR R R@R R R0> > >,= = =4= = =4" " "> =  =  =D> > >> > >> > >$> > > > > >> > > > > >= = =&= = =&= = =,= = =*= = =*= = =,= = =&= = =B  4 4 455= = 65=4#= #= #=J= = =(= = =>1 1 1&= = =@% % %+ + + ? ? ?  .A A A= = =:Q Q Q i i i"	$ 	$ 	$  22 2 26 6 6? ? ?3 3 3 C>7";&%QQ  RQ C>7";&%QQ	 	 RQ	
, 
, 
, h'BQVXX	E 	E YX	E 	E 	Er:   