
    e@d                     8    d dl mZ  G d dej                  ZdS )   )cssc                       e Zd ZdZdZd d d d d d d	Zdd
Zd Zd Ze	fdZ
d Zd Zd ZddZddZd Zd Zd Zd ZdS )CSSDOMElementInterfacezNAn implementation of css.CSSElementInterfaceAbstract for xml.dom Element NodesNc                 F    t          |                                            S NboolgetPreviousSiblingselfs    */./xhtml2pdf/w3c/cssDOMElementInterface.py<lambda>zCSSDOMElementInterface.<lambda>   s    T$"9"9";";<<<     c                 D    t          |                                           S r   r   r   s    r   r   zCSSDOMElementInterface.<lambda>   s    d557788 r   c                 F    t          |                                            S r   r	   getNextSiblingr   s    r   r   zCSSDOMElementInterface.<lambda>"   s    T$"5"5"7"7888 r   c                 D    t          |                                           S r   r   r   s    r   r   zCSSDOMElementInterface.<lambda>$   s    d113344 r   c                     t          |                                            o!t          |                                            S r   r	   r
   r   r   s    r   r   zCSSDOMElementInterface.<lambda>'   s9    T$"9"9";";<<<`T$J]J]J_J_E`E`A` r   c                     t          |                                           p t          |                                           S r   r   r   s    r   r   zCSSDOMElementInterface.<lambda>)   s3    d557788WDATATAVAV<W<W r   )zfirst-childznot-first-childz
last-childznot-last-childzmiddle-childznot-middle-childc                 F    || _         ||                     |           d S d S r   )
domElementonCSSParserVisit)r   r   	cssParsers      r   __init__zCSSDOMElementInterface.__init__3   s1    $ !!),,,,, ! r   c                     |                                  }|r,|                    |          }|                     |           d S d S r   )getStyleAttrparseInlinesetInlineStyle)r   r   styleSrcstyles       r   r   z'CSSDOMElementInterface.onCSSParserVisit:   sR    $$&& 	'))(33E&&&&&	' 	'r   c                 \    |\  }}|d| j         j        fvrdS |dv rdS || j         j        k    S )N*F)N r$   T)r   tagNamenamespaceURI)r   namespace_tagName	namespacer&   s       r   matchesNodez"CSSDOMElementInterface.matchesNodeC   sF    -	'3 78885''4 <<<r   c                 V    | j         j                            |          }||j        S |S r   )r   
attributesgetvalue)r   namedefault	attrValues       r   getAttrzCSSDOMElementInterface.getAttrN   s-    O.22488	 ?"Nr   c                 .    |                      dd          S )Nidr%   r2   r   s    r   	getIdAttrz CSSDOMElementInterface.getIdAttrV   s    ||D"%%%r   c                 .    |                      dd          S )Nclassr%   r5   r   s    r   getClassAttrz#CSSDOMElementInterface.getClassAttrZ   s    ||GR(((r   c                 .    |                      dd           S )Nr"   r5   r   s    r   r   z#CSSDOMElementInterface.getStyleAttr^   s    ||GT***r    c                 P    | j                             |d           } ||           S )Nc                     dS )NFr;   r   s    r   r   z6CSSDOMElementInterface.inPseudoState.<locals>.<lambda>c   s     r   )_pseudoStateHandlerLookupr-   )r   r/   paramshandlers       r   inPseudoStatez$CSSDOMElementInterface.inPseudoStateb   s,    044T;M;MNNwt}}r   Fc              #      K   | j         }| j        }|s|j        }|8|j        |j        k    r, ||          V  |j        }||j        |j        k    &d S d S d S d S r   )	__class__r   
parentNodenodeTypeELEMENT_NODE)r   includeSelfklasscurrents       r   iterXMLParentsz%CSSDOMElementInterface.iterXMLParentsg   s      / 	)(G")9W=Q)Q)Q%..   (G ")9W=Q)Q)Q)Q)Q"""")Q)Qr   c                 X    | j         j        }|r|j        |j        k    r|S |j        }|d S r   )r   previousSiblingrE   rF   r   siblings     r   r
   z)CSSDOMElementInterface.getPreviousSiblingq   sC    /1 	27#777!1	  	2
 tr   c                 X    | j         j        }|r|j        |j        k    r|S |j        }|d S r   )r   nextSiblingrE   rF   rM   s     r   r   z%CSSDOMElementInterface.getNextSibling{   sC    /- 	.7#777!-	  	.
 tr   c                     | j         S r   r"   r   s    r   getInlineStylez%CSSDOMElementInterface.getInlineStyle   s
    zr   c                     || _         d S r   rR   )r   r"   s     r   r    z%CSSDOMElementInterface.setInlineStyle   s    


r   r   )r;   )F)__name__
__module____qualname____doc__r"   r>   r   r   r*   NotImplementedr2   r6   r9   r   rA   rJ   r
   r   rS   r    r;   r   r   r   r      s5       XX E =<88 9844 a`WW! !0- - - -' ' '= = = %3    & & &) ) )+ + +   
) ) ) )          r   r   N)r%   r   CSSElementInterfaceAbstractr   r;   r   r   <module>r[      sZ         x x x x xS< x x x x xr   