
    j-                    n   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 erdd
lmZmZ ddlmZ  G d de          Z G d de          Z G d de          Z  G d de          Z! G d de          Z" G d de          Z# G 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)CT_OnOff	CT_String)Lengthc                  B    e Zd ZdZ ede          Z ede          Z	dS )CT_ColorzL`w:color` element, specifying the color of a font and perhaps other objects.w:valzw:themeColorN)
__name__
__module____qualname____doc__r   r   valr   r   
themeColor     ]/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/docx/oxml/text/font.pyr   r      s8        VV

G[
1
1C"">?CCJJJr    r   c                  X    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%   __annotations__r&   r   r    r!   r#   r#   $   sz          
 *)9 E     *)9 E      r    r#   c                  6    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)   2   sG         OO++ C      r    r)   c                  6    e Zd ZU dZ ede          Zded<   dS )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+   :   sG         TT## C      r    r+   c                  ,   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Z ededd                   Zded<    ededd                   Zded<    ed ed!d                   Z	d"ed#<    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d0ed1d                   Z ed2ed3d                   Z ed4ed5d                   Z ed6ed7d                   Z ed8ed9d                   Z ed:ed;d                   Z ed<ed=d                   Z ed>ed?d                   Z ed@edAd                   Z edBedCd                   Z edDedEd                   ZdFedG<    edHedId                   ZdJedK<    edLedMd                   ZdNedO<    edPedQd                   ZdRedS<    edTedUd                   Z edVedWd                   Z edXedYd                   Z  edZed[d                   Z![d\ Z"e#dzd_            Z$e$j%        d{db            Z$e#d|dd            Z&e&j%        d}de            Z&e#d|df            Z'e'j%        d~dg            Z'e#d|dh            Z(e(j%        ddj            Z(e#ddl            Z)e)j%        ddm            Z)e#ddn            Z*e*j%        ddo            Z*e#ddq            Z+e+j%        ddr            Z+e#ddt            Z,e,j%        ddu            Z,ddxZ-ddyZ.dS )CT_RPrz7`<w:rPr>` element, containing the properties for a run.z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_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:oMathr:      N)
successorszCT_String | NonerStyler;      zCT_Fonts | NonerFontsr<      zCT_OnOff | Nonebr=      r>      r?      r@      rA      rB   	   rC   
   rD      rE      rF      rG      rH      rI      rJ      rK      rL      rM      zCT_HpsMeasure | NoneszrN      zCT_Highlight | None	highlightrO      zCT_Underline | NoneurP       zCT_VerticalAlignRun | None	vertAlignrQ   !   rR   "   rS   &   rT   '   c                @    t          dt          d          z            S )zGOverride metaclass method to set `w:color/@val` to RGB black on create.z<w:color %s w:val="000000"/>w)r
   r	   )selfs    r!   
_new_colorzCT_RPr._new_color   s    7'#,,FGGGr    returnWD_COLOR_INDEX | Nonec                &    | j         }|dS |j        S )z|Value of `./w:highlight/@val`.

        Specifies font's highlight color, or `None` if the text is not highlighted.
        N)ro   r   )rz   ro   s     r!   highlight_valzCT_RPr.highlight_val   s     N	4}r    valueNonec                l    ||                                   d S |                                 }||_        d S N)r4   r.   r   )rz   r   ro   s      r!   r   zCT_RPr.highlight_val   s:    =""$$$F--//		r    r$   c                &    | j         }|dS |j        S )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)rY   r%   rz   rY   s     r!   rFonts_asciizCT_RPr.rFonts_ascii   s     >4|r    c                l    ||                                   d S |                                 }||_        d S r   )r5   r/   r%   rz   r   rY   s      r!   r   zCT_RPr.rFonts_ascii   s:    =!!!F''))r    c                &    | j         }|dS |j        S )z:The value of `w:rFonts/@w:hAnsi` or |None| if not present.N)rY   r&   r   s     r!   rFonts_hAnsizCT_RPr.rFonts_hAnsi   s     >4|r    c                R    |	| j         d S |                                 }||_        d S r   )rY   r/   r&   r   s      r!   r   zCT_RPr.rFonts_hAnsi   s/    =T[0F''))r    c                &    | j         }|dS |j        S )zBString in `./w:rStyle/@val`, or None if `w:rStyle` is not present.N)rW   r   )rz   rW   s     r!   stylezCT_RPr.style   s     >4zr    r   c                    ||                                   dS | j        |                     |           dS || j        _        dS )zSet `./w:rStyle/@val` to `style`, adding the `w:rStyle` element if necessary.

        If `style` is |None|, remove `w:rStyle` element if present.
        N)r   )r6   rW   r2   r   )rz   r   s     r!   r   zCT_RPr.style   sS     =!!!!![ '''''#DKOOOr    bool | Nonec                J    | j         }|dS |j        t          j        k    rdS d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.
        NTF)rs   r   r   	SUBSCRIPTrz   rs   s     r!   	subscriptzCT_RPr.subscript   s1     N	4=/9994ur    c                   ||                                   d S t          |          du r%t          j        |                                 _        d S | j        0| j        j        t          j        k    r|                                   d S d S d S NT)r9   boolr   r   r1   r   rs   rz   r   s     r!   r   zCT_RPr.subscript  s    =""$$$$$%[[D  .A.KD%%''+++ N&"&9&CCC""$$$$$ '&CCr    c                J    | j         }|dS |j        t          j        k    rdS dS )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.
        NTF)rs   r   r   SUPERSCRIPTr   s     r!   superscriptzCT_RPr.superscript  s1     N	4=/;;;4ur    c                   ||                                   d S t          |          du r%t          j        |                                 _        d S | j        0| j        j        t          j        k    r|                                   d S d S d S r   )r9   r   r   r   r1   r   rs   r   s     r!   r   zCT_RPr.superscript#  s    =""$$$$$%[[D  .A.MD%%''+++ N&"&9&EEE""$$$$$ '&EEr    Length | Nonec                &    | j         }|dS |j        S )z4The value of `w:sz/@w:val` or |None| if not present.N)rm   r   )rz   rm   s     r!   sz_valzCT_RPr.sz_val0  s     W:4vr    c                l    ||                                   d S |                                 }||_        d S r   )r7   r0   r   )rz   r   rm   s      r!   r   zCT_RPr.sz_val8  s8    =OOF!!r    WD_UNDERLINE | Nonec                &    | j         }|dS |j        S )zValue 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)rq   r   )rz   rq   s     r!   u_valzCT_RPr.u_val@  s     F94ur    c                h    |                                   |||                                 _        d S d S r   )r8   r3   r   r   s     r!   r   zCT_RPr.u_valL  s6     %DKKMM r    namestrc                8    t          | |          }|dS |j        S )zIValue of boolean child with `name`, e.g. "w:b", "w:i", and "w:smallCaps".Ngetattrr   )rz   r   elements      r!   _get_bool_valzCT_RPr._get_bool_valR  s#    $%%?4{r    c                    | t          | d|z                         d S  t          | d|z                        }||_        d S )Nz
_remove_%szget_or_add_%sr   )rz   r   r   r   s       r!   _set_bool_valzCT_RPr._set_bool_valY  sP    =.GD,-..000F7'$$ 67799r    )r|   r}   )r   r}   r|   r   )r|   r$   )r   r$   r|   r   )r   r$   )r   r$   r|   r   )r|   r   )r   r   r|   r   )r   r   )r|   r   )r   r   )r|   r   )r   r   )r   r   r|   r   )r   r   r   r   )/r   r   r   r   r'   _tag_seqr   rW   rY   r[   bCsiiCscaps	smallCapsstrikedstrikeoutlineshadowembossimprintnoProof
snapToGridvanish	webHiddencolorrm   ro   rq   rs   rtlcs
specVanishoMathr{   propertyr   setterr   r   r   r   r   r   r   r   r   r   r    r!   r-   r-   B   s        AA4444----....;;;;))))&&&&))))&&&&&&&&""""!!!!))))(HR  )yx|     F     (ix|  F     #(122,  A     )G
5
5
5C	%HQRRL111A
)G
5
5
5C9X(122,777D	-HQRRLAAAIYzhqrrl;;;Fi>>>Gi>>>GYzhrssm<<<FYzhrssm<<<Fi>>>Gi>>>G>hrssmDDDJYzhrssm<<<F	-HRSSMBBBIIiHRSSM:::E(y8BCC=     B     		hrssm	
 	
 	
     
 'Y(233-  A     		hrssm	
 	
 	
     
 )G
6
6
6C	6hrssm	4	4	4B>hrssmDDDJIiHRSSM:::EH H H    X     
 
 
 X
        X        X \
$ 
$ 
$ \
$    X 
% 
% 
% 
%    X 
% 
% 
% 
%    X ]   ] 	 	 	 X	 \& & & \&
        r    r-   c                  6    e Zd ZU dZ ede          Zded<   dS )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   a  sL         FF 	\	
 	
       r    r   c                  6    e Zd ZU dZ ede          Zded<   dS )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   k  sH         GG  $ C      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.oxml.sharedr   r   docx.sharedr   r   r#   r)   r+   r-   r   r   r   r    r!   <module>r      sp   > > " " " " " " * * * * * * * * ) ) ) ) ) ) 7 7 7 7 7 7 7 7             & & & & & &                        #44444444""""""D D D D D D D D           ?       O   \ \ \ \ \_ \ \ \~    ?       /     r    