o
    M,h                     @   s\   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 deZd	S )
    )Optional)interaction)Interaction)MouseButton)PointerInput)
WebElementc                
       s4  e Zd Zd!dee def fddZejdddddddddf
ddZ	ejfd	d
Z
											d"ddZ									d#ddZ									d#ddZdejfdee fddZd$dee fddZdejfdee fddZejfddZd$dee fddZd%defddZdd  Z  ZS )&PointerActionsN   sourcedurationc                    s0   |du r
t tjd}|| _|| _t | dS )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__ }/var/www/www-root/data/www/bot.pdev.uz/venv/lib/python3.10/site-packages/selenium/webdriver/common/actions/pointer_actions.pyr      s
   zPointerActions.__init__c                 C   s$   | j d|||||||||	|
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    r   r   r   pointer_down'   s   zPointerActions.pointer_downc                 C   s   | j d|d | S )Ncreate_pointer_upr   r!   r   r   r   r   r   
pointer_upC   s   zPointerActions.pointer_upr   c                 C   sF   t |ts	td| jj|| jt|t|||||||	|
||d | 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    r   r   r   move_toG   s$   
zPointerActions.move_toc                 C   s6   | j jtj| jt|t||||||||	|
|d | S )Nr(   )r
   r.   r   POINTERr   r/   r   r*   r+   r   r   r   r   r   r   r   r   r    r   r   r   move_byj   s    zPointerActions.move_byc                 C   s4   | j jd| jt|t||||||||	|
|d | S )Nviewportr(   )r
   r.   r   r/   r3   r   r   r   move_to_location   s    zPointerActions.move_to_locationr0   c                 C   s&   |r|  | | | | | | S N)r1   r#   r'   r   r0   r   r   r   r   click   s
   


zPointerActions.clickc                 C   s   | j |tjdS )N)r0   r   )r9   r   RIGHTr   r0   r   r   r   context_click   s   zPointerActions.context_clickc                 C   s   |r|  | | j|d | S Nr%   )r1   r#   r8   r   r   r   click_and_hold   s   
zPointerActions.click_and_holdc                 C   s   | j |d | S r=   )r'   r&   r   r   r   release      zPointerActions.releasec                 C   sB   |r|  | | tj | tj | tj | tj | S r7   )r1   r#   r   LEFTr'   r;   r   r   r   double_click   s   
zPointerActions.double_clickc                 C   s   | j | | S r7   )r
   create_pause)r   r   r   r   r   pause   r@   zPointerActions.pausec                 K   s   t | j|}|di | | S )Nr   )getattrr
   )r   actionkwargsmethr   r   r   r"      s   zPointerActions._button_action)Nr	   )r   r   NNNNNNNNN)	NNNNNNNNNr7   )r   )__name__
__module____qualname__r   r   r/   r   r   rA   r#   r'   r1   r4   r6   r   r9   r<   r>   r?   rB   floatrD   r"   __classcell__r   r   r   r   r      sj    

'
#
	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   r   r   r   r   <module>   s   