
    ,g                     b    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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      k/home/viktor/gitlab-persoonlijk/factuur-applicatie/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           
         ddl m} ddlm}m} ddlm} |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+        t-        |            nd }}|d   }|j                  D cg c],  }|||||fD cg c]  }|r|j/                  d      nd c}|f. }}}| j1                  |j                  d      |      }| j1                  |j                  d      |      }d}|ru|j                  rit3        |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| j4                  d   }|r|d   n| j4                  d   }|r|d   nd}|r|d   nd}||z   ||z   f| _        y| j6                  j9                          | j6                  j;                          g }"t=        |      D ]  \  }\  \  }}}}}#}$|rd| j>                  d<   |rd| j>                  d<   | j>                  dxx   |xs dz  cc<   | j>                  dxx   |xs dz  cc<    ||$|| j                  t        d      \  }	}
}
}}}
|| j4                  d   n|}|| j4                  d   n|}||z  }|r||z  }||z   |f| _        || j>                  d   z   }%|| j>                  d   z   |z   }&|#|n|#}'|%|&f|%|z   |&|z
  ff}(tA        |jB                  |(      |_!        |	jE                  |       | jG                  ||d,-       tI        |d|%|&.      })|'r(tK        |'      tM        |'      }+}*tI        |*|+ |+|*      |)z  }) || j6                  tO        |	|      d/d/|)      },|"jQ                  ||||,f        | j6                  jS                          | j6                  jU                          |"D ]  \  }}}}, || j6                  ||||,        yc c}w # t        $ r	 d|d<   Y hw 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)centralr5   )ztext-before-edgebefore_edger6   hangingztext-top)ztext-after-edge
after_edger7   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heightr+   r-   r.   r/   r0   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matrixr<   cemojiss-                                                r   r   r      s   /82 !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JJK +44E*F !6&&Q2r1v'(C!!!$'(C!!!$a BG!+ a BG!+ )9E3;;Q*0&1eVQ&'iC"Q&'iC"QA%il..q11
..q11G;
)$%f!457 "5""F", 	% id3'R:Du:s5zqAAr1a(61F JJ.HIq!V45C!6F JJJJ#. 9	1aCJJ	1a89W:  	'#&E- 	'FFHHP 
FsN   \2\ \/&\4\90\>]
]]4]\,+\,]N)r   mathr   r   r   r   r|   r   bounding_boxr
   utilsr   r   r   r   r   r   r   <module>r      s'     ' '  - "& &T9r   