a
    ]øjÒ  ã                   @  s¨   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„ deƒZdS )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                   @  s  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œdd„Z
eddœdd„ƒZejddœdd„ƒZdd„ Zeddœdd„ƒZeddœdd„ƒZd d!œd"d#„Zed$dœd%d&„ƒZejd$d'œd(d&„ƒZed)d*„ ƒZd+d+d,œd-d.„Zd/S )0ÚCT_PzD`<w:p>` element, containing the properties and text for a paragraph.zCallable[[], CT_R]Zadd_rzCallable[[], CT_PPr]Úget_or_add_pPrzList[CT_Hyperlink]Zhyperlink_lstz
List[CT_R]Zr_lstzw:pPrzCT_PPr | NoneÚpPrzw:hyperlinkzw:r)Úreturnc                 C  s   t ttdƒƒ}|  |¡ |S )zAReturn a new `<w:p>` element inserted directly prior to this one.zw:p)r   r   r   Zaddprevious)ÚselfZnew_p© r   úT/var/www/html/assistant/venv/lib/python3.9/site-packages/docx/oxml/text/paragraph.pyÚadd_p_before!   s    
zCT_P.add_p_beforezWD_PARAGRAPH_ALIGNMENT | Nonec                 C  s   | j }|du rdS |jS )zFThe value of the `<w:jc>` grandchild element or |None| if not present.N)r   Újc_val©r   r   r   r   r   Ú	alignment'   s    zCT_P.alignmentr   )Úvaluec                 C  s   |   ¡ }||_d S ©N)r   r   )r   r   r   r   r   r   r   /   s    c                 C  s   |   d¡D ]}|  |¡ q
dS )zCRemove all child elements, except the `<w:pPr>` element if present.z./*[not(self::w:pPr)]N)ÚxpathÚremove)r   Úchildr   r   r   Úclear_content4   s    zCT_P.clear_contentzList[CT_R | CT_Hyperlink]c                 C  s
   |   d¡S )zCRun and hyperlink children of the `w:p` element, in document order.z./w:r | ./w:hyperlink©r   ©r   r   r   r   Úinner_content_elements9   s    zCT_P.inner_content_elementszList[CT_LastRenderedPageBreak]c                 C  s
   |   d¡S )zÆAll `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#   r   r   r   ÚlastRenderedPageBreaks>   s    ÿzCT_P.lastRenderedPageBreaksr   )ÚsectPrc                 C  s   |   ¡ }| ¡  | |¡ dS )zJUnconditionally replace or add `sectPr` as grandchild in correct sequence.N)r   Z_remove_sectPrZ_insert_sectPr)r   r&   r   r   r   r   Ú
set_sectPrI   s    zCT_P.set_sectPrz
str | Nonec                 C  s   | j }|du rdS |jS )zpString contained in `w:val` attribute of `./w:pPr/w:pStyle` grandchild.

        |None| if not present.
        N)r   Ústyler   r   r   r   r(   O   s    z
CT_P.style)r(   c                 C  s   |   ¡ }||_d S r   )r   r(   )r   r(   r   r   r   r   r(   Z   s    c                 C  s   d  dd„ |  d¡D ƒ¡S )z£The textual content of this paragraph.

        Inner-content child elements like `w:r` and `w:hyperlink` are translated to
        their text equivalent.
        Ú c                 s  s   | ]}|j V  qd S r   )Útext)Ú.0Úer   r   r   Ú	<genexpr>f   ó    zCT_P.text.<locals>.<genexpr>zw:r | w:hyperlink)Újoinr   r#   r   r   r   r*   _   s    z	CT_P.textr   )r   r   c                 C  s   |   d|¡ |S )Nr   )Úinsertr   r   r   r   Ú_insert_pPrh   s    zCT_P._insert_pPrN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r
   r   r	   Z	hyperlinkÚrr   Úpropertyr   Úsetterr!   r$   r%   r'   r(   r*   r1   r   r   r   r   r      s4   



r   N)r5   Ú
__future__r   Útypingr   r   r   r   Zdocx.oxml.parserr   Zdocx.oxml.xmlchemyr   r	   r
   Zdocx.enum.textr   Zdocx.oxml.sectionr   Zdocx.oxml.text.hyperlinkr   Zdocx.oxml.text.pagebreakr   Zdocx.oxml.text.parfmtr   Zdocx.oxml.text.runr   r   r   r   r   r   Ú<module>   s   