
    Xwg)                    j    d dl mZ d dlmZmZmZ d dlmZ erd dlm	Z	  G d dej                        Zy)    )annotations)TYPE_CHECKINGCallableClassVar)css)Selfc                      e Zd ZU dZdZd d d d d d d	Zd
ed<   dddZd Zd Z	e
fdZd Zd Zd ZddZdddZd Zd Zd Zd Zy)CSSDOMElementInterfacezOAn implementation of css.CSSElementInterfaceAbstract for xml.dom Element Nodes.Nc                6    t        | j                                S NboolgetPreviousSiblingselfs    [/var/www/horilla/myenv/lib/python3.12/site-packages/xhtml2pdf/w3c/cssDOMElementInterface.py<lambda>zCSSDOMElementInterface.<lambda>"   s    T-D-D-F(G$G     c                4    t        | j                               S r   r   r   s    r   r   zCSSDOMElementInterface.<lambda>#   s    T-D-D-F(G r   c                6    t        | j                                S r   r   getNextSiblingr   s    r   r   zCSSDOMElementInterface.<lambda>$   s    tD,?,?,A'B#B r   c                4    t        | j                               S r   r   r   s    r   r   zCSSDOMElementInterface.<lambda>%   s    tD,?,?,A'B r   c                n    t        | j                                xr t        | j                                S r   r   r   r   r   s    r   r   zCSSDOMElementInterface.<lambda>&   s7    d.E.E.G)H%H &
QU!R
 N
 r   c                j    t        | j                               xs t        | j                               S r   r   r   s    r   r   zCSSDOMElementInterface.<lambda>)   s-    d.E.E.G)H *
D!M
 r   )zfirst-childznot-first-childz
last-childznot-last-childzmiddle-childznot-middle-childz+ClassVar[dict[str, Callable[[Self], bool]]]_pseudoStateHandlerLookupc                :    || _         || j                  |       y y r   )
domElementonCSSParserVisit)r   r   	cssParsers      r   __init__zCSSDOMElementInterface.__init__3   s"    $ !!), !r   c                n    | j                         }|r#|j                  |      }| j                  |       y y r   )getStyleAttrparseInlinesetInlineStyle)r   r!   styleSrcstyles       r   r    z'CSSDOMElementInterface.onCSSParserVisit9   s6    $$&))(3E& r   c                ~    |\  }}|d| j                   j                  fvry|dv ry|| j                   j                  k(  S )N*F)N r*   T)r   tagNamenamespaceURI)r   namespace_tagName	namespacer,   s       r   matchesNodez"CSSDOMElementInterface.matchesNodeA   sF    .	73 7 788'DOO8888r   c                l    | j                   j                  j                  |      }||j                  S |S r   )r   
attributesgetvalue)r   namedefault
attr_values       r   getAttrzCSSDOMElementInterface.getAttrK   s3    __//33D9
!###r   c                &    | j                  dd      S )Nidr+   r8   r   s    r   	getIdAttrz CSSDOMElementInterface.getIdAttrQ   s    ||D"%%r   c                &    | j                  dd      S )Nclassr+   r;   r   s    r   getClassAttrz#CSSDOMElementInterface.getClassAttrT   s    ||GR((r   c                &    | j                  dd       S )Nr(   r;   r   s    r   r$   z#CSSDOMElementInterface.getStyleAttrW   s    ||GT**r   c                L    | j                   j                  |d       } ||       S )Nc                     y)NF )_s    r   r   z6CSSDOMElementInterface.inPseudoState.<locals>.<lambda>[   s    r   )r   r3   )r   r5   paramshandlers       r   inPseudoStatez$CSSDOMElementInterface.inPseudoStateZ   s$    0044T?Kt}r   F)includeSelfc             #     K   t        |       }| j                  }|s|j                  }|N|j                  |j                  k(  r4 ||       |j                  }||j                  |j                  k(  r2y y y y wr   )typer   
parentNodenodeTypeELEMENT_NODE)r   rH   klasscurrents       r   iterXMLParentsz%CSSDOMElementInterface.iterXMLParents^   sx     T
//((G")9)9W=Q=Q)Q. ((G ")9)9W=Q=Q)Q")Q"s   A2A95A9c                    | j                   j                  }|r*|j                  |j                  k(  r|S |j                  }|r*y r   )r   previousSiblingrL   rM   r   siblings     r   r   z)CSSDOMElementInterface.getPreviousSiblingg   sB    //117#7#77--G  r   c                    | j                   j                  }|r*|j                  |j                  k(  r|S |j                  }|r*y r   )r   nextSiblingrL   rM   rS   s     r   r   z%CSSDOMElementInterface.getNextSiblingo   sB    //--7#7#77))G  r   c                    | j                   S r   r(   r   s    r   getInlineStylez%CSSDOMElementInterface.getInlineStylew   s    zzr   c                    || _         y r   rX   )r   r(   s     r   r&   z%CSSDOMElementInterface.setInlineStylez   s	    
r   r   )returnNone)rC   )__name__
__module____qualname____doc__r(   r   __annotations__r"   r    r0   NotImplementedr8   r<   r?   r$   rG   rP   r   r   rY   r&   rC   r   r   r
   r
      s    Y E HGBB

NJ $-'9 %3 &)+ -2 )r   r
   N)
__future__r   typingr   r   r   xhtml2pdf.w3cr   typing_extensionsr   CSSElementInterfaceAbstractr
   rC   r   r   <module>rh      s-    # 4 4 &cS<< cr   