
    3vj                     x    d Z ddlmZmZmZmZ ddlmZ ddlm	Z	 ddl
mZmZ  G d d	      Z G d
 de      Zd Zy)z
Draw text.    )cosinfradianssin   )Matrix   )extend_bounding_box)	normalizesizec                   &    e Zd ZdZd Zed        Zy)TextBoxz!Dummy text box used to draw text.c                      || _         || _        y N)pango_layoutstyle)selfr   r   s      F/root/.hermes/venv/lib/python3.12/site-packages/weasyprint/svg/text.py__init__zTextBox.__init__   s    (
    c                 .    | j                   j                  S r   )r   text)r   s    r   r   zTextBox.text   s      %%%r   N)__name__
__module____qualname____doc__r   propertyr    r   r   r   r   
   s    + & &r   r   c                       e Zd ZdZy)StylezDummy class to store dict.N)r   r   r   r   r   r   r   r    r       s    $r   r    c           
         ddl m} ddlm}m} ddlm} t               }|j                  |       | j                  |_	        |j                  dd      j                  d      D cg c]  }|j                  d       c}|d	<   |j                  d
d      |d<   |j                  dd      |d<   ||d<   |d   dk(  rd|d<   n |d   dk(  rd|d<   n	 t        |d         |d<    ||j                  || j                   t"        d      \  }	}
}
}}}
g g g g dgf\  }}}}}d|j$                  v rWt'        |j$                  d         j                         j                  d      D cg c]  }t)        ||| j*                         }}d|j$                  v rWt'        |j$                  d         j                         j                  d      D cg c]  }t)        ||| j,                         }}d|j$                  v rWt'        |j$                  d         j                         j                  d      D cg c]  }t)        ||| j*                         }}d|j$                  v rWt'        |j$                  d         j                         j                  d      D cg c]  }t)        ||| j,                         }}d|j$                  v rXt'        |j$                  d         j                         j                  d      D cg c]  }|rt/        t1        |            nd }}|d   }|j                  D cg c],  }|||||fD cg c]  }|r|j3                  d      nd c}|f. }}}| j5                  |j                  d      |      }| j5                  |j                  d      |      }d}|ru|j                  rit7        |j                        dz
  }t'        |j$                  j                  d            d k(  r|||z  z   }|||z  z  }|||z  z
  }||z  }n
|r||z
  |z  }|}|d!z  |d"z  }}d}|j                  d#      } |j                  d$|j                  d%            }!| d&k(  r| dz  }n-| d'k(  rn'| d(k(  r| }n|!d)v r||z   dz  |z
  }n|!d*v r|}n|!d+v r| }|j                  sN|r|d   n| j8                  d   }|r|d   n| j8                  d   }|r|d   nd}|r|d   nd}||z   ||z   f| _        y| j:                  j=                          | j?                  ||d,-       | j:                  jA                          g }"tC        |      D ]  \  }\  \  }}}}}#}$|rd| jD                  d<   |rd| jD                  d<   | jD                  dxx   |xs dz  cc<   | jD                  dxx   |xs dz  cc<    ||$|| j                   t"        d      \  }	}
}
}}}%|| j8                  d   n|}|| j8                  d   n|}||z  }|r||z  }||z   |f| _        || jD                  d   z   }&|| jD                  d   z   |z   }'|#|n|#}(|&|'|%z
  f|&|z   |'|%z
  |z   ff})tG        |jH                  |)      |_$        |	jK                  |       | jM                  ||d,-       tO        |d|&|'.      }*|(r(tQ        |(      tS        |(      },}+tO        |+|, |,|+      |*z  }* || j:                  tU        |	|      d/d/|*      }-|"jW                  |||-f        | j:                  jY                          | j:                  j[                          |"D ]  \  }}}- || j:                  ||||-        yc c}w # t        $ r	 d|d<   Y w xY wc c}w c c}w c c}w c c}w c c}w c c}w c c}}w )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)centralr7   )ztext-before-edgebefore_edger8   hangingztext-top)ztext-after-edge
after_edger9   ztext-bottomT)r   )adefnone).css.propertiesr"   	draw.textr#   r$   text.line_breakr%   r    updatefont_configgetsplitstripint
ValueErrorr   contextr   attribr   r   inner_widthinner_heightr   floatpoplengthlencursor_positionstream
push_stateset_graphical_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heightr-   r/   r0   r1   r2   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baseline
x_position
y_positionanglepointsmatrixr>   cemojiss.                                                 r   r   r      s   /82 GE	LL E 	-33C8:"

5:E- ((<:E,88M37E-"E+]x'"m	}		'"m	'#&u]';#<E-  &6		5#++sA&/"FAq% r2rA3.Aq"b&
dkkC 01779??DF !Y0 F F
dkkC 01779??DF !Y 0 01 F Ft{{ T!2399;AA#FH 1i1 H Ht{{ T!2399;AA#FH 1i!1!12 H H4;;$T[[%:;AACII#NP ()'%(#a/ P PBZF II 01!RV.D	Er"&&)t
#	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 2vq2v.JJD)$7JJK +44E*F "+&&Q2r1v'(C!!!$'(C!!!$a BG!+ a BG!+ 0@E3;;Q10-1eVX&'iC"Q&'iC"QA%il..q11
..q11G;
)h./%h!6!?@B "5""F", 	% id3'R:Du:s5zqAAr1a(61F JJ.HAq&>*E"+H JJJJ# 51fCJJq!V45[:  	'#&E- 	'FFHHP 
FsN   $]	] ]#](']-]21]7&^4]<^] ] <^N)r   mathr   r   r   r   r   r   bounding_boxr
   utilsr   r   r   dictr    r   r   r   r   <module>r      s3     ' '  - "& &%D %X5r   