
     f                       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 G d dej	                  Z
 G d d	ej	                  Z G d
 dej	                  Z G d dej	                  Ze G d d                      Z	 d(d)dZd*dZd+dZd,dZd-dZ	 d(d.d Zd*d!Z ed"          e G d# d$                                  Z ed%          e G d& d'                                  ZdS )/    )annotations   )event_classT_JSON_DICT)	dataclassNc                  6    e Zd ZdZdZdZd Zed             ZdS )
LoginStatez
    Whether this is a sign-up or sign-in action for this account, i.e.
    whether this account has ever been used to sign in to this RP before.
    SignInSignUpc                    | j         S Nvalueselfs    q/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/selenium/webdriver/common/devtools/v127/fed_cm.pyto_jsonzLoginState.to_json   
    z    c                     | |          S r    clsjsons     r   	from_jsonzLoginState.from_json       s4yyr   N)	__name__
__module____qualname____doc__SIGN_INSIGN_UPr   classmethodr   r   r   r   r	   r	      sT          GG     [  r   r	   c                  >    e Zd ZdZdZdZdZdZd Ze	d             Z
dS )	
DialogTypez%
    The types of FedCM dialogs.
    AccountChooserAutoReauthnConfirmIdpLoginErrorc                    | j         S r   r   r   s    r   r   zDialogType.to_json&   r   r   c                     | |          S r   r   r   s     r   r   zDialogType.from_json)   r   r   N)r   r   r   r    ACCOUNT_CHOOSERAUTO_REAUTHNCONFIRM_IDP_LOGINERRORr   r#   r   r   r   r   r%   r%      s_          'O L)E     [  r   r%   c                  :    e Zd ZdZdZdZdZd Zed             Z	dS )DialogButtonz*
    The buttons on the FedCM dialog.
    ConfirmIdpLoginContinue
ErrorGotItErrorMoreDetailsc                    | j         S r   r   r   s    r   r   zDialogButton.to_json6   r   r   c                     | |          S r   r   r   s     r   r   zDialogButton.from_json9   r   r   N)
r   r   r   r    CONFIRM_IDP_LOGIN_CONTINUEERROR_GOT_ITERROR_MORE_DETAILSr   r#   r   r   r   r   r1   r1   .   s[          ";L+     [  r   r1   c                  6    e Zd ZdZdZdZd Zed             ZdS )AccountUrlTypez(
    The URLs that each account has
    TermsOfServicePrivacyPolicyc                    | j         S r   r   r   s    r   r   zAccountUrlType.to_jsonE   r   r   c                     | |          S r   r   r   s     r   r   zAccountUrlType.from_jsonH   r   r   N)	r   r   r   r    TERMS_OF_SERVICEPRIVACY_POLICYr   r#   r   r   r   r   r;   r;   >   sU          ($N     [  r   r;   c                      e Zd ZU dZded<   ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   dZded<   dZded<   d Zed             Z	dS )Accountz/
    Corresponds to IdentityRequestAccount
    str
account_idemailname
given_namepicture_urlidp_config_urlidp_login_urlr	   login_stateNtyping.Optional[str]terms_of_service_urlprivacy_policy_urlc                *   t                      }| j        |d<   | j        |d<   | j        |d<   | j        |d<   | j        |d<   | j        |d<   | j        |d<   | j        	                                |d<   | j
        
| j
        |d	<   | j        
| j        |d
<   |S )N	accountIdrF   rG   	givenName
pictureUrlidpConfigUrlidpLoginUrl
loginStatetermsOfServiceUrlprivacyPolicyUrl)dictrE   rF   rG   rH   rI   rJ   rK   rL   r   rN   rO   )r   r   s     r   r   zAccount.to_jsong   s    vv O[
WyV O[!-\#2^"0]!-5577\$0(,(AD$%".'+'>D#$r   c                    | t          |d                   t          |d                   t          |d                   t          |d                   t          |d                   t          |d                   t          |d                   t                              |d                   d	|v rt          |d	                   nd d
|v rt          |d
                   nd 
  
        S )NrQ   rF   rG   rR   rS   rT   rU   rV   rW   rX   )
rE   rF   rG   rH   rI   rJ   rK   rL   rN   rO   )rD   r	   r   r   s     r   r   zAccount.from_jsonw   s    s4,--d7m$$T&\""4,--D.//tN344d=122",,T,-?@@CVZ^C^C^T*=%>!?!?!?dh@RVZ@Z@Zs4(:#;<<<`d
 
 
 	
r   )
r   r   r   r    __annotations__rN   rO   r   r#   r   r   r   r   rC   rC   M   s           OOOJJJIIIOOO 265555/33333    
 
 [
 
 
r   rC   disable_rejection_delaytyping.Optional[bool]return0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c              #  F   K   t                      }| | |d<   d|d}|V }dS )z
    :param disable_rejection_delay: *(Optional)* Allows callers to disable the promise rejection delay that would normally happen, if this is unimportant to what's being tested. (step 4 of https://fedidcg.github.io/FedCM/#browser-api-rp-sign-in)
    NdisableRejectionDelayzFedCm.enablemethodparamsrY   )r\   rd   cmd_dictr   s       r   enablerg      sC       &&F**A&'  H >>DDDr   c               #     K   ddi} | V }d S )Nrc   zFedCm.disabler   rf   r   s     r   disablerj      s#       	/H >>DDDr   	dialog_idrD   account_indexintc              #  L   K   t                      }| |d<   ||d<   d|d}|V }dS )z5
    :param dialog_id:
    :param account_index:
    dialogIdaccountIndexzFedCm.selectAccountrb   Nre   )rk   rl   rd   rf   r   s        r   select_accountrq      sF       &&F"F:*F>' H >>DDDr   dialog_buttonc              #  p   K   t                      }| |d<   |                                |d<   d|d}|V }dS )z5
    :param dialog_id:
    :param dialog_button:
    ro   dialogButtonzFedCm.clickDialogButtonrb   NrY   r   )rk   rr   rd   rf   r   s        r   click_dialog_buttonrv      sR       &&F"F:*2244F>+ H >>DDDr   account_url_typec              #  z   K   t                      }| |d<   ||d<   |                                |d<   d|d}|V }dS )zR
    :param dialog_id:
    :param account_index:
    :param account_url_type:
    ro   rp   accountUrlTypezFedCm.openUrlrb   Nru   )rk   rl   rw   rd   rf   r   s         r   open_urlrz      s]       &&F"F:*F>/7799F! H >>DDDr   trigger_cooldownc              #  P   K   t                      }| |d<   |||d<   d|d}|V }dS )zE
    :param dialog_id:
    :param trigger_cooldown: *(Optional)*
    ro   NtriggerCooldownzFedCm.dismissDialogrb   re   )rk   r{   rd   rf   r   s        r   dismiss_dialogr~      sM       &&F"F:#$4 !' H >>DDDr   c               #     K   ddi} | V }dS )z
    Resets the cooldown time, if any, to allow the next FedCM call to show
    a dialog even if one was recently dismissed by the user.
    rc   zFedCm.resetCooldownNr   ri   s     r   reset_cooldownr      s$       	'H >>DDDr   zFedCm.dialogShownc                  Z    e Zd ZU ded<   ded<   ded<   ded<   ded	<   edd            ZdS )DialogShownrD   rk   r%   dialog_typeztyping.List[Account]accountstitlerM   subtitler   r   r^   c           
          | t          |d                   t                              |d                   d |d         D             t          |d                   d|v rt          |d                   nd           S )Nro   
dialogTypec                B    g | ]}t                               |          S r   )rC   r   ).0is     r   
<listcomp>z)DialogShown.from_json.<locals>.<listcomp>  s&    EEEqg''**EEEr   r   r   r   )rk   r   r   r   r   )rD   r%   r   r   s     r   r   zDialogShown.from_json  s    s$z*++",,T,-?@@EED4DEEEd7m$$.8D.@.@Sj)***d
 
 
 	
r   N)r   r   r^   r   )r   r   r   r[   r#   r   r   r   r   r   r      sn          NNN"""" JJJ""""
 
 
 [
 
 
r   r   zFedCm.dialogClosedc                  6    e Zd ZU dZded<   ed	d            ZdS )
DialogClosedze
    Triggered when a dialog is closed, either by user action, JS abort,
    or a command below.
    rD   rk   r   r   r^   c                @     | t          |d                             S )Nro   )rk   )rD   r   s     r   r   zDialogClosed.from_json  s+    s$z*++
 
 
 	
r   N)r   r   r^   r   )r   r   r   r    r[   r#   r   r   r   r   r   r     sI           NNN
 
 
 [
 
 
r   r   r   )r\   r]   r^   r_   )r^   r_   )rk   rD   rl   rm   r^   r_   )rk   rD   rr   r1   r^   r_   )rk   rD   rl   rm   rw   r;   r^   r_   )rk   rD   r{   r]   r^   r_   )
__future__r   utilr   r   dataclassesr   enumtypingEnumr	   r%   r1   r;   rC   rg   rj   rq   rv   rz   r~   r   r   r   r   r   r   <module>r      sx   # " " " " " * * * * * * * * ! ! ! ! ! !                 "    49        TY    6
 6
 6
 6
 6
 6
 6
 6
t :>           $   $   . 37    &     !!

 
 
 
 
 
 
  "!
( !""

 
 
 
 
 
 
  #"
 
 
r   