o
    Pjm                     @   s   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rHd d
lmZ eegef Zed Zed ZG dd dZdS )    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                   @   s   e Zd Zd%ddZdeddfdd	Z				d&d
edeee	f de
dedef
ddZd'ddZ				d&dedede
dedef
ddZd'ddZd(dededefddZ		d)dedededdfdd Zd'd!d"Zd'd#d$ZdS )*
Screencastpager   returnNc                    sH   | _ |j _|j _d _d  _d  _d  _|jd fdd d S )NFscreencastFramec                    s
     | S N)_dispatch_frame)paramsself Q/home/thesage/.local/lib/python3.10/site-packages/playwright/_impl/_screencast.py<lambda>6   s   
 z%Screencast.__init__.<locals>.<lambda>)	_page_loop_dispatcher_fiber_started
_save_path	_on_frame	_artifact_channelon)r   r   r   r   r   __init__.   s   zScreencast.__init__r   c                 C   sj   | j sd S |d }t|trt|}|  ||dd|d |d d}t|dr3| jj	| d S d S )Ndata	timestampr   viewportWidthviewportHeight)r+   r,   r-   r.   	__await__)
r&   
isinstancestrbase64	b64decodegethasattrr!   r"   create_task)r   r   r+   resultr   r   r   r   8   s   



zScreencast._dispatch_frameonFramepathqualitysizec              	      s|    j rtdd _ | _ jjdd ||t|t|dI d H }|p&i d}|r4t| _	| _
t fdd jS )NzScreencast is already startedTscreencastStart)r;   r:   
sendFramesrecordartifactc                            S r   )stopr   r   r   r   r    b       z"Screencast.start.<locals>.<lambda>)r$   r   r&   r!   r(   send_return_as_dictboolr4   r   r'   r%   r   )r   r8   r9   r:   r;   r7   artifact_channelr   r   r   startI   s&   


zScreencast.startc                    sT   d| _ d | _| jjdd I d H  | jr"| jr"| j| jI d H  d | _d | _d S )NFscreencastStop)r$   r&   r!   r(   sendr%   r'   save_asr   r   r   r   rA   d   s   
zScreencast.stopdurationpositionfontSizecursorc                    s4    j jdd tt I d H  t fdd j S )NscreencastShowActionsc                      r@   r   )hide_actionsr   r   r   r   r    w   rB   z)Screencast.show_actions.<locals>.<lambda>)r!   r(   rH   r   localsr   )r   rJ   rK   rL   rM   r   r   r   show_actionsm   s
   
zScreencast.show_actionsc                    s   | j jdd I d H  d S )NscreencastHideActionsr!   r(   rH   r   r   r   r   rO   y   s   zScreencast.hide_actionshtmlc                    sD   j jdd tt I d H }|pi d t fddj S )NscreencastShowOverlayidc                      s   j jdd d iS )NscreencastRemoveOverlayrV   rS   r   
overlay_idr   r   r   r       s    
z)Screencast.show_overlay.<locals>.<lambda>)r!   r(   rC   r   rP   r4   r   )r   rT   rJ   r7   r   rX   r   show_overlay|   s   
zScreencast.show_overlaytitledescriptionc                    s$   | j jdd tt I d H  d S )NscreencastChapter)r!   r(   rH   r   rP   )r   r[   r\   rJ   r   r   r   show_chapter   s   zScreencast.show_chapterc                    "   | j jdd ddiI d H  d S )NscreencastSetOverlayVisiblevisibleTrS   r   r   r   r   show_overlays      
zScreencast.show_overlaysc                    r_   )Nr`   ra   FrS   r   r   r   r   hide_overlays   rc   zScreencast.hide_overlays)r   r   r   N)NNNN)r   Nr   )NN)__name__
__module____qualname__r*   dictr   ScreencastFrameCallbackr   r1   r   intr
   r   rF   rA   floatScreencastPositionScreencastCursorrQ   rO   rZ   r^   rb   rd   r   r   r   r   r   -   sb    









r   )r2   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   ri   rl   rm   r   r   r   r   r   <module>   s&    