
    h.                       S r SSKJr  SSKJrJr  SSKJrJrJ	r	J
r
  SSKJrJr  SSKJrJrJrJrJr  SSKJr  \(       a  SSKJr  SS	KJr   " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)z@Custom element classes related to paragraph properties (CT_PPr).    )annotations)TYPE_CHECKINGCallable)WD_ALIGN_PARAGRAPHWD_LINE_SPACINGWD_TAB_ALIGNMENTWD_TAB_LEADER)ST_SignedTwipsMeasureST_TwipsMeasure)BaseOxmlElement	OneOrMoreOptionalAttributeRequiredAttribute	ZeroOrOne)Length)	CT_SectPr)	CT_Stringc                      \ rS rSr% Sr\" S\5      rS\S'   \" S\5      r	S\S'   \" S\
5      rS\S	'   \" S
\
5      rS\S'   Srg)CT_Ind   z6``<w:ind>`` element, specifying paragraph indentation.zw:leftLength | Noneleftzw:rightrightzw:firstLine	firstLinez	w:hanginghanging N)__name__
__module____qualname____firstlineno____doc__r   r
   r   __annotations__r   r   r   r   __static_attributes__r       G/var/www/html/env/lib/python3.13/site-packages/docx/oxml/text/parfmt.pyr   r      se    @+'D-  -(E=   1 I}  /_G] r$   r   c                  6    \ rS rSr% Sr\" S\5      rS\S'   Sr	g)CT_Jc-   z7``<w:jc>`` element, specifying paragraph justification.w:valr   valr   N)
r   r   r   r    r!   r   r   r*   r"   r#   r   r$   r%   r'   r'   -   s    A/#C	 r$   r'   c                  
   \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S	\S'   Sr\" S\SS S9rS\S'   \" S\SS S9r	\" S\SS S9r
\" S\SS S9r\" S\SS S9r\" S\SS S9r\" S\SS S9r\" S\S S S9r\" S!\S"S S9rS#\S$'   \" S%\S&S S9r\" S'\S(S S9rC\SDS) j5       r\R*                  SES* j5       r\SDS+ j5       r\R*                  SES, j5       r\SDS- j5       r\R*                  SES. j5       r\SFS/ j5       r\R*                  S0 5       r\S1 5       r\R*                  S2 5       r\S3 5       r\R*                  S4 5       r\S5 5       r\R*                  S6 5       r\S7 5       r\R*                  S8 5       r\S9 5       r\R*                  S: 5       r\S; 5       r\R*                  S< 5       r\S= 5       r\R*                  S> 5       r\SGS? j5       r \ R*                  SHS@ j5       r \SA 5       r!\!R*                  SB 5       r!SCr"g)ICT_PPr5   z?``<w:pPr>`` element, containing the properties for a paragraph.zCallable[[], CT_Ind]get_or_add_indzCallable[[], CT_String]get_or_add_pStylezCallable[[CT_SectPr], None]_insert_sectPrzCallable[[], None]_remove_pStyle_remove_sectPr)$w:pStyle
w:keepNextw:keepLinesw:pageBreakBeforez	w:framePrw:widowControlw:numPrzw:suppressLineNumberszw:pBdrzw:shdw:tabszw:suppressAutoHyphensz	w:kinsokuz
w:wordWrapzw:overflowPunctzw:topLinePunctzw:autoSpaceDEzw:autoSpaceDNzw:bidizw:adjustRightIndzw:snapToGrid	w:spacingw:indzw:contextualSpacingzw:mirrorIndentszw:suppressOverlapw:jczw:textDirectionzw:textAlignmentzw:textboxTightWrapzw:outlineLvlzw:divIdz
w:cnfStylezw:rPrw:sectPrzw:pPrChanger3      N
successorszCT_String | NonepStyler4      r5      r6      r7      r8      r9      r:      r;      zCT_Ind | Noneindr<      r=   #   c                |    U R                   nUc  gUR                  nUb  [        U* 5      $ UR                  nUc  gU$ )zA |Length| value calculated from the values of `w:ind/@w:firstLine` and
`w:ind/@w:hanging`.

Returns |None| if the `w:ind` child is not present.
N)rJ   r   r   r   )selfrJ   r   r   s       r%   first_line_indentCT_PPr.first_line_indentu   sI     hh;++7(##MM	r$   c                    U R                   c  Uc  g U R                  5       nS =Ul        Ul        Uc  g US:  a	  U* Ul        g Xl        g )Nr   )rJ   r.   r   r   rN   valuerJ   s      r%   rO   rP      sL    88!!#&**=QY &CK!Mr$   c                :    U R                   nUc  gUR                  $ )z6The value of `w:ind/@w:left` or |None| if not present.N)rJ   r   rN   rJ   s     r%   ind_leftCT_PPr.ind_left   s     hh;xxr$   c                R    Uc  U R                   c  g U R                  5       nXl        g N)rJ   r.   r   rR   s      r%   rV   rW      s&    =TXX-!!#r$   c                :    U R                   nUc  gUR                  $ )z7The value of `w:ind/@w:right` or |None| if not present.N)rJ   r   rU   s     r%   	ind_rightCT_PPr.ind_right   s     hh;yyr$   c                R    Uc  U R                   c  g U R                  5       nXl        g rY   )rJ   r.   r   rR   s      r%   r[   r\      s&    =TXX-!!#	r$   c                L    U R                   b  U R                   R                  $ S$ )z=Value of the `<w:jc>` child element or |None| if not present.N)jcr*   rN   s    r%   jc_valCT_PPr.jc_val   s      #gg1tww{{;t;r$   c                T    Uc  U R                  5         g XR                  5       l        g rY   )
_remove_jcget_or_add_jcr*   rN   rS   s     r%   ra   rb      s#    =OO#( r$   c                :    U R                   nUc  gUR                  $ )z7The value of `keepLines/@val` or |None| if not present.N)	keepLinesr*   )rN   rh   s     r%   keepLines_valCT_PPr.keepLines_val   s      NN	}}r$   c                T    Uc  U R                  5         g XR                  5       l        g rY   )_remove_keepLinesget_or_add_keepLinesr*   rf   s     r%   ri   rj      s"    =""$.3%%'+r$   c                :    U R                   nUc  gUR                  $ )z6The value of `keepNext/@val` or |None| if not present.N)keepNextr*   )rN   ro   s     r%   keepNext_valCT_PPr.keepNext_val   s      ==||r$   c                T    Uc  U R                  5         g XR                  5       l        g rY   )_remove_keepNextget_or_add_keepNextr*   rf   s     r%   rp   rq      s"    =!!#-2$$&*r$   c                :    U R                   nUc  gUR                  $ )z=The value of `pageBreakBefore/@val` or |None| if not present.N)pageBreakBeforer*   )rN   rv   s     r%   pageBreakBefore_valCT_PPr.pageBreakBefore_val   s$     ..""""r$   c                T    Uc  U R                  5         g XR                  5       l        g rY   )_remove_pageBreakBeforeget_or_add_pageBreakBeforer*   rf   s     r%   rw   rx      s"    =((*49++-1r$   c                :    U R                   nUc  gUR                  $ )z;The value of `w:spacing/@w:after` or |None| if not present.N)spacingafterrN   r}   s     r%   spacing_afterCT_PPr.spacing_after   s     ,,?}}r$   c                N    Uc  U R                   c  g XR                  5       l        g rY   )r}   get_or_add_spacingr~   rf   s     r%   r   r      s"    =T\\1*/!'r$   c                :    U R                   nUc  gUR                  $ )z<The value of `w:spacing/@w:before` or |None| if not present.N)r}   beforer   s     r%   spacing_beforeCT_PPr.spacing_before   s     ,,?~~r$   c                N    Uc  U R                   c  g XR                  5       l        g rY   )r}   r   r   rf   s     r%   r   r     s"    =T\\1+0!(r$   c                :    U R                   nUc  gUR                  $ )z:The value of `w:spacing/@w:line` or |None| if not present.N)r}   liner   s     r%   spacing_lineCT_PPr.spacing_line  s     ,,?||r$   c                N    Uc  U R                   c  g XR                  5       l        g rY   )r}   r   r   rf   s     r%   r   r     s"    =T\\1).!&r$   c                ~    U R                   nUc  gUR                  nUc  UR                  b  [        R                  $ U$ )aE  The value of `w:spacing/@w:lineRule` as a member of the :ref:`WdLineSpacing`
enumeration.

Only the `MULTIPLE`, `EXACTLY`, and `AT_LEAST` members are used. It is the
responsibility of the client to calculate the use of `SINGLE`, `DOUBLE`, and
`MULTIPLE` based on the value of `w:spacing/@w:line` if that behavior is
desired.
N)r}   lineRuler   r   MULTIPLE)rN   r}   r   s      r%   spacing_lineRuleCT_PPr.spacing_lineRule  s@     ,,?## 8"+++r$   c                N    Uc  U R                   c  g XR                  5       l        g rY   )r}   r   r   rf   s     r%   r   r   '  s"    =T\\1-2!*r$   c                :    U R                   nUc  gUR                  $ )zGString contained in `./w:pStyle/@val`, or None if child is not present.N)rA   r*   )rN   rA   s     r%   styleCT_PPr.style-  s     >zzr$   c                X    Uc  U R                  5         gU R                  5       nXl        g)z{Set `./w:pStyle/@val` `style`, adding a new element if necessary.

If `style` is |None|, remove `./w:pStyle` when present.
N)r1   r/   r*   )rN   r   rA   s      r%   r   r   5  s+     =!'')
r$   c                :    U R                   nUc  gUR                  $ )z:The value of `widowControl/@val` or |None| if not present.N)widowControlr*   )rN   r   s     r%   widowControl_valCT_PPr.widowControl_valA  s$     ((r$   c                T    Uc  U R                  5         g XR                  5       l        g rY   )_remove_widowControlget_or_add_widowControlr*   rf   s     r%   r   r   I  s"    =%%'16((*.r$   r   )returnr   )rS   r   )r   zWD_ALIGN_PARAGRAPH | None)r   
str | None)r   r   )#r   r   r   r    r!   r"   _tag_seqr   rA   ro   rh   rv   r   numPrtabsr}   rJ   r_   sectPrpropertyrO   setterrV   r[   ra   ri   rp   rw   r   r   r   r   r   r   r#   r   r$   r%   r,   r,   5   s_   I((..//&&&&%HL  )x| F  (12,?H-HQRLAI 3MO-(12,GLiHQRL9EX(23-8D>G"HRSMC  
6hrsm	4Bzhrsm<F " 
" 
"   __      < < ]]) )   4 4   3 3 # # :  :   0 0
   1 1
   / /
  " 3 3
   \\	 	     7 7r$   r,   c                  `    \ rS rSrSr\" S\5      r\" S\5      r\" S\	5      r
\" S\5      rSrg)	
CT_SpacingiQ  zg``<w:spacing>`` element, specifying paragraph spacing attributes such as space
before and line spacing.zw:afterzw:beforezw:linez
w:lineRuler   N)r   r   r   r    r!   r   r   r~   r   r
   r   r   r   r#   r   r$   r%   r   r   Q  s:      i9Ez?;FX'<=D ?Hr$   r   c                      \ rS rSr% Sr\" S\5      rS\S'   \	" S\
\
R                  S9rS\S	'   \" S
\5      rS\S'   SS jrSrg)
CT_TabStopi[  z`<w:tab>` element, representing an individual tab stop.

Overloaded to use for a tab-character in a run, which also uses the w:tab tag but
only needs a __str__ method.
r)   r   r*   zw:leader)defaultzWD_TAB_LEADER | Noneleaderzw:posr   posc                    g)zText equivalent of a `w:tab` element appearing in a run.

Allows text of run inner-content to be accessed consistently across all text
inner-content.
	r   r`   s    r%   __str__CT_TabStop.__str__l  s     r$   r   N)r   str)r   r   r   r    r!   r   r   r*   r"   r   r	   SPACESr   r
   r   r   r#   r   r$   r%   r   r   [  s`     .!C	  $5M=+?+?$F   $&C r$   r   c                  ,    \ rS rSrSr\" SSS9rS rSrg)CT_TabStopsiu  zC``<w:tabs>`` element, container for a sorted sequence of tab stops.zw:tabr   r?   c                    U R                  5       nXUsUl        Ul        Ul        U R                   H2  nUR                  UR                  :  d  M  UR                  U5        Us  $    U R                  U5        U$ )z<Insert a newly created `w:tab` child element in `pos` order.)_new_tabr   r*   r   tab_lstaddpreviousappend)rN   r   alignr   new_tabtabs         r%   insert_tab_in_orderCT_TabStops.insert_tab_in_orderz  sc    --/36v0W['.<<C{{SWW$(   	Gr$   N)	r   r   r   r    r!   r   r   r   r#   r   r$   r%   r   r   u  s    M
G
+C	r$   r   N) r!   
__future__r   typingr   r   docx.enum.textr   r   r   r	   docx.oxml.simpletypesr
   r   docx.oxml.xmlchemyr   r   r   r   r   docx.sharedr   docx.oxml.sectionr   docx.oxml.sharedr   r   r'   r,   r   r   r   r   r$   r%   <module>r      s    F " *  I  +*_ "O Y7_ Y7x@ @ 4/ r$   