
    hi*                    z   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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)RGBColor)CT_OnOff	CT_String)Lengthc                  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_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        k/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/docx/oxml/text/font.pyr   r       sT         VV++G[AACAAAA):):>?)[)[J[[[[[[r"   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'   r    r(   r!   r"   r#   r%   r%   '   sZ          
 *))Y??E????)))Y??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*   1   s6         OO++G^DDCDDDDDDr"   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,   7   s6         TT##G];;C;;;;;;r"   r,   c                  J   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                   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d0d                   Z ed1ed2d                   Z ed3ed4d                   Z ed5ed6d                   Z ed7ed8d                   Z ed9ed:d                   Z ed;ed<d                   Z ed=ed>d                   Z ed?ed@d                   Z edAedBd                   Z edCedDd                   Z edEedFd                   ZdGedH<    edIedJd                   ZdKedL<    edMedNd                   ZdOedP<    edQedRd                   ZdSedT<    edUedVd                   ZdWedX<    edYedZd                   Z ed[ed\d                   Z ed]ed^d                   Z  ed_ed`d                   Z![da Z"e#ddd            Z$e$j%        ddg            Z$e#ddi            Z&e&j%        ddj            Z&e#ddk            Z'e'j%        ddl            Z'e#ddm            Z(e(j%        ddo            Z(e#ddq            Z)e)j%        ddr            Z)e#dds            Z*e*j%        ddt            Z*e#ddv            Z+e+j%        ddw            Z+e#ddy            Z,e,j%        ddz            Z,dd}Z-dd~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:oMathr=      N)
successorszCT_String | NonerStyler>      zCT_Fonts | NonerFontsr?      zCT_OnOff | Nonebr@      rA      rB      rC      rD      rE   	   rF   
   rG      rH      rI      rJ      rK      rL      rM      rN      rO      zCT_Color | NonecolorrP      zCT_HpsMeasure | NoneszrQ      zCT_Highlight | None	highlightrR      zCT_Underline | NoneurS       zCT_VerticalAlignRun | None	vertAlignrT   !   rU   "   rV   &   rW   '   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)rs   r   )r~   rs   s     r#   highlight_valzCT_RPr.highlight_val   s     N	4}r"   valueNonec                l    ||                                   d S |                                 }||_        d S N)r7   r0   r   )r~   r   rs   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)r\   r'   r~   r\   s     r#   rFonts_asciizCT_RPr.rFonts_ascii   s     >4|r"   c                l    ||                                   d S |                                 }||_        d S r   )r8   r1   r'   r~   r   r\   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)r\   r(   r   s     r#   rFonts_hAnsizCT_RPr.rFonts_hAnsi   s     >4|r"   c                R    |	| j         d S |                                 }||_        d S r   )r\   r1   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)rZ   r   )r~   rZ   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   )r9   rZ   r4   r   )r~   r   s     r#   r   zCT_RPr.style   sS     =!!!!![ '''''#DKOOOr"   bool | Nonec                B    | j         }|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)rw   r   r   	SUBSCRIPTr~   rw   s     r#   	subscriptzCT_RPr.subscript   s'     N	4} 3 ===r"   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)r<   boolr   r   r3   r   rw   r~   r   s     r#   r   zCT_RPr.subscript   s    =""$$$$$%[[D  .A.KD%%''+++^'DN,>BUB_,_,_""$$$$$ (',_,_r"   c                B    | j         }|dS |j        t          j        k    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.
        N)rw   r   r   SUPERSCRIPTr   s     r#   superscriptzCT_RPr.superscript   s'     N	4} 3 ???r"   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   )r<   r   r   r   r3   r   rw   r   s     r#   r   zCT_RPr.superscript  s    =""$$$$$%[[D  .A.MD%%''+++^'DN,>BUBa,a,a""$$$$$ (',a,ar"   Length | Nonec                &    | j         }|dS |j        S )z4The value of `w:sz/@w:val` or |None| if not present.N)rq   r   )r~   rq   s     r#   sz_valzCT_RPr.sz_val  s     W:4vr"   c                l    ||                                   d S |                                 }||_        d S r   )r:   r2   r   )r~   r   rq   s      r#   r   zCT_RPr.sz_val  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)ru   r   )r~   ru   s     r#   u_valzCT_RPr.u_val!  s     F94ur"   c                h    |                                   |||                                 _        d S d S r   )r;   r5   r   r   s     r#   r   zCT_RPr.u_val-  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   )r~   r   elements      r#   _get_bool_valzCT_RPr._get_bool_val3  s#    $%%?4{r"   c                    | t          | d|z                         d S  t          | d|z                        }||_        d S )Nz
_remove_%szget_or_add_%sr   )r~   r   r   r   s       r#   _set_bool_valzCT_RPr._set_bool_val:  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   rZ   r\   r^   bCsiiCscaps	smallCapsstrikedstrikeoutlineshadowembossimprintnoProof
snapToGridvanish	webHiddenro   rq   rs   ru   rw   rtlcs
specVanishoMathr   propertyr   setterr   r   r   r   r   r   r   r   r   r!   r"   r#   r.   r.   =   s        AA,,,,4444----....;;;;))))&&&&%%%%))))&&&&&&&&""""!!!!))))(HR  )yMMMFMMMM'i
x|LLLFLLLL"5Xabb\BBBABBBB
)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&YyXbcc]KKKEKKKK(yHRSSMJJJBJJJJ%.Y}RTRURU%W%W%WIWWWW&Yu"##GGGAGGGG,5ImPXY[Y\Y\P],^,^,^I^^^^
)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   B  s6         FF00,GGCGGGGGGr"   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   H  s7         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.sharedr   docx.oxml.sharedr   r   r   r   r%   r*   r,   r.   r   r   r!   r"   r#   <module>r      s   ? > " " " " " " * * * * * * * * ) ) ) ) ) ) 7 7 7 7 7 7 7 7             & & & & & &                       !           #44444444""""""\ \ \ \ \ \ \ \@ @ @ @ @ @ @ @E E E E E? E E E< < < < <O < < <B B B B B_ B B BJH H H H H? H H H? ? ? ? ?/ ? ? ? ? ?r"   