
    ij)                         d dl Z d dlmZ d dlmZmZmZmZmZm	Z	 d dl
mZmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ erd d
lmZ eegef   Zed   Zed   Z G d d      Zy)    N)Path)TYPE_CHECKINGAnyCallableLiteralOptionalUnion)ScreencastFrameScreencastSize)Artifact)from_nullable_channel)DisposableStub)Error)locals_to_params)Page)bottomzbottom-leftzbottom-righttopztop-leftz	top-right)nonepointerc                       e Zd ZddZdeddfdZdededdfdZdedefd	Z		 	 	 	 dd
e
deeef   dededef
dZddZ	 	 	 	 ddededededef
dZddZd dededefdZ	 	 d!dedededdfdZddZddZy)"
ScreencastreturnNc                     || _         |j                  | _        |j                  | _        d| _        d | _        d | _        d | _        |j                  j                  d| j                         y )NFscreencastFrame)
_page_loop_dispatcher_fiber_started
_save_path	_on_frame	_artifact_channelon_dispatch_frame)selfpages     O/root/.hermes/venv/lib/python3.12/site-packages/playwright/_impl/_screencast.py__init__zScreencast.__init__.   sY    
ZZ
!%!7!76:<@-1*D,@,@A    frame_idc                     	 | j                   j                  j                  dd d|i       y # t        t        f$ r Y y w xY w)NscreencastFrameAckframeId)r   r"   send_no_replyr   OSError)r%   r*   s     r'   
_ack_framezScreencast._ack_frame8   sD    	JJ--$dY,A w 		s   ), >>resultc                 t   K   	 | d {    | j                  |       y 7 # | j                  |       w xY wwN)r0   )r%   r1   r*   s      r'   _await_callback_and_ackz"Screencast._await_callback_and_ack@   s0     	&LLOOH% OOH%s    8"  " 8" 58paramsc           	         d }d }	 | j                   sQ	 t        |d      r/| j                  j                  | j	                  ||d               }y | j                  |d          y |d   }t        |t              rt        j                  |      }| j                  ||j                  dd      |d   |d   d      }t        |d      r0| j                  j                  | j	                  ||d               }|S | j                  |d          |S # t        |d      r/| j                  j                  | j	                  ||d               }w | j                  |d          w xY w)	N	__await__r-   data	timestampr   viewportWidthviewportHeight)r8   r9   r:   r;   )r    hasattrr   create_taskr4   r0   
isinstancestrbase64	b64decodeget)r%   r5   r1   taskr8   s        r'   r$   zScreencast._dispatch_frameF   s[   	3>> v{+zz--00	9JK y 12# &>D$$''-^^ !'K!;%+O%<&,-=&>	F v{+zz--00	9JK
  y 12 v{+zz--00	9JK y 12s   D #AD AEonFramepathqualitysizec           
      t   K    j                   rt        d      d _         | _         j                  j                  j                  dd ||t        |      t        |      d       d {   }|xs i j                  d      }|rt        |       _	        | _
        t         fd j                        S 7 Kw)NzScreencast is already startedTscreencastStart)rG   rF   
sendFramesrecordartifactc                  $     j                         S r3   )stopr%   s   r'   <lambda>z"Screencast.start.<locals>.<lambda>y   s    diik r)   )r   r   r    r   r"   send_return_as_dictboolrB   r   r!   r   r   )r%   rD   rE   rF   rG   r1   artifact_channels   `      r'   startzScreencast.start`   s      ==788 zz**>>""7mt*		
 	
 #Lb--j923CDDN"DO14::>>	
s   A'B8*B6+AB8c                 2  K   d| _         d | _        | j                  j                  j	                  dd        d {    | j
                  r9| j                  r-| j                  j                  | j
                         d {    d | _        d | _        y 7 X7 w)NFscreencastStop)r   r    r   r"   sendr   r!   save_asrO   s    r'   rN   zScreencast.stop{   su     jj!!&&'7>>>??t~~..((999	 	?9s"   8BBAB?B BBdurationpositionfontSizecursorc                     K    j                   j                  j                  dd t        t	                            d {    t         fd j                         S 7 w)NscreencastShowActionsc                  $     j                         S r3   )hide_actionsrO   s   r'   rP   z)Screencast.show_actions.<locals>.<lambda>   s    d&7&7&9 r)   )r   r"   rW   r   localsr   )r%   rY   rZ   r[   r\   s   `    r'   show_actionszScreencast.show_actions   sS      jj!!&&#T+;FH+E
 	
 	
 94::FF	
s   <AA Ac                 l   K   | j                   j                  j                  dd        d {    y 7 w)NscreencastHideActionsr   r"   rW   rO   s    r'   r`   zScreencast.hide_actions   s'     jj!!&&'>EEEs   *424htmlc                     K    j                   j                  j                  dd t        t	                            d {   }|xs i j                  d      t         fd j                         S 7 3w)NscreencastShowOverlayidc                  V    j                   j                  j                  dd d i      S )NscreencastRemoveOverlayri   re   )
overlay_idr%   s   r'   rP   z)Screencast.show_overlay.<locals>.<lambda>   s(    DJJ'',,)4$
1C r)   )r   r"   rQ   r   ra   rB   r   )r%   rf   rY   r1   rl   s   `   @r'   show_overlayzScreencast.show_overlay   sk     zz**>>#T+;FH+E
 
 l''-
 JJ	
 	
	
s   <A6 A44A6titledescriptionc                    K   | j                   j                  j                  dd t        t	                            d {    y 7 w)NscreencastChapter)r   r"   rW   r   ra   )r%   rn   ro   rY   s       r'   show_chapterzScreencast.show_chapter   s9      jj!!&&'7'A
 	
 	
s   <AAAc                 r   K   | j                   j                  j                  dd ddi       d {    y 7 w)NscreencastSetOverlayVisiblevisibleTre   rO   s    r'   show_overlayszScreencast.show_overlays   s4     jj!!&&)4)T1B
 	
 	
   -757c                 r   K   | j                   j                  j                  dd ddi       d {    y 7 w)Nrt   ru   Fre   rO   s    r'   hide_overlayszScreencast.hide_overlays   s4     jj!!&&)4)U1C
 	
 	
rw   )r&   r   r   N)NNNN)r   Nr3   )NN)__name__
__module____qualname__r(   intr0   r   r4   dictr$   ScreencastFrameCallbackr	   r?   r   r   r   rT   rN   floatScreencastPositionScreencastCursorrb   r`   rm   rr   rv   ry    r)   r'   r   r   -   s?   B3 4 &C &3 &4 &d s 8 ,0!%#?(? CI? 	?
 ? 
?6 '+#'
G
G %
G 	
G
 !
G 

GF

s 

e 

~ 

  	

 
 	

 




r)   r   )r@   pathlibr   typingr   r   r   r   r   r	    playwright._impl._api_structuresr
   r   playwright._impl._artifactr   playwright._impl._connectionr   playwright._impl._disposabler   playwright._impl._errorsr   playwright._impl._helperr   playwright._impl._pager   r   r   r   r   r   r)   r'   <module>r      sn      I I L / > 7 * 5+ #O#4c#9:    D
 D
r)   