
    $)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ddl	m
Z
 ddl	mZ  G d d	e      Z G d
 dej                        Z G d dej                        Z G d dej                        Ze G d d             Ze G d d             Ze G d d             Ze G d d             Z G d dej                        Ze G d d             Zd dZd dZ	 	 	 	 d!	 	 	 	 	 	 	 	 	 d"dZd#dZy)$    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)runtimec                  <     e Zd ZdZddZedd       Z fdZ xZS )AXNodeIdz/
    Unique accessibility node identifier.
    c                    | S N selfs    q/var/www/html/flask-app/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/accessibility.pyto_jsonzAXNodeId.to_json   s        c                     | |      S r   r   clsjsons     r   	from_jsonzAXNodeId.from_json       4yr   c                >    dj                  t        | 	               S )NzAXNodeId({}))formatsuper__repr__)r   	__class__s    r   r   zAXNodeId.__repr__   s    $$UW%5%788r   )returnstr)r   r    r   r   )	__name__
__module____qualname____doc__r   classmethodr   r   __classcell__)r   s   @r   r   r      s+      9 9r   r   c                  j    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZd Zed        Zy)AXValueTypez*
    Enum of possible property types.
    booleantristatebooleanOrUndefinedidref	idrefListintegernodenodeListnumberstringcomputedStringtoken	tokenListdomRelationroleinternalRolevalueUndefinedc                    | j                   S r   valuer   s    r   r   zAXValueType.to_json5       zzr   c                     | |      S r   r   r   s     r   r   zAXValueType.from_json8   r   r   N)r!   r"   r#   r$   BOOLEANTRISTATEBOOLEAN_OR_UNDEFINEDIDREF
IDREF_LISTINTEGERNODE	NODE_LISTNUMBERSTRINGCOMPUTED_STRINGTOKEN
TOKEN_LISTDOM_RELATIONROLEINTERNAL_ROLEVALUE_UNDEFINEDr   r%   r   r   r   r   r(   r(      sx     GH/EJGDIFF&OEJ LD"M&O  r   r(   c                  >    e Zd ZdZdZdZdZdZdZdZ	d Z
ed	        Zy
)AXValueSourceTypez,
    Enum of possible property sources.
    	attributeimplicitstylecontentsplaceholderrelatedElementc                    | j                   S r   r;   r   s    r   r   zAXValueSourceType.to_jsonH   r=   r   c                     | |      S r   r   r   s     r   r   zAXValueSourceType.from_jsonK   r   r   N)r!   r"   r#   r$   	ATTRIBUTEIMPLICITSTYLECONTENTSPLACEHOLDERRELATED_ELEMENTr   r%   r   r   r   r   rQ   rQ   =   s@     IHEHK&O  r   rQ   c                  F    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
 Zed        Zy)AXValueNativeSourceTypezd
    Enum of possible native property sources (as a subtype of a particular AXValueSourceType).
    
figcaptionlabellabelforlabelwrappedlegendtablecaptiontitleotherc                    | j                   S r   r;   r   s    r   r   zAXValueNativeSourceType.to_json]   r=   r   c                     | |      S r   r   r   s     r   r   z!AXValueNativeSourceType.from_json`   r   r   N)r!   r"   r#   r$   
FIGCAPTIONLABELLABELFORLABELWRAPPEDLEGENDTABLECAPTIONTITLEOTHERr   r%   r   r   r   r   ra   ra   P   sJ     JEH!LF!LEE  r   ra   c                      e Zd ZU dZded<   dZded<   dZded<   dZded	<   dZd
ed<   dZ	ded<   dZ
ded<   dZd
ed<   dZded<   d Zed        Zy)AXValueSourcez5
    A single source for a computed AX property.
    rQ   type_Ntyping.Optional[AXValue]r<   typing.Optional[str]rR   attribute_valuetyping.Optional[bool]
supersededz(typing.Optional[AXValueNativeSourceType]native_sourcenative_source_valueinvalidinvalid_reasonc                t   t               }| j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  |d<   | j
                  | j
                  j                         |d<   | j                  | j                  |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  |d<   | j                  | j                  |d	<   |S )
Ntyper<   rR   attributeValuer{   nativeSourcenativeSourceValuer~   invalidReason)dictrv   r   r<   rR   ry   r{   r|   r}   r~   r   r   r   s     r   r   zAXValueSource.to_json   s   vzz))+V::! JJ..0DM>>% $D+%)%9%9%A%A%CD!"??&!%D)#'#5#5#=#=#?D ##/(,(@(@(H(H(JD$%<<#"llDO*$($7$7D!r   c                    | t         j                  |d         d|v rt        j                  |d         nd d|v rt        |d         nd d|v rt        j                  |d         nd d|v rt	        |d         nd d|v rt
        j                  |d         nd d|v rt        j                  |d         nd d|v rt	        |d         nd d	|v rt        |d	         
	      S d 
	      S )Nr   r<   rR   r   r{   r   r   r~   r   )	rv   r<   rR   ry   r{   r|   r}   r~   r   )rQ   r   AXValuer    boolra   r   s     r   r   zAXValueSource.from_json   s    #--d6l;6=o'##DM240;t0Cc${+,IY]aIaG--d3C.DEgk3?43GtD./TUcgkUk1;;D<PQquPcgkPk 1 1$7J2K Lqu-6$->Di)D9HD9P3tO45

 
	
 W[

 
	
r   )r!   r"   r#   r$   __annotations__r<   rR   ry   r{   r|   r}   r~   r   r   r%   r   r   r   r   ru   ru   e   s      '+E#* '+I#* 15O-4 )-J%, ?CM;B 5918 &*G") ,0N(/* 
 
r   ru   c                  J    e Zd ZU ded<   dZded<   dZded<   d Zed        Zy)	AXRelatedNodezdom.BackendNodeIdbackend_dom_node_idNrx   r,   textc                    t               }| j                  j                         |d<   | j                  | j                  |d<   | j                  | j                  |d<   |S )NbackendDOMNodeIdr,   r   )r   r   r   r,   r   r   s     r   r   zAXRelatedNode.to_json   sV    v#'#;#;#C#C#E ::! JJDM99 99DLr   c                     | t         j                  j                  |d         d|v rt        |d         nd d|v rt        |d               S d       S )Nr   r,   r   )r   r,   r   )r   BackendNodeIdr   r    r   s     r   r   zAXRelatedNode.from_json   s^     # 1 1 ; ;DAS<T U(/4#d7m$T&,nT&\"
 	
 ;?
 	
r   )	r!   r"   r#   r   r,   r   r   r%   r   r   r   r   r   r      s=     +* #'E& "&D
% 
 
r   r   c                  8    e Zd ZU ded<   ded<   d Zed        Zy)
AXPropertyAXPropertyNamenamer   r<   c                    t               }| j                  j                         |d<   | j                  j                         |d<   |S )Nr   r<   )r   r   r   r<   r   s     r   r   zAXProperty.to_json   s:    vyy((*V

**,Wr   c                n     | t         j                  |d         t        j                  |d               S )Nr   r<   )r   r<   )r   r   r   r   s     r   r   zAXProperty.from_json   s3    ))$v,7##DM2
 	
r   N)r!   r"   r#   r   r   r%   r   r   r   r   r   r      s*      N 
 
r   r   c                  \    e Zd ZU dZded<   dZded<   dZded<   dZd	ed
<   d Ze	d        Z
y)r   z(
    A single computed AX property.
    r(   rv   Nztyping.Optional[typing.Any]r<   z+typing.Optional[typing.List[AXRelatedNode]]related_nodesz+typing.Optional[typing.List[AXValueSource]]sourcesc                z   t               }| j                  j                         |d<   | j                  | j                  |d<   | j                  +| j                  D cg c]  }|j                          c}|d<   | j
                  +| j
                  D cg c]  }|j                          c}|d<   |S c c}w c c}w )Nr   r<   relatedNodesr   )r   rv   r   r<   r   r   r   r   is      r   r   zAXValue.to_json   s    vzz))+V::! JJDM)9=9K9K#LAAIIK#LD <<#48LLAqqyy{ADO $MAs   B3B8c                    | t         j                  |d         d|v r|d   nd d|v r&|d   D cg c]  }t        j                  |       c}nd d|v r+|d   D cg c]  }t        j                  |       c}      S d       S c c}w c c}w )Nr   r<   r   r   )rv   r<   r   r   )r(   r   r   ru   r   r   r   s      r   r   zAXValue.from_json   s    ''V5#*d?$w-XfjnXntN?ST!=2215TtxMVZ^M^iIA],,Q/I	
 	
 ei	
 	
 UIs   BB
)r!   r"   r#   r$   r   r<   r   r   r   r%   r   r   r   r   r   r      sR      *.E&- BFM>E <@G8?	 
 
r   r   c                      e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d) Z+e,d*        Z-y+),r   a  
    Values of AXProperty name:
    - from 'busy' to 'roledescription': states which apply to every AX node
    - from 'live' to 'root': attributes which apply to nodes in live regions
    - from 'autocomplete' to 'valuetext': attributes which apply to widgets
    - from 'checked' to 'selected': states which apply to widgets
    - from 'activedescendant' to 'owns' - relationships between elements other than parent/child/sibling.
    busydisablededitable	focusablefocusedhidden
hiddenRootr~   keyshortcutssettableroledescriptionliveatomicrelevantrootautocompletehasPopuplevelmultiselectableorientation	multilinereadonlyrequiredvalueminvaluemax	valuetextcheckedexpandedmodalpressedselectedactivedescendantcontrolsdescribedbydetailserrormessageflowto
labelledbyownsc                    | j                   S r   r;   r   s    r   r   zAXPropertyName.to_json3  r=   r   c                     | |      S r   r   r   s     r   r   zAXPropertyName.from_json6  r   r   N).r!   r"   r#   r$   BUSYDISABLEDEDITABLE	FOCUSABLEFOCUSEDHIDDENHIDDEN_ROOTINVALIDKEYSHORTCUTSSETTABLEROLEDESCRIPTIONLIVEATOMICRELEVANTROOTAUTOCOMPLETE	HAS_POPUPLEVELMULTISELECTABLEORIENTATION	MULTILINEREADONLYREQUIREDVALUEMINVALUEMAX	VALUETEXTCHECKEDEXPANDEDMODALPRESSEDSELECTEDACTIVEDESCENDANTCONTROLSDESCRIBEDBYDETAILSERRORMESSAGEFLOWTO
LABELLEDBYOWNSr   r%   r   r   r   r   r   r     s     DHHIGFKG!LH'ODFHD!LIE'OKIHHHHIGHEGH)HKG!LFJD  r   r   c                      e Zd ZU dZded<   ded<   dZded<   dZd	ed
<   dZd	ed<   dZd	ed<   dZ	d	ed<   dZ
ded<   dZded<   dZded<   d Zed        Zy)AXNodez+
    A node in the accessibility tree.
    r   node_idr   ignoredNz(typing.Optional[typing.List[AXProperty]]ignored_reasonsrw   r7   r   descriptionr<   
propertiesz&typing.Optional[typing.List[AXNodeId]]	child_ids"typing.Optional[dom.BackendNodeId]r   c                t   t               }| j                  j                         |d<   | j                  |d<   | j                  +| j                  D cg c]  }|j                          c}|d<   | j
                  | j
                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  +| j                  D cg c]  }|j                          c}|d<   | j                  +| j                  D cg c]  }|j                          c}|d	<   | j                  | j                  j                         |d
<   |S c c}w c c}w c c}w )NnodeIdr   ignoredReasonsr7   r   r   r<   r   childIdsr   )r   r   r   r   r   r7   r   r   r<   r   r   r   r   s      r   r   zAXNode.to_json^  sk   v--/X,,Y+;?;O;O%Paaiik%PD!"99 99,,.DL99 99,,.DL'"&"2"2":":"<D::! JJ..0DM??&7;!G!!))+!GD>>%59^^D		DD##/'+'?'?'G'G'ID#$ &Q "HDs   F+,F0#F5c                    | t         j                  |d         t        |d         d|v r&|d   D cg c]  }t        j                  |       c}nd d|v rt        j                  |d         nd d|v rt        j                  |d         nd d|v rt        j                  |d         nd d|v rt        j                  |d         nd d|v r&|d   D cg c]  }t        j                  |       c}nd d	|v r&|d	   D cg c]  }t         j                  |       c}nd d
|v r't
        j                  j                  |d
         
      S d 
      S c c}w c c}w c c}w )Nr   r   r   r7   r   r   r<   r   r   r   )
r   r   r   r7   r   r   r<   r   r   r   )r   r   r   r   r   r   r   r   s      r   r   zAXNode.from_jsont  sW   &&tH~6i)YimqYqdCS>TUZ11!4Uw{4:dN""4<04:dN""4<0BOSWBW))$}*=>]a6=o'##DM24P\`dPdl9KLA
,,Q/LjnKUY]K]d:6FGx))!,GcgYkosYs 1 1 ; ;DAS<T U
 	
 z~
 	
 V
 MGs   EE<E)r!   r"   r#   r$   r   r   r7   r   r   r<   r   r   r   r   r%   r   r   r   r   r   r   ;  s      M AEO=D &*D
") &*D
") -1K)0 '+E#* <@J8? 9=I5< ?C;B, 
 
r   r   c               #     K   ddi} | }yw)z,
    Disables the accessibility domain.
    methodzAccessibility.disableNr   cmd_dictr   s     r   disabler    s     
 	)H >D   
c               #     K   ddi} | }yw)z
    Enables the accessibility domain which causes ``AXNodeId``'s to remain consistent between method calls.
    This turns on accessibility for the page, which can impact performance until accessibility is disabled.
    r  zAccessibility.enableNr   r  s     r   enabler    s      	(H >Dr  c              #    K   t               }| | j                         |d<   ||j                         |d<   ||j                         |d<   |||d<   d|d}|}|d   D cg c]  }t        j                  |       c}S c c}w w)a  
    Fetches the accessibility node and partial accessibility tree for this DOM node, if it exists.

    **EXPERIMENTAL**

    :param node_id: *(Optional)* Identifier of the node to get the partial accessibility tree for.
    :param backend_node_id: *(Optional)* Identifier of the backend node to get the partial accessibility tree for.
    :param object_id: *(Optional)* JavaScript object id of the node wrapper to get the partial accessibility tree for.
    :param fetch_relatives: *(Optional)* Whether to fetch this nodes ancestors, siblings and children. Defaults to true.
    :returns: The ``Accessibility.AXNode`` for this DOM node, if it exists, plus its ancestors, siblings and children, if requested.
    r   backendNodeIdobjectIdfetchRelativeszAccessibility.getPartialAXTree)r  paramsnodes)r   r   r   r   )r   backend_node_id	object_idfetch_relativesr  r  r   r   s           r   get_partial_ax_treer    s     " &F"??,x""1"9"9";&..0z"#2 2H >D)-g7AFQ777s   A!B#B?Bc               #  p   K   ddi} | }|d   D cg c]  }t         j                  |       c}S c c}w w)zU
    Fetches the entire accessibility tree

    **EXPERIMENTAL**

    :returns: 
    r  zAccessibility.getFullAXTreer  )r   r   )r  r   r   s      r   get_full_ax_treer    sA      	/H >D)-g7AFQ777s   616)r   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])NNNN)
r   ztyping.Optional[dom.NodeId]r  r   r  z'typing.Optional[runtime.RemoteObjectId]r  rz   r   ?typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[AXNode]])r   r  )
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r    r   Enumr(   rQ   ra   ru   r   r   r   r   r   r  r  r  r  r   r   r   <module>r     sA   # * !    9s 9$)) <		 &dii * @
 @
 @
F 
 
 
8 
 
 
* "
 "
 "
J6TYY 6r E
 E
 E
P 04>B=A15	8,8;8 ;8 /	8
 
G8D8r   