
    ,h                        d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 ddl
mZmZmZ er$ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ  G d de      Zy)z4Custom element classes related to paragraphs (CT_P).    )annotations)TYPE_CHECKINGCallableListcast)OxmlElement)BaseOxmlElement
ZeroOrMore	ZeroOrOne)WD_PARAGRAPH_ALIGNMENT)	CT_SectPr)CT_Hyperlink)CT_LastRenderedPageBreak)CT_PPr)CT_Rc                  6   e Zd ZU dZded<   ded<   ded<   ded	<    ed
      Zded<    ed      Z ed      Z	ddZ
edd       Zej                  dd       Zd Zedd       Zedd       Zd dZed!d       Zej                  d"d       Zed        Zd#dZy)$CT_PzD`<w:p>` element, containing the properties and text for a paragraph.zCallable[[], CT_R]add_rzCallable[[], CT_PPr]get_or_add_pPrzList[CT_Hyperlink]hyperlink_lstz
List[CT_R]r_lstzw:pPrzCT_PPr | NonepPrzw:hyperlinkzw:rc                Z    t        t        t        d            }| j                  |       |S )zAReturn a new `<w:p>` element inserted directly prior to this one.zw:p)r   r   r   addprevious)selfnew_ps     Z/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/docx/oxml/text/paragraph.pyadd_p_beforezCT_P.add_p_before!   s&    T;u-.    c                8    | j                   }|y|j                  S )zFThe value of the `<w:jc>` grandchild element or |None| if not present.N)r   jc_valr   r   s     r   	alignmentzCT_P.alignment'   s     hh;zzr   c                2    | j                         }||_        y N)r   r!   )r   valuer   s      r   r#   zCT_P.alignment/   s    !!#
r   c                R    | j                  d      D ]  }| j                  |        y)zCRemove all child elements, except the `<w:pPr>` element if present.z./*[not(self::w:pPr)]N)xpathremove)r   childs     r   clear_contentzCT_P.clear_content4   s'    ZZ 78 	EKK	r   c                $    | j                  d      S )zCRun and hyperlink children of the `w:p` element, in document order.z./w:r | ./w:hyperlinkr(   r   s    r   inner_content_elementszCT_P.inner_content_elements9   s     zz122r   c                $    | j                  d      S )zAll `w:lastRenderedPageBreak` descendants of this paragraph.

        Rendered page-breaks commonly occur in a run but can also occur in a run inside
        a hyperlink. This returns both.
        zI./w:r/w:lastRenderedPageBreak | ./w:hyperlink/w:r/w:lastRenderedPageBreakr-   r.   s    r   lastRenderedPageBreakszCT_P.lastRenderedPageBreaks>   s     zzW
 	
r   c                f    | j                         }|j                          |j                  |       y)zJUnconditionally replace or add `sectPr` as grandchild in correct sequence.N)r   _remove_sectPr_insert_sectPr)r   sectPrr   s      r   
set_sectPrzCT_P.set_sectPrI   s*    !!#6"r   c                8    | j                   }|y|j                  S )zpString contained in `w:val` attribute of `./w:pPr/w:pStyle` grandchild.

        |None| if not present.
        N)r   styler"   s     r   r8   z
CT_P.styleO   s     hh;yyr   c                2    | j                         }||_        y r%   )r   r8   )r   r8   r   s      r   r8   z
CT_P.styleZ   s    !!#	r   c                P    dj                  d | j                  d      D              S )zThe textual content of this paragraph.

        Inner-content child elements like `w:r` and `w:hyperlink` are translated to
        their text equivalent.
         c              3  4   K   | ]  }|j                     y wr%   )text).0es     r   	<genexpr>zCT_P.text.<locals>.<genexpr>f   s     G!qvvGs   zw:r | w:hyperlink)joinr(   r.   s    r   r=   z	CT_P.text_   s#     wwGtzz2E'FGGGr   c                *    | j                  d|       |S )Nr   )insertr"   s     r   _insert_pPrzCT_P._insert_pPrh   s    As
r   N)returnr   )rE   zWD_PARAGRAPH_ALIGNMENT | None)r&   r   )rE   zList[CT_R | CT_Hyperlink])rE   zList[CT_LastRenderedPageBreak])r5   r   )rE   
str | None)r8   rF   )r   r   rE   r   )__name__
__module____qualname____doc____annotations__r   r   r
   	hyperlinkrr   propertyr#   setterr+   r/   r1   r6   r8   r=   rD    r   r   r   r      s    N((%%"7+C+=)I5A    
 3 3 
 
#   \\  H Hr   r   N)rJ   
__future__r   typingr   r   r   r   docx.oxml.parserr   docx.oxml.xmlchemyr	   r
   r   docx.enum.textr   docx.oxml.sectionr   docx.oxml.text.hyperlinkr   docx.oxml.text.pagebreakr   docx.oxml.text.parfmtr   docx.oxml.text.runr   r   rP   r   r   <module>r[      s?    ; " 6 6 ( E E5+5A,'U? Ur   