
    i/                    *   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  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)CT_DecimalNumber)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       U/var/www/html/banglarbhumi/venv/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                  2   \ rS rSr% SrS\S'   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S+\S,'   \" S-\S.S S9rC\SJS/ j5       r\R,                  SKS0 j5       r\SJS1 j5       r\R,                  SKS2 j5       r\SJS3 j5       r\R,                  SKS4 j5       r\SLS5 j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\S? 5       r\R,                  S@ 5       r\SA 5       r\R,                  SB 5       r\SC 5       r \ R,                  SD 5       r \SMSE j5       r!\!R,                  SNSF j5       r!\SG 5       r"\"R,                  SH 5       r"SIr#g)OCT_PPr6   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]get_or_add_sectPrz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:textboxTightWrapw:outlineLvlzw:divIdz
w:cnfStylezw:rPrw:sectPrzw:pPrChanger5      N
successorszCT_String | NonepStyler6      r7      r8      r9      r:      r;      r<      r=      zCT_Ind | Noneindr>      r?      r
   
outlineLvlr@   #   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)rM   r   r   r   )selfrM   r   r   s       r&   first_line_indentCT_PPr.first_line_indentz   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   )rM   r/   r   r   rS   valuerM   s      r&   rT   rU      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)rM   r   rS   rM   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)rM   r/   r   rW   s      r&   r[   r\      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)rM   r   rZ   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 r^   )rM   r/   r   rW   s      r&   r`   ra      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+   rS   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 r^   )
_remove_jcget_or_add_jcr+   rS   rX   s     r&   rf   rg      s#    =OO#( r%   c                :    U R                   nUc  gUR                  $ )z7The value of `keepLines/@val` or |None| if not present.N)	keepLinesr+   )rS   rm   s     r&   keepLines_valCT_PPr.keepLines_val   s      NN	}}r%   c                T    Uc  U R                  5         g XR                  5       l        g r^   )_remove_keepLinesget_or_add_keepLinesr+   rk   s     r&   rn   ro      s"    =""$.3%%'+r%   c                :    U R                   nUc  gUR                  $ )z6The value of `keepNext/@val` or |None| if not present.N)keepNextr+   )rS   rt   s     r&   keepNext_valCT_PPr.keepNext_val   s      ==||r%   c                T    Uc  U R                  5         g XR                  5       l        g r^   )_remove_keepNextget_or_add_keepNextr+   rk   s     r&   ru   rv      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+   )rS   r{   s     r&   pageBreakBefore_valCT_PPr.pageBreakBefore_val   s$     ..""""r%   c                T    Uc  U R                  5         g XR                  5       l        g r^   )_remove_pageBreakBeforeget_or_add_pageBreakBeforer+   rk   s     r&   r|   r}      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rS   r   s     r&   spacing_afterCT_PPr.spacing_after   s     ,,?}}r%   c                N    Uc  U R                   c  g XR                  5       l        g r^   )r   get_or_add_spacingr   rk   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 r^   )r   r   r   rk   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 r^   )r   r   r   rk   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)rS   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 r^   )r   r   r   rk   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)rD   r+   )rS   rD   s     r&   styleCT_PPr.style2  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)r3   r0   r+   )rS   r   rD   s      r&   r   r   :  s+     =!'')
r%   c                :    U R                   nUc  gUR                  $ )z:The value of `widowControl/@val` or |None| if not present.N)widowControlr+   )rS   r   s     r&   widowControl_valCT_PPr.widowControl_valF  s$     ((r%   c                T    Uc  U R                  5         g XR                  5       l        g r^   )_remove_widowControlget_or_add_widowControlr+   rk   s     r&   r   r   N  s"    =%%'16((*.r%   r   )returnr   )rX   r   )r   zWD_ALIGN_PARAGRAPH | None)r   
str | None)r   r   )$r   r   r    r!   r"   r#   _tag_seqr   rD   rt   rm   r{   r   numPrtabsr   rM   rd   rP   sectPrpropertyrT   setterr[   r`   rf   rn   ru   r|   r   r   r   r   r   r   r$   r   r%   r&   r-   r-   6   s   I((....//&&&&%HL  )x| F  (12,?H-HQRLAI 3MO-(12,GLiHQRL9EX(23-8D>G"HRSMC  
6hrsm	4B#,8BC=$J   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_SpacingiV  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   V  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   re   s    r&   __str__CT_TabStop.__str__q  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_TabStopsiz  zC``<w:tabs>`` element, container for a sorted sequence of tab stops.zw:tabr   rB   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)rS   r   alignr   new_tabtabs         r&   insert_tab_in_orderCT_TabStops.insert_tab_in_order  sc    --/36v0W['.<<C{{SWW$(   	Gr%   N)	r   r   r    r!   r"   r   r   r   r$   r   r%   r&   r   r   z  s    M
G
+C	r%   r   N)!r"   
__future__r   typingr   r   docx.enum.textr   r   r   r	   docx.oxml.sharedr
   docx.oxml.simpletypesr   r   docx.oxml.xmlchemyr   r   r   r   r   docx.sharedr   docx.oxml.sectionr   r   r   r(   r-   r   r   r   r   r%   r&   <module>r      s    F " *  . H  +*_ "O ]7_ ]7@	@ @ 4/ r%   