o
    ýÞh‚*  ã                   @  s$  d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZmZmZmZ dd	lmZmZmZmZ dd
lmZ erXddlmZmZ ddlmZ G dd„ deƒZG dd„ deƒZ G dd„ deƒZ!G dd„ deƒZ"G dd„ deƒZ#G dd„ deƒZ$G dd„ deƒZ%dS )z8Custom element classes related to run properties (font).é    )Úannotations)ÚTYPE_CHECKINGÚCallable)ÚMSO_THEME_COLOR)ÚWD_COLOR_INDEXÚWD_UNDERLINE)Únsdecls)Ú	parse_xml)ÚST_HexColorÚST_HpsMeasureÚ	ST_StringÚST_VerticalAlignRun)ÚBaseOxmlElementÚOptionalAttributeÚRequiredAttributeÚ	ZeroOrOne)ÚRGBColor)ÚCT_OnOffÚ	CT_String)ÚLengthc                   @  s6   e Zd ZU dZedeƒZded< ede	ƒZ
ded< dS )	ÚCT_ColorzL`w:color` element, specifying the color of a font and perhaps other objects.úw:valzRGBColor | strÚvalzw:themeColorzMSO_THEME_COLOR | NoneÚ
themeColorN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r
   r   Ú__annotations__r   r   r   © r   r   úS/var/www/html/premium_crap/venv/lib/python3.10/site-packages/docx/oxml/text/font.pyr       s   
 r   c                   @  s6   e Zd ZU dZedeƒZded< edeƒZded< dS )ÚCT_FontszW`<w:rFonts>` element.

    Specifies typeface name for the various language types.
    zw:asciiú
str | NoneÚasciizw:hAnsiÚhAnsiN)	r   r   r   r   r   r   r#   r   r$   r   r   r   r    r!   '   s   
 r!   c                   @  ó$   e Zd ZU dZedeƒZded< dS )ÚCT_HighlightzE`w:highlight` element, specifying font highlighting/background color.r   r   r   N)r   r   r   r   r   r   r   r   r   r   r   r    r&   1   ó   
 r&   c                   @  r%   )ÚCT_HpsMeasurezJUsed for `<w:sz>` element and others, specifying font size in half-points.r   r   r   N)r   r   r   r   r   r   r   r   r   r   r   r    r(   7   r'   r(   c                   @  sð  e Zd ZU dZded< ded< ded< ded	< d
ed< ded< ded< ded< ded< ded< ded< ded< ded< ded< dZededd… d�Zded< eded d… d�Zd!ed"< ed#ed$d… d�Z	d%ed&< ed'ed(d… d�Z
ed)ed*d… d�Zed+ed,d… d�Zed-ed.d… d�Zed/ed0d… d�Zed1ed2d… d�Zed3ed4d… d�Zed5ed6d… d�Zed7ed8d… d�Zed9ed:d… d�Zed;ed<d… d�Zed=ed>d… d�Zed?ed@d… d�ZedAedBd… d�ZedCedDd… d�ZedEedFd… d�ZdGedH< edIedJd… d�ZdKedL< edMedNd… d�ZdOedP< edQedRd… d�ZdSedT< edUedVd… d�ZdWedX< edYedZd… d�Zed[ed\d… d�Zed]ed^d… d�Z ed_ed`d… d�Z![dadb„ Z"e#dŠdedf„ƒZ$e$j%d‹didf„ƒZ$e#dŒdkdl„ƒZ&e&j%d�dmdl„ƒZ&e#dŒdndo„ƒZ'e'j%dŽdpdo„ƒZ'e#dŒdqdr„ƒZ(e(j%d�dtdr„ƒZ(e#d�dvdw„ƒZ)e)j%d‘dxdw„ƒZ)e#d�dydz„ƒZ*e*j%d’d{dz„ƒZ*e#d“d}d~„ƒZ+e+j%d”dd~„ƒZ+e#d•d�d‚„ƒZ,e,j%d–dƒd‚„ƒZ,d—d†d‡„Z-d˜dˆd‰„Z.dS )™ÚCT_RPrz7`<w:rPr>` element, containing the properties for a run.zCallable[[], CT_Color]Úget_or_add_colorzCallable[[], CT_Highlight]Úget_or_add_highlightzCallable[[], CT_Fonts]Úget_or_add_rFontszCallable[[], CT_HpsMeasure]Úget_or_add_szz!Callable[[], CT_VerticalAlignRun]Úget_or_add_vertAlignzCallable[..., CT_String]Ú_add_rStylezCallable[[], CT_Underline]Ú_add_uzCallable[[], None]Ú_remove_colorÚ_remove_highlightÚ_remove_rFontsÚ_remove_rStyleÚ
_remove_szÚ	_remove_uÚ_remove_vertAlign)'úw:rStyleúw:rFontsúw:búw:bCsúw:iúw:iCsúw:capsúw:smallCapsúw:strikeú	w:dstrikeú	w:outlineúw:shadowúw:embossú	w:imprintú	w:noProofúw:snapToGridúw:vanishúw:webHiddenúw:colorz	w:spacingzw:wzw:kernz
w:positionúw:szzw:szCsúw:highlightúw:uzw:effectzw:bdrzw:shdz	w:fitTextúw:vertAlignúw:rtlúw:cszw:emzw:langzw:eastAsianLayoutúw:specVanishúw:oMathr8   é   N)Ú
successorszCT_String | NoneÚrStyler9   é   zCT_Fonts | NoneÚrFontsr:   é   zCT_OnOff | NoneÚbr;   é   r<   é   r=   é   r>   é   r?   é   r@   é	   rA   é
   rB   é   rC   é   rD   é   rE   é   rF   é   rG   é   rH   é   rI   é   rJ   é   zCT_Color | NoneÚcolorrK   é   zCT_HpsMeasure | NoneÚszrL   é   zCT_Highlight | NoneÚ	highlightrM   é   zCT_Underline | NoneÚurN   é    zCT_VerticalAlignRun | NoneÚ	vertAlignrO   é!   rP   é"   rQ   é&   rR   é'   c                 C  s   t dtdƒ ƒS )zGOverride metaclass method to set `w:color/@val` to RGB black on create.z<w:color %s w:val="000000"/>Úw)r	   r   )Úselfr   r   r    Ú
_new_color•   s   zCT_RPr._new_colorÚreturnúWD_COLOR_INDEX | Nonec                 C  ó   | j }|du r	dS |jS )z|Value of `./w:highlight/@val`.

        Specifies font's highlight color, or `None` if the text is not highlighted.
        N)rn   r   )rx   rn   r   r   r    Úhighlight_val™   s   zCT_RPr.highlight_valÚvalueÚNonec                 C  ó&   |d u r
|   ¡  d S |  ¡ }||_d S ©N)r2   r+   r   )rx   r~   rn   r   r   r    r}   ¤   ó
   
r"   c                 C  r|   )a  The value of `w:rFonts/@w:ascii` or |None| if not present.

        Represents the assigned typeface name. The rFonts element also specifies other
        special-case typeface names; this method handles the case where just the common
        name is required.
        N)rW   r#   ©rx   rW   r   r   r    ÚrFonts_ascii¬   s   zCT_RPr.rFonts_asciic                 C  r€   r�   )r3   r,   r#   ©rx   r~   rW   r   r   r    r„   ¹   r‚   c                 C  r|   )z:The value of `w:rFonts/@w:hAnsi` or |None| if not present.N)rW   r$   rƒ   r   r   r    ÚrFonts_hAnsiÁ   ó   zCT_RPr.rFonts_hAnsic                 C  s(   |d u r| j d u rd S |  ¡ }||_d S r�   )rW   r,   r$   r…   r   r   r    r†   É   s   
c                 C  r|   )zBString in `./w:rStyle/@val`, or None if `w:rStyle` is not present.N)rU   r   )rx   rU   r   r   r    ÚstyleÐ   r‡   zCT_RPr.stylerˆ   c                 C  s:   |du r
|   ¡  dS | jdu r| j|d� dS || j_dS )z›Set `./w:rStyle/@val` to `style`, adding the `w:rStyle` element if necessary.

        If `style` is |None|, remove `w:rStyle` element if present.
        N)r   )r4   rU   r/   r   )rx   rˆ   r   r   r    rˆ   Ø   s
   
úbool | Nonec                 C  ó   | j }|du r	dS |jtjkS )z¬|True| if `./w:vertAlign/@w:val` is "subscript".

        |False| if `w:vertAlign/@w:val` contains any other value. |None| if
        `w:vertAlign` is not present.
        N)rr   r   r   Ú	SUBSCRIPT©rx   rr   r   r   r    Ú	subscriptå   ó   zCT_RPr.subscriptc                 C  ó\   |d u r
|   ¡  d S t|ƒdu rtj|  ¡ _d S | jd ur*| jjtjkr,|   ¡  d S d S d S ©NT)r7   Úboolr   r‹   r.   r   rr   ©rx   r~   r   r   r    r�   ñ   ó   ÿc                 C  rŠ   )z¬|True| if `w:vertAlign/@w:val` is 'superscript'.

        |False| if `w:vertAlign/@w:val` contains any other value. |None| if
        `w:vertAlign` is not present.
        N)rr   r   r   ÚSUPERSCRIPTrŒ   r   r   r    Úsuperscriptû   rŽ   zCT_RPr.superscriptc                 C  r�   r�   )r7   r‘   r   r”   r.   r   rr   r’   r   r   r    r•     r“   úLength | Nonec                 C  r|   )z4The value of `w:sz/@w:val` or |None| if not present.N)rl   r   )rx   rl   r   r   r    Úsz_val  r‡   zCT_RPr.sz_valc                 C  r€   r�   )r5   r-   r   )rx   r~   rl   r   r   r    r—     r‚   úWD_UNDERLINE | Nonec                 C  r|   )zªValue of `w:u/@val`, or None if not present.

        Values `WD_UNDERLINE.SINGLE` and `WD_UNDERLINE.NONE` are mapped to `True` and
        `False` respectively.
        N)rp   r   )rx   rp   r   r   r    Úu_val!  s   zCT_RPr.u_valc                 C  s"   |   ¡  |d ur||  ¡ _d S d S r�   )r6   r0   r   r’   r   r   r    r™   -  s   ÿÚnameÚstrc                 C  s   t | |ƒ}|du rdS |jS )zIValue of boolean child with `name`, e.g. "w:b", "w:i", and "w:smallCaps".N©Úgetattrr   )rx   rš   Úelementr   r   r    Ú_get_bool_val3  s   
zCT_RPr._get_bool_valc                 C  s6   |d u rt | d| ƒƒ  d S t | d| ƒƒ }||_d S )Nz
_remove_%szget_or_add_%srœ   )rx   rš   r~   rž   r   r   r    Ú_set_bool_val:  s
   
zCT_RPr._set_bool_val)rz   r{   )r~   r{   rz   r   )rz   r"   )r~   r"   rz   r   )r~   r"   )rˆ   r"   rz   r   )rz   r‰   )r~   r‰   rz   r   )r~   r‰   )rz   r–   )r~   r–   )rz   r˜   )r~   r˜   )rš   r›   rz   r‰   )rš   r›   r~   r‰   )/r   r   r   r   r   Ú_tag_seqr   rU   rW   rY   ÚbCsÚiÚiCsÚcapsÚ	smallCapsÚstrikeÚdstrikeÚoutlineÚshadowÚembossÚimprintÚnoProofÚ
snapToGridÚvanishÚ	webHiddenrj   rl   rn   rp   rr   ÚrtlÚcsÚ
specVanishÚoMathry   Úpropertyr}   Úsetterr„   r†   rˆ   r�   r•   r—   r™   rŸ   r    r   r   r   r    r)   =   s    
 )
		
r)   c                   @  r%   )ÚCT_Underlinez<`<w:u>` element, specifying the underlining style for a run.r   r˜   r   N)r   r   r   r   r   r   r   r   r   r   r   r    r·   B  r'   r·   c                   @  r%   )ÚCT_VerticalAlignRunz=`<w:vertAlign>` element, specifying subscript or superscript.r   r›   r   N)r   r   r   r   r   r   r   r   r   r   r   r    r¸   H  r'   r¸   N)&r   Ú
__future__r   Útypingr   r   Údocx.enum.dmlr   Údocx.enum.textr   r   Údocx.oxml.nsr   Údocx.oxml.parserr	   Údocx.oxml.simpletypesr
   r   r   r   Údocx.oxml.xmlchemyr   r   r   r   Údocx.sharedr   Údocx.oxml.sharedr   r   r   r   r!   r&   r(   r)   r·   r¸   r   r   r   r    Ú<module>   s,   
  