
    ,i                     b    d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ  G d de      Zy	)
    )Optional)interaction)Interaction)MouseButton)PointerInput)
WebElementc            
           e Zd Zddee   def fdZej                  dddddddddf
dZ	ej                  fdZ
	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 dd	Zdej                  fd
ee   fdZdd
ee   fdZdej                  fd
ee   fdZej                  fdZdd
ee   fdZddefdZd Z xZS )PointerActionsNsourcedurationc                 x    |t        t        j                  d      }|| _        || _        t
        |   |       y)z
        Args:
        - source: PointerInput instance
        - duration: override the default 250 msecs of DEFAULT_MOVE_DURATION in source
        Nmouse)r   r   POINTER_MOUSEr   	_durationsuper__init__)selfr   r   	__class__s      /var/www/system.tvplus.app.br/jogos/scrap/venv/lib/python3.12/site-packages/selenium/webdriver/common/actions/pointer_actions.pyr   zPointerActions.__init__   s7     >!+";";WEF!     c                 >    | j                  d|||||||||	|
       | S )Ncreate_pointer_down)
buttonwidthheightpressuretangential_pressuretilt_xtilt_ytwistaltitude_angleazimuth_angle_button_action)r   r   r   r   r   r   r   r   r    r!   r"   s              r   pointer_downzPointerActions.pointer_down'   s?     	! 3)' 	 	
 r   c                 ,    | j                  d|       | S )Ncreate_pointer_upr   r#   r   r   s     r   
pointer_upzPointerActions.pointer_upC   s    /?r   c                     t        |t              st        d      | j                  j	                  || j
                  t        |      t        |      ||||||	|
||       | S )Nzmove_to requires a WebElementoriginr   xyr   r   r   r   r   r   r    r!   r"   )
isinstancer   AttributeErrorr   create_pointer_mover   int)r   elementr.   r/   r   r   r   r   r   r   r    r!   r"   s                r   move_tozPointerActions.move_toG   sk     ':. !@AA''^^!f!f 3)' 	( 	
 r   c                     | j                   j                  t        j                  | j                  t        |      t        |      |||||||	|
|       | S )Nr,   )r   r2   r   POINTERr   r3   r   r.   r/   r   r   r   r   r   r   r    r!   r"   s               r   move_byzPointerActions.move_byj   s[     	''&&^^!f!f 3)' 	( 	
 r   c                     | j                   j                  d| j                  t        |      t        |      |||||||	|
|       | S )Nviewportr,   )r   r2   r   r3   r8   s               r   move_to_locationzPointerActions.move_to_location   sU     	''^^!f!f 3)' 	( 	
 r   r4   c                 p    |r| j                  |       | j                  |       | j                  |       | S N)r5   r%   r*   r   r4   r   s      r   clickzPointerActions.click   s0    LL!&!r   c                 D    | j                  |t        j                        S )N)r4   r   )r@   r   RIGHTr   r4   s     r   context_clickzPointerActions.context_click   s    zz'+2C2CzDDr   c                 P    |r| j                  |       | j                  |       | S Nr(   )r5   r%   r?   s      r   click_and_holdzPointerActions.click_and_hold   s'    LL!(r   c                 *    | j                  |       | S rF   )r*   r)   s     r   releasezPointerActions.release   s    v&r   c                 $   |r| j                  |       | j                  t        j                         | j	                  t        j                         | j                  t        j                         | j	                  t        j                         | S r>   )r5   r%   r   LEFTr*   rC   s     r   double_clickzPointerActions.double_click   sb    LL!+**+(()+**+(()r   c                 <    | j                   j                  |       | S r>   )r   create_pause)r   r   s     r   pausezPointerActions.pause   s      *r   c                 B    t        | j                  |      } |di | | S )N )getattrr   )r   actionkwargsmeths       r   r$   zPointerActions._button_action   s     t{{F+vr   )N   )r   r   NNNNNNNNN)	NNNNNNNNNr>   )r   )__name__
__module____qualname__r   r   r3   r   r   rK   r%   r*   r5   r9   r<   r   r@   rD   rG   rI   rL   floatrO   r$   __classcell__)r   s   @r   r
   r
      sF   
!x5 
! 
!  8 !, 0 0  
 !N  F  > 59AQAQ Xj1 EXj%9 E >B+JZJZ hz&:  )-- HZ$8 e r   r
   N)typingr   !selenium.webdriver.common.actionsr   -selenium.webdriver.common.actions.interactionr   .selenium.webdriver.common.actions.mouse_buttonr   /selenium.webdriver.common.actions.pointer_inputr   $selenium.webdriver.remote.webelementr   r
   rQ   r   r   <module>rb      s'   "  9 E F H ;r[ rr   