
    Bh                     b    S r SSKJrJrJrJr  SSKJr  SSKJ	r	  SSK
JrJr   " S S	5      rS
 rg)z
Draw text.    )cosinfradianssin   )Matrix   )extend_bounding_box)	normalizesizec                   .    \ rS rSrSrS r\S 5       rSrg)TextBox
   z!Dummy text box used to draw text.c                     Xl         X l        g Npango_layoutstyle)selfr   r   s      E/var/www/html/env/lib/python3.13/site-packages/weasyprint/svg/text.py__init__TextBox.__init__   s    (
    c                 .    U R                   R                  $ r   )r   text)r   s    r   r   TextBox.text   s      %%%r   r   N)	__name__
__module____qualname____firstlineno____doc__r   propertyr   __static_attributes__ r   r   r   r   
   s    + & &r   r   c           
      v   SSK Jn  SSKJnJn  SSKJn  UR                  5       nUR                  SS5      R                  S5       Vs/ s H  oR                  S5      PM     snUS	'   UR                  S
S5      US'   UR                  SS5      US'   X'S'   US   S:X  a  SUS'   O!US   S:X  a  SUS'   O [        US   5      US'   U" UR                  XpR                  [        S5      u  n	  pp/ / / / S/4u  pnnnSUR                   ;   aY  [#        UR                   S   5      R                  5       R                  S5       Vs/ s H  n[%        UX R&                  5      PM     nnSUR                   ;   aY  [#        UR                   S   5      R                  5       R                  S5       Vs/ s H  n[%        UX R(                  5      PM     nnSUR                   ;   aY  [#        UR                   S   5      R                  5       R                  S5       Vs/ s H  n[%        UX R&                  5      PM     nnSUR                   ;   aY  [#        UR                   S   5      R                  5       R                  S5       Vs/ s H  n[%        UX R(                  5      PM     nnSUR                   ;   a`  [#        UR                   S   5      R                  5       R                  S5       Vs/ s H   nU(       a  [+        [-        U5      5      OSPM"     nnUS   nUR                   VVs/ s H4  nXUUU4 Vs/ s H  nU(       a  UR/                  S5      OSPM     snU4PM6     nnnU R1                  UR                  S5      U5      nU R1                  UR                  S5      U5      nSnU(       a  UR                  (       ao  [3        UR                  5      S-
  n[#        UR                   R                  S5      5      S :X  a  UUU-  -   nUUU-  -  nUUU-  -
  nUU-  nOU(       a  UU-
  U-  nUnUS!-  US"-  nnSnUR                  S#5      n UR                  S$UR                  S%5      5      n!U S&:X  a  U* S-  nO5U S':X  a  O.U S(:X  a  U* nO$U!S);   a  UU-   S-  U-
  nOU!S*;   a  UnO	U!S+;   a  U* nUR                  (       da  U(       a  US   OU R4                  S   nU(       a  US   OU R4                  S   nU(       a  US   OSnU(       a  US   OSnX-   UU-   4U l        gU R6                  R9                  5         U R6                  R;                  5         / n"[=        U5       GH  u  nu  u  pnnn#n$U(       a  SU R>                  S'   U(       a  SU R>                  S'   U R>                  S==   U=(       d    S-  ss'   U R>                  S==   U=(       d    S-  ss'   U" U$XpR                  [        S5      u  n	  ppUc  U R4                  S   OUnUc  U R4                  S   OUnUU-  nU(       a  UU-  nX-   U4U l        XR>                  S   -   n%XR>                  S   -   U-   n&U#c  UOU#n'U%U&4U%U-   U&U-
  44n([A        URB                  U(5      Ul!        U	RE                  U5        U RG                  XS,S-9  [I        USU%U&S.9n)U'(       a(  [K        U'5      [M        U'5      n+n*[I        U*U+* U+U*5      U)-  n)U" U R6                  [O        X5      S/S/U)5      n,U"RQ                  X-UU,45        GM     U R6                  RS                  5         U R6                  RU                  5         U" H  u  p-nn,U" U R6                  X-UU,5        M     gs  snf ! [         a	    SUS'    GNf = fs  snf s  snf s  snf s  snf s  snf s  snf s  snnf )0zDraw text node.r   )INITIAL_VALUES)draw_emojisdraw_first_line)split_first_linezfont-familyz
sans-serif,z"'font_familyz
font-stylenormal
font_stylezfont-weighti  font_weight	font_sizeboldi  r   x ydxdyrotateNzletter-spacing
textLengthr	   lengthAdjustspacingAndGlyphsg?g?zdisplay-anchorzdominant-baselinezalignment-baselinemiddletopbottom)centralr;   )ztext-before-edgebefore_edger<   hangingztext-top)ztext-after-edge
after_edger=   ztext-bottomT)r   )adefnone)+css.propertiesr&   	draw.textr'   r(   text.line_breakr)   copygetsplitstripint
ValueErrorr   contextr   attribr   r   inner_widthinner_heightr   floatpoplengthlencursor_positionstream
push_state
begin_text	enumeratecursor_d_positionr
   text_bounding_box
reactivatefill_stroker   r   r   r   appendend_text	pop_state)-svgnoder/   r&   r'   r(   r)   r   fontlayout_widthheightr1   r3   r4   r5   r6   ilast_rcharplletters_positionsletter_spacingtext_lengthscale_xspaces_countwidth_with_spacingspaceless_text_lengthascentdescenty_aligndisplay_anchoralignment_baselineemoji_linesrletter
x_position
y_positionanglepointsmatrixrB   cemojiss-                                                r   r   r      s   /82 !E 	-33C8:8 #

58:E- ((<:E,88M37E-"+]x'"m	}		'"m	'#&u]';#<E-  &6		5++sA&/"FAq r2rA3.A"b&
dkkC 01779??DFD !Y0D 	
 F
dkkC 01779??DFD !Y 0 01D 	
 Ft{{ T!2399;AA#FHF! 1i1F 	 Ht{{ T!2399;AA#FHF! 1i!1!12F 	 H4;;$T[[%:;AACII#NPNa ()'%(#a/N 	 PBZF IID 01RV.D	E.Dr"&&)t
#.D	EtL   ZZ)9 :IFN**TXXl3Y?KGtyy499~)T[[__^459KK!&)F!Fk,>>>N %0,2O$O!+e3G)E1\AN  "ni"nGF
 GXX./NTXX&:;=!'A+	5	 	8	#'	4	4G#q(72	  M 
M	  F 
F( 99AaD3..q1AaD3..q1RUaRUa vq2v.JJJJK +44E*F&&Q2r1v'(C!!!$'(C!!!$a BG!+ a BG!+ )9E;;Q*0&1V&'iC"Q&'iC"QAil..q11
..q11G;
)$%f!457 "5""F", 	% d3'R:Du:s5zqAAr1a(61F JJ.HI!V45C +GF JJJJ#.	aCJJ	a8 $/W:  	'#&E- 	'FFHHP 
FsN   ]<5^  ^+ ^ ^!= ^&&'^+#^51$^0	^5^^0^5N)r!   mathr   r   r   r   r   r   bounding_boxr
   utilsr   r   r   r   r$   r   r   <module>r      s'     ' '  - "& &T9r   