
    ,h)                        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y)z2Custom element classes related to the styles part.    )annotations)WD_STYLE_TYPE)ST_DecimalNumberST_OnOff	ST_String)BaseOxmlElementOptionalAttributeRequiredAttribute
ZeroOrMore	ZeroOrOnec                \    ddddddddd	d
d
j                  | | j                  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    R/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/docx/oxml/styles.pystyleId_from_namer      sE      
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y)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        | |      }|y|S )z`Return the boolean value of the attribute having `attr_name`, or |False| if
        not present.Fgetattrself	attr_namevalues      r   	bool_propzCT_LatentStyles.bool_prop/   s     i(=r    c                :    | j                  d|z        }|sy|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Qxr    c                0    t        | |t        |             y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"   !   st     .2>Li)9:E&'98DN">8<J%&7BM%&79IJM)*?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y)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                B    | j                         j                  |        y)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        | ||       y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   sb     z84FXy1DX6G">8<J">3CDJ&'98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j6                  d"        Zed#        Zd$ Zed%        Zej6                  d&        Zed'        Zej6                  d(        Zed)        Z ed*        Z!e!j6                  d+        Z!ed,        Z"e"j6                  d-        Z"ed.        Z#e#j6                  d/        Z#ed0        Z$e$j6                  d1        Z$y)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                8    | j                   }|y|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     ,,?{{r    c                T    || j                          y || j                         _        y N)_remove_basedOnget_or_add_basedOnro   r*   r,   s     r   rp   zCT_Style.basedOn_val   s$    =  ",1D##%)r    c                    | j                   }|y| j                         }|j                  |j                        }|y|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   sD     ,,?!%%gkk2
r    c                B    | j                         j                  |        y)zARemove this `w:style` element from its parent `w:styles` element.NrL   rO   s    r   rP   zCT_Style.delete   rQ   r    c                8    | j                   }|y|j                  S )z5Value of `w:locked/@w:val` or |False| if not present.F)rV   ro   )r*   rV   s     r   
locked_valzCT_Style.locked_val   s     >zzr    c                n    | j                          t        |      du r| j                         }||_        y y NT)_remove_lockedr6   _add_lockedro   )r*   r,   rV   s      r   r|   zCT_Style.locked_val   s4    ;$%%'FFJ r    c                8    | j                   }|y|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     yy<xxr    c                X    | j                          || j                         }||_        y y rr   )_remove_name	_add_namero   )r*   r,   r   s      r   r   zCT_Style.name_val   s,    >>#DDH r    c                v    | j                   }|y| j                         }|j                  |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   s6     yy<!))r    c                8    | j                   }|y|j                  S )z6Value of `w:qFormat/@w:val` or |False| if not present.F)rW   ro   )r*   rW   s     r   qFormat_valzCT_Style.qFormat_val   s     ,,?{{r    c                \    | j                          t        |      r| j                          y y rr   )_remove_qFormatr6   _add_qFormatru   s     r   r   zCT_Style.qFormat_val   s&    ; r    c                8    | j                   }|y|j                  S )z<Value of ``<w:semiHidden>`` child or |False| if not present.F)rX   ro   )r*   rX   s     r   semiHidden_valzCT_Style.semiHidden_val   s      __
~~r    c                n    | j                          t        |      du r| j                         }||_        y y r~   )_remove_semiHiddenr6   _add_semiHiddenro   )r*   r,   rX   s      r   r   zCT_Style.semiHidden_val   s4    !;$--/J"JN r    c                8    | j                   }|y|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      __
~~r    c                X    | j                          || j                         }||_        y y rr   )_remove_uiPriority_add_uiPriorityro   )r*   r,   rY   s      r   r   zCT_Style.uiPriority_val   s.    !--/J"JN r    c                8    | j                   }|y|j                  S )z=Value of `w:unhideWhenUsed/@w:val` or |False| if not present.F)rZ   ro   )r*   rZ   s     r   unhideWhenUsed_valzCT_Style.unhideWhenUsed_val   s$     ,,!!!!r    c                n    | j                          t        |      du r| j                         }||_        y y r~   )_remove_unhideWhenUsedr6   _add_unhideWhenUsedro   )r*   r,   rZ   s      r   r   zCT_Style.unhideWhenUsed_val  s5    ##%;$!55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\   \   sz   CH0 X(12,7D=GX(12,7D>hqrlCJ>hqrlCJ1hrsmLN>Gzhrsm<F
G
6C
G
6C!2-"D
  ,YGZ   X6G#OX>K  2 2 
 
&       __  * *      
   # #   # # " " ' 'r    r\   c                  f    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y)	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                x    | j                         }||_        |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  s;    
  
$+D)$/r    c                    | j                         D cg c]!  }|j                  |k(  s|j                  s |# }}|sy|d   S c c}w )zEReturn `w:style[@w:type="*{style_type}*][-1]` or |None| if not found.N)_iter_stylesrk   r   )r*   r   sdefault_styles_for_types       r   default_forzCT_Styles.default_for$  sQ     ((*#
aff
.BqyyA#
 #
 '&r**#
s   AAAc                V    d| d}t        t        | j                  |            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.  s-    
 'wir2DE*+T22r    c                T    d|z  }t        t        | j                  |            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  s)    
 .4DE*+T22r    c                2    d | j                  d      D        S )z@Generate each of the `w:style` child elements in document order.c              3      K   | ]  }|  y wrr   r#   ).0r   s     r   	<genexpr>z)CT_Styles._iter_styles.<locals>.<genexpr>@  s     9%9s   r   r/   rO   s    r   r   zCT_Styles._iter_styles>  s    94::i#899r    )rl   strreturnCT_Style | None)r   r   r   r   )r8   r9   r:   r;   r   r   latentStylesr   r   r   r   rw   r2   r   r#   r    r   r   r     sE    U=H-(12,GLyR0E
+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      sW    8 " ) G G '".o .D(o (2q' q'h0: 0:r    