o
    ýÞh	  ã                   @  s„   d Z ddlmZ ddlmZmZmZ ddlmZ ddl	m
Z
mZmZ er0ddlmZ ddlmZ G dd	„ d	e
ƒZG d
d„ de
ƒZdS )zOCustom element classes that correspond to the document part, e.g. <w:document>.é    )Úannotations)ÚTYPE_CHECKINGÚCallableÚList)Ú	CT_SectPr)ÚBaseOxmlElementÚ
ZeroOrMoreÚ	ZeroOrOne)ÚCT_Tbl)ÚCT_Pc                   @  s0   e Zd ZU dZedƒZded< ed
dd„ƒZd	S )ÚCT_DocumentzB``<w:document>`` element, the root element of a document.xml file.zw:bodyÚCT_BodyÚbodyÚreturnúList[CT_SectPr]c                 C  s   d}|   |¡S )aŽ  All `w:sectPr` elements directly accessible from document element.

        Note this does not include a `sectPr` child in a paragraphs wrapped in
        revision marks or other intervening layer, perhaps `w:sdt` or customXml
        elements.

        `w:sectPr` elements appear in document order. The last one is always
        `w:body/w:sectPr`, all preceding are `w:p/w:pPr/w:sectPr`.
        z/./w:body/w:p/w:pPr/w:sectPr | ./w:body/w:sectPr©Úxpath)Úselfr   © r   úR/var/www/html/premium_crap/venv/lib/python3.10/site-packages/docx/oxml/document.pyÚ
sectPr_lst   s   
zCT_Document.sectPr_lstN)r   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   Ú__annotations__Úpropertyr   r   r   r   r   r      s
   
 r   c                   @  s†   e Zd ZU dZded< ded< ded< ded	< d
ed< eddd�Zeddd�Zeddd�Z	ded< ddd„Z
dd„ Zeddd„ƒZdS ) r   zN`w:body`, the container element for the main document story in `document.xml`.zCallable[[], CT_P]Úadd_pzCallable[[], CT_SectPr]Úget_or_add_sectPrz
List[CT_P]Úp_lstzList[CT_Tbl]Útbl_lstzCallable[[CT_Tbl], CT_Tbl]Ú_insert_tblzw:p)úw:sectPr)Ú
successorszw:tblr"   r   zCT_SectPr | NoneÚsectPrr   r   c                 C  s8   |   ¡ }|  ¡  | ¡ ¡ | d¡D ]}| |¡ q|S )ap  Return `w:sectPr` element for new section added at end of document.

        The last `w:sectPr` becomes the second-to-last, with the new `w:sectPr` being an
        exact clone of the previous one, except that all header and footer references
        are removed (and are therefore now "inherited" from the prior section).

        A copy of the previously-last `w:sectPr` will now appear in a new `w:p` at the
        end of the document. The returned `w:sectPr` is the sentinel `w:sectPr` for the
        document (and as implemented, `is` the prior sentinel `w:sectPr` with headers
        and footers removed).
        z#w:headerReference|w:footerReference)r   r   Ú
set_sectPrÚcloner   Úremove)r   Úsentinel_sectPrÚ
hdrftr_refr   r   r   Úadd_section_break3   s
   zCT_Body.add_section_breakc                 C  s   |   d¡D ]}|  |¡ qdS )z~Remove all content child elements from this <w:body> element.

        Leave the <w:sectPr> element if it is present.
        z./*[not(self::w:sectPr)]N)r   r'   )r   Úcontent_elmr   r   r   Úclear_contentI   s   ÿzCT_Body.clear_contentúList[CT_P | CT_Tbl]c                 C  s
   |   d¡S )zÔGenerate all `w:p` and `w:tbl` elements in this document-body.

        Elements appear in document order. Elements shaded by nesting in a `w:ins` or
        other "wrapper" element will not be included.
        z./w:p | ./w:tblr   )r   r   r   r   Úinner_content_elementsQ   s   
zCT_Body.inner_content_elementsN)r   r   )r   r-   )r   r   r   r   r   r   ÚpÚtblr	   r$   r*   r,   r   r.   r   r   r   r   r   #   s    
 ÿ
r   N)r   Ú
__future__r   Útypingr   r   r   Údocx.oxml.sectionr   Údocx.oxml.xmlchemyr   r   r	   Údocx.oxml.tabler
   Údocx.oxml.text.paragraphr   r   r   r   r   r   r   Ú<module>   s    