
    hi)                        d Z ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z
mZmZmZmZ d Z G d de
          Z G d	 d
e
          Z G d de
          Z G d de
          ZdS )z2Custom element classes related to the styles part.    )annotations)WD_STYLE_TYPE)ST_DecimalNumberST_OnOff	ST_String)BaseOxmlElementOptionalAttributeRequiredAttribute
ZeroOrMore	ZeroOrOnec                l    ddddddddd	d
d
                     | |                     dd                    S )zlReturn the style id corresponding to `name`, taking into account special-case
    names such as 'Heading 1'.CaptionHeading1Heading2Heading3Heading4Heading5Heading6Heading7Heading8Heading9)
captionz	heading 1z	heading 2z	heading 3z	heading 4z	heading 5z	heading 6z	heading 7z	heading 8z	heading 9  )getreplace)names    h/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/docx/oxml/styles.pystyleId_from_namer      sP       
c$S"%%&&'    c                      e Zd ZdZ edd          Z ede          Z ede	          Z
 ede	          Z ede	          Z ed	e          Z ed
e	          Zd Zd Zd ZdS )CT_LatentStylesz`w:latentStyles` element, defining behavior defaults for latent styles and
    containing `w:lsdException` child elements that each override those defaults for a
    named latent style.zw:lsdException 
successorszw:countzw:defLockedStatezw:defQFormatzw:defSemiHiddenzw:defUIPriorityzw:defUnhideWhenUsedc                .    t          | |          }|dS |S )z`Return the boolean value of the attribute having `attr_name`, or |False| if
        not present.NFgetattrself	attr_namevalues      r   	bool_propzCT_LatentStyles.bool_prop/   s"     i((=5r    c                J    |                      d|z            }|sdS |d         S )zHReturn the `w:lsdException` child having `name`, or |None| if not found.zw:lsdException[@w:name="%s"]Nr   xpath)r*   r   founds      r   get_by_namezCT_LatentStyles.get_by_name7   s/    

9D@AA 	4Qxr    c                B    t          | |t          |                     dS z7Set the on/off attribute having `attr_name` to `value`.N)setattrboolr)   s      r   set_bool_propzCT_LatentStyles.set_bool_prop>   s     ie-----r    N)__name__
__module____qualname____doc__r   lsdExceptionr	   r   countr   defLockedState
defQFormatdefSemiHiddendefUIPrioritydefUnhideWhenUsedr-   r2   r7   r#   r    r   r"   r"   !   s          :.2>>>Li)9::E&&'98DDN"">8<<J%%&7BBM%%&79IJJM))*?JJ    . . . . .r    r"   c                      e Zd ZdZ ede          Z ede          Z	 ede          Z
 ede          Z ede          Z ede          Zd Zd	 Zd
 ZdS )CT_LsdExceptionzb``<w:lsdException>`` element, defining override visibility behaviors for a named
    latent style.w:lockedw:name	w:qFormatw:semiHiddenw:uiPriorityw:unhideWhenUsedc                T    |                                                      |            dS )z;Remove this `w:lsdException` element from the XML document.N	getparentremover*   s    r   deletezCT_LsdException.deleteN   &    %%%%%r    c                "    t          | |          S )z_Return the boolean value of the attribute having `attr_name`, or |None| if
        not present.r'   )r*   r+   s     r   on_off_propzCT_LsdException.on_off_propR   s     tY'''r    c                (    t          | ||           dS r4   )r5   r)   s      r   set_on_off_propzCT_LsdException.set_on_off_propW   s    i'''''r    N)r8   r9   r:   r;   r	   r   lockedr
   r   r   qFormat
semiHiddenr   
uiPriorityunhideWhenUsedrP   rS   rU   r#   r    r   rD   rD   C   s          z844FXy11DX66G"">8<<J"">3CDDJ&&'98DDN& & &( ( (
( ( ( ( (r    rD   c                     e Zd ZU dZdZ ededd                   Z ededd                   Z ed	ed
d                   Z ededd                   Z	 ededd                   Z
 ededd                   Z ededd                   Z ededd                   Z ededd                   Z ededd                   Z[ ede          Zded<    ede          Zded<    ede          Z ed e          Zed!             Zej        d"             Zed#             Zd$ Zed%             Zej        d&             Zed'             Zej        d(             Zed)             Z ed*             Z!e!j        d+             Z!ed,             Z"e"j        d-             Z"ed.             Z#e#j        d/             Z#ed0             Z$e$j        d1             Z$dS )2CT_Stylez9A ``<w:style>`` element, representing a style definition.)rF   z	w:aliases	w:basedOnw:nextzw:linkzw:autoRedefinezw:hiddenrI   rH   rJ   rG   rE   z
w:personalzw:personalComposezw:personalReplyzw:rsidw:pPrw:rPrzw:tblPrzw:trPrzw:tcPrzw:tblStylePrrF      Nr$   r]      r^      rI      rH   	   rJ   
   rG      rE      r_      r`      zw:typezWD_STYLE_TYPE | Nonetypez	w:styleIdz
str | NonestyleIdz	w:defaultzw:customStylec                &    | j         }|dS |j        S )z5Value of `w:basedOn/@w:val` or |None| if not present.N)basedOnval)r*   rn   s     r   basedOn_valzCT_Style.basedOn_val   s     ,?4{r    c                h    ||                                   d S ||                                 _        d S N)_remove_basedOnget_or_add_basedOnro   r*   r,   s     r   rp   zCT_Style.basedOn_val   s9    =  """"",1D##%%)))r    c                    | j         }|dS |                                 }|                    |j                  }|dS |S )zkSibling CT_Style element this style is based on or |None| if no base style or
        base style not found.N)rn   rM   	get_by_idro   )r*   rn   styles
base_styles       r   ry   zCT_Style.base_style   sJ     ,?4!!%%gk22
4r    c                T    |                                                      |            dS )zARemove this `w:style` element from its parent `w:styles` element.NrL   rO   s    r   rP   zCT_Style.delete   rQ   r    c                &    | j         }|dS |j        S )z5Value of `w:locked/@w:val` or |False| if not present.NF)rV   ro   )r*   rV   s     r   
locked_valzCT_Style.locked_val   s     >5zr    c                    |                                   t          |          du r|                                 }||_        d S d S NT)_remove_lockedr6   _add_lockedro   )r*   r,   rV   s      r   r|   zCT_Style.locked_val   sI    ;;$%%''FFJJJ r    c                &    | j         }|dS |j        S )z5Value of ``<w:name>`` child or |None| if not present.N)r   ro   )r*   r   s     r   name_valzCT_Style.name_val   s     y<4xr    c                l    |                                   ||                                 }||_        d S d S rr   )_remove_name	_add_namero   )r*   r,   r   s      r   r   zCT_Style.name_val   s<    >>##DDHHH r    c                t    | j         }|dS |                                 }|                    |j                  S )zSibling CT_Style element identified by the value of `w:name/@w:val` or |None|
        if no value is present or no style with that style id is found.N)nextrM   rw   ro   )r*   r   rx   s      r   
next_stylezCT_Style.next_style   s:     y<4!!)))r    c                &    | j         }|dS |j        S )z6Value of `w:qFormat/@w:val` or |False| if not present.NF)rW   ro   )r*   rW   s     r   qFormat_valzCT_Style.qFormat_val   s     ,?5{r    c                x    |                                   t          |          r|                                  d S d S rr   )_remove_qFormatr6   _add_qFormatru   s     r   r   zCT_Style.qFormat_val   sD    ;; 	 	  	 r    c                &    | j         }|dS |j        S )z<Value of ``<w:semiHidden>`` child or |False| if not present.NF)rX   ro   )r*   rX   s     r   semiHidden_valzCT_Style.semiHidden_val   s     _
5~r    c                    |                                   t          |          du r|                                 }||_        d S d S r~   )_remove_semiHiddenr6   _add_semiHiddenro   )r*   r,   rX   s      r   r   zCT_Style.semiHidden_val   sI    !!!;;$--//J"JNNN r    c                &    | j         }|dS |j        S )z;Value of ``<w:uiPriority>`` child or |None| if not present.N)rY   ro   )r*   rY   s     r   uiPriority_valzCT_Style.uiPriority_val   s     _
4~r    c                l    |                                   ||                                 }||_        d S d S rr   )_remove_uiPriority_add_uiPriorityro   )r*   r,   rY   s      r   r   zCT_Style.uiPriority_val   s>    !!!--//J"JNNN r    c                &    | j         }|dS |j        S )z=Value of `w:unhideWhenUsed/@w:val` or |False| if not present.NF)rZ   ro   )r*   rZ   s     r   unhideWhenUsed_valzCT_Style.unhideWhenUsed_val   s      ,!5!!r    c                    |                                   t          |          du r|                                 }||_        d S d S r~   )_remove_unhideWhenUsedr6   _add_unhideWhenUsedro   )r*   r,   rZ   s      r   r   zCT_Style.unhideWhenUsed_val  sL    ##%%%;;$!5577N!&N r    )%r8   r9   r:   r;   _tag_seqr   r   rn   r   rY   rX   rZ   rW   rV   pPrrPrr	   r   rk   __annotations__r   rl   r   defaultcustomStylepropertyrp   setterry   rP   r|   r   r   r   r   r   r   r#   r    r   r\   r\   \   s        CCH0 9X(122,777Di===G9X(122,777D>hqrrlCCCJ>hqrrlCCCJY1hrssmLLLNi>>>GYzhrssm<<<F
)G
6
6
6C
)G
6
6
6C!2!2-" "D     ,+Y G      X66G##OX>>K  X 2 2 2 
 
 X
& & &   X      X _  _ * * X*   X      
   X # # #   X # # # " " X" ' ' ' ' 'r    r\   c                  ~    e Zd ZdZdZ ededd                   Z edd          Z[d	 Z	d
 Z
ddZddZd ZdS )	CT_StyleszK``<w:styles>`` element, the root element of a styles part, i.e. styles.xml.)zw:docDefaultsw:latentStylesw:styler      Nr$   r   r#   c                    |                                  }||_        |rdnd|_        t          |          |_        ||_        |S )zReturn a newly added `w:style` element having `name` and `style_type`.

        `w:style/@customStyle` is set based on the value of `builtin`.
        NT)	add_stylerk   r   r   rl   r   )r*   r   
style_typebuiltinstyles        r   add_style_of_typezCT_Styles.add_style_of_type  sF    
   
$+5DD)$//r    c                \    fd|                                  D             }|sdS |d         S )zEReturn `w:style[@w:type="*{style_type}*][-1]` or |None| if not found.c                8    g | ]}|j         k    |j        |S r#   )rk   r   ).0sr   s     r   
<listcomp>z)CT_Styles.default_for.<locals>.<listcomp>&  s3     #
 #
 #
af
.B.Bqy.BA.B.B.Br    N)_iter_styles)r*   r   default_styles_for_types    ` r   default_forzCT_Styles.default_for$  sR    #
 #
 #
 #
((**#
 #
 #
 ' 	4&r**r    rl   strreturnCT_Style | Nonec                n    d| d}t          t          |                     |                    d          S )zR`w:style` child where @styleId = `styleId`.

        |None| if not found.
        zw:style[@w:styleId="z"]Nr   iterr0   )r*   rl   r0   s      r   rw   zCT_Styles.get_by_id.  s8    
 3w222DE**++T222r    r   c                l    d|z  }t          t          |                     |                    d          S )zd`w:style` child with `w:name` grandchild having value `name`.

        |None| if not found.
        zw:style[w:name/@w:val="%s"]Nr   )r*   r   r0   s      r   r2   zCT_Styles.get_by_name6  s2    
 .4DE**++T222r    c                @    d |                      d          D             S )z@Generate each of the `w:style` child elements in document order.c              3     K   | ]}|V  d S rr   r#   )r   r   s     r   	<genexpr>z)CT_Styles._iter_styles.<locals>.<genexpr>@  s"      99%999999r    r   r/   rO   s    r   r   zCT_Styles._iter_styles>  s"    994::i#8#89999r    )rl   r   r   r   )r   r   r   r   )r8   r9   r:   r;   r   r   latentStylesr   r   r   r   rw   r2   r   r#   r    r   r   r     s        UU=H9-(122,GGGLJyR000E
 
 
+ + +3 3 3 33 3 3 3: : : : :r    r   N)r;   
__future__r   docx.enum.styler   docx.oxml.simpletypesr   r   r   docx.oxml.xmlchemyr   r	   r
   r   r   r   r"   rD   r\   r   r#   r    r   <module>r      s^   8 8 " " " " " " ) ) ) ) ) ) G G G G G G G G G G             ' ' '". . . . .o . . .D( ( ( ( (o ( ( (2q' q' q' q' q' q' q' q'h0: 0: 0: 0: 0: 0: 0: 0: 0: 0:r    