o
    ҷhc                     @  s   d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
 ddl	mZ eG dd	 d	ZeG d
d dZeG dd dZ		ddddZdddZdS )    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)pagec                   @  sJ   e Zd ZU ded< ded< ded< ded< ded< dd Zed	d
 ZdS )
CreditCardstrnumbernameexpiry_monthexpiry_yearcvcc                 C  s<   t  }| j|d< | j|d< | j|d< | j|d< | j|d< |S )Nr   r   expiryMonth
expiryYearr   )dictr   r   r   r   r   selfjson r   c/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v117/autofill.pyto_json!   s   




zCreditCard.to_jsonc                 C  s:   | t |d t |d t |d t |d t |d dS )Nr   r   r   r   r   )r   r   r   r   r   r
   clsr   r   r   r   	from_json*   s   




zCreditCard.from_jsonN__name__
__module____qualname____annotations__r   classmethodr   r   r   r   r   r	      s   
 	r	   c                   @  s2   e Zd ZU ded< ded< dd Zedd ZdS )	AddressFieldr
   r   valuec                 C  s   t  }| j|d< | j|d< |S )Nr   r$   )r   r   r$   r   r   r   r   r   =   s   

zAddressField.to_jsonc                 C  s   | t |d t |d dS )Nr   r$   )r   r$   r   r   r   r   r   r   C   s   

zAddressField.from_jsonNr   r   r   r   r   r#   5   s   
 r#   c                   @  s*   e Zd ZU ded< dd Zedd ZdS )Addressztyping.List[AddressField]fieldsc                 C  s   t  }dd | jD |d< |S )Nc                 S     g | ]}|  qS r   r   .0ir   r   r   
<listcomp>R       z#Address.to_json.<locals>.<listcomp>r&   )r   r&   r   r   r   r   r   P   s   zAddress.to_jsonc                 C  s   | dd |d D dS )Nc                 S  s   g | ]}t |qS r   )r#   r   r)   r   r   r   r,   X   s    z%Address.from_json.<locals>.<listcomp>r&   )r&   r   r   r   r   r   r   U   s   zAddress.from_jsonNr   r   r   r   r   r%   K   s
   
 r%   field_iddom.BackendNodeIdframe_idtyping.Optional[page.FrameId]cardreturn0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                 c  sH    t  }|  |d< |dur| |d< | |d< d|d}|V }dS )a  
    Trigger autofill on a form identified by the fieldId.
    If the field and related form cannot be autofilled, returns an error.

    :param field_id: Identifies a field that serves as an anchor for autofill.
    :param frame_id: *(Optional)* Identifies the frame that field belongs to.
    :param card: Credit card information to fill out the form. Credit card data is not saved.
    fieldIdNframeIdr2   zAutofill.triggermethodparams)r   r   )r.   r0   r2   r9   cmd_dictr   r   r   r   trigger\   s   
r;   	addressestyping.List[Address]c                 c  s.    t  }dd | D |d< d|d}|V }dS )zh
    Set addresses so that developers can verify their forms implementation.

    :param addresses:
    c                 S  r'   r   r(   r)   r   r   r   r,   ~   r-   z!set_addresses.<locals>.<listcomp>r<   zAutofill.setAddressesr7   N)r   )r<   r9   r:   r   r   r   r   set_addressesu   s   
r>   )NN)r.   r/   r0   r1   r2   r	   r3   r4   )r<   r=   r3   r4   )
__future__r   utilr   r   dataclassesr   enumtyping r   r   r	   r#   r%   r;   r>   r   r   r   r   <module>   s"   $