
    h	                        S r SSKJr  SSKJrJrJr  SSKJr  SSK	J
r
JrJr  \(       a  SSKJr  SSKJr   " S S	\
5      r " S
 S\
5      rg)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                  H    \ rS rSr% Sr\" S5      rS\S'   \S	S j5       r	Sr
g)
CT_Document   zB``<w:document>`` element, the root element of a document.xml file.zw:bodyCT_Bodybodyc                (    SnU R                  U5      $ )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   s     D/var/www/html/env/lib/python3.13/site-packages/docx/oxml/document.py
sectPr_lstCT_Document.sectPr_lst   s     Bzz%       N)returnzList[CT_SectPr])__name__
__module____qualname____firstlineno____doc__r
   r   __annotations__propertyr   __static_attributes__r   r   r   r   r      s&    Lh'D''! !r   r   c                      \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   \" SSS9r\" SSS9r\	" SSS9r
S\S'   SS jrS r\SS j5       rSrg)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sectPrc                    U R                  5       nU R                  5       R                  UR                  5       5        UR	                  S5       H  nUR                  U5        M     U$ )a0  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_refs      r   add_section_breakCT_Body.add_section_break3   s\     002

 5 5 78)//0UVJ"":. W r   c                V    U R                  S5       H  nU R                  U5        M     g)znRemove 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   r1   )r   content_elms     r   clear_contentCT_Body.clear_contentI   s%    
  ::&@AKKK$ Br   c                $    U R                  S5      $ )zGenerate 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   s    r   inner_content_elementsCT_Body.inner_content_elementsQ   s     zz+,,r   N)r   r   )r   zList[CT_P | CT_Tbl])r   r   r   r   r    r!   r	   ptblr
   r-   r4   r8   r"   r;   r#   r   r   r   r   r   #   sp    X..++5]3A
W
7C(r F ,% - -r   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   <module>rE      s;    U " 0 0 ' E E&-!/ !(5-o 5-r   