
    h}                         S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	J
r
JrJr   " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      rg)z5Custom element classes related to the numbering part.    )OxmlElement)CT_DecimalNumber)ST_DecimalNumber)BaseOxmlElementOneAndOnlyOneRequiredAttribute
ZeroOrMore	ZeroOrOnec                   `    \ rS rSrSr\" S5      r\" S5      r\	" S\
5      rS r\S 5       rSrg	)
CT_Num   z``<w:num>`` element, which represents a concrete list definition instance, having
a required child <w:abstractNumId> that references an abstract numbering definition
that defines most of the formatting details.w:abstractNumIdzw:lvlOverridew:numIdc                      U R                  US9$ )zeReturn a newly added CT_NumLvl (<w:lvlOverride>) element having its ``ilvl``
attribute set to `ilvl`.)ilvl)_add_lvlOverride)selfr   s     E/var/www/html/env/lib/python3.13/site-packages/docx/oxml/numbering.pyadd_lvlOverrideCT_Num.add_lvlOverride   s     $$$$//    c                 x    [        S5      nXl        [        R                  " SU5      nUR	                  U5        U$ )zReturn a new ``<w:num>`` element having numId of `num_id` and having a
``<w:abstractNumId>`` child with val attribute set to `abstractNum_id`.w:numr   )r   numIdr   newappend)clsnum_idabstractNum_idnumabstractNumIds        r   r   
CT_Num.new   s7     '"	(,,->O

=!
r    N)__name__
__module____qualname____firstlineno____doc__r   r!   r	   lvlOverrider   r   r   r   classmethodr   __static_attributes__r#   r   r   r   r      sD    4 ""34M_-Ki)9:E0
  r   r   c                   >    \ rS rSrSr\" SSS9r\" S\5      r	S r
Srg	)
	CT_NumLvl(   zq``<w:lvlOverride>`` element, which identifies a level in a list definition to
override with settings it contains.zw:startOverride)zw:lvl
successorsw:ilvlc                      U R                  US9$ )ztReturn a newly added CT_DecimalNumber element having tagname
``w:startOverride`` and ``val`` attribute set to `val`.)val)_add_startOverride)r   r3   s     r   add_startOverrideCT_NumLvl.add_startOverride/   s     &&3&//r   r#   N)r$   r%   r&   r'   r(   r
   startOverrider   r   r   r5   r+   r#   r   r   r-   r-   (   s(    + /JGMX'78D0r   r-   c                   4    \ rS rSrSr\" SSS9r\" SSS9rSrg	)
CT_NumPr5   zUA ``<w:numPr>`` element, a container for numbering properties applied to a
paragraph.r1   )r   w:numberingChangew:insr/   r   )r;   r<   r#   N)	r$   r%   r&   r'   r(   r
   r   r   r+   r#   r   r   r9   r9   5   s#     X*STDi,JKEr   r9   c                   B    \ rS rSrSr\" SSS9rS rS r\	S 5       r
S	rg
)CT_NumberingN   zT``<w:numbering>`` element, the root element of a numbering part, i.e.
numbering.xml.r   )zw:numIdMacAtCleanupr/   c                 f    U R                   n[        R                  X!5      nU R                  U5      $ )z{Return a newly added CT_Num (<w:num>) element referencing the abstract
numbering definition identified by `abstractNum_id`.)_next_numIdr   r   _insert_num)r   r   next_num_idr    s       r   add_numCT_Numbering.add_numT   s.     &&jj5$$r   c                 n    SU-  n U R                  U5      S   $ ! [         a    [        SU-  5      ef = f)zQReturn the ``<w:num>`` child element having ``numId`` attribute matching
`numId`.z./w:num[@w:numId="%d"]r   z no <w:num> element with numId %d)xpath
IndexErrorKeyError)r   r   rG   s      r   num_having_numIdCT_Numbering.num_having_numId[   sJ     )50	G::e$Q'' 	G=EFF	Gs    4c                     U R                  S5      nU Vs/ s H  n[        U5      PM     nn[        S[        U5      S-   5       H  nXC;  d  M
    U$    W$ s  snf )zThe first ``numId`` unused by a ``<w:num>`` element, starting at 1 and
filling any gaps in numbering between existing ``<w:num>`` elements.z./w:num/@w:numId      )rG   intrangelen)r   
numId_strs	numId_strnum_idsr    s        r   rA   CT_Numbering._next_numIdd   s_     ZZ 23
3=>:i3y>:>CL1,-C!
 . 
	 ?s   Ar#   N)r$   r%   r&   r'   r(   r	   r    rD   rJ   propertyrA   r+   r#   r   r   r>   r>   N   s5     W)A
BC%G  r   r>   N)r(   docx.oxml.parserr   docx.oxml.sharedr   docx.oxml.simpletypesr   docx.oxml.xmlchemyr   r   r   r	   r
   r   r-   r9   r>   r#   r   r   <module>r[      sM    ; ( - 2 _ 2
0 
0L L2? r   