
    Q?hY                     ~   S r SSKJr  SSKJr  SSKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJr  SSK7  SSKJrJr  SSKJrJrJrJrJrJr  SSKJrJ r   SS	KJ!r!  SS
K"J#r#J$r$  SSK%J&r&J'r'  SSK(J)r)J*r*J+r+  \," \)\*\+S9r-SSK.J/r0  SSSSSSSSSS.	SSSSSSSSSS.	S.r1 SSK2J3r3  SSSSSSSSSS.	r5 " S  S!\5      r6 " S" S#5      r7\" S$S%S&S'5      r8 " S( S)\ 5      r9\" \" \95      5      r: " S* S+\65      r; " S, S-\;5      r< " S. S/\<5      r=\" \" \=5      5      r>SS0K?J@r@   " S1 S2\@5      rA " S3 S4\65      rBg! \4 a    Sr3 Nf = f)5z3.3.0    )colors)simpleSplit)isNumberisNumberOrNoneOneOfisColorOrNoneisStringisTextAnchorisBoxAnchor	isBooleanNoneOrisInstanceOfisNoneOrStringisNoneOrCallableisSubclassOf)*)stringWidthgetAscentDescent)DrawingGroupCircleRectStringSTATE_DEFAULTS)Widget
PropHolder)
DirectDraw)XPreformattedFlowable)ParagraphStylePropertySet)TA_LEFTTA_RIGHT	TA_CENTER)startendmiddle   )	text2Pathnneesesswwnw)	r   -   Z            i  i;  xy)DirectDrawFlowableNr%   r&   r'   )	r0   r1   r/   r,   r+   r-   r*   r.   cc                      \ rS rSrSr\" ST0 S\" \SS9_S\" \SS9_S\" \SS9_S	\" \S
S9_S\" \SS9_S\" \SS9_S\" \	SS9_S\" \SS9_S\" \	SS9_S\" \
" SSSS5      SS9_S\" \	SS9_S\" \	SS9_S\" \S S9_S!\" \S"S9_S#\" \S$S9_S%\" \S&S9_S'\" \SS9_S(\" \S)S9_S*\" \S+S9_S,\" \S-S9_S.\" \S/S9_S0\" \S1S9_S2\" \S3S9_S4\" \S5S9_S6\" \S7S9_S8\" \S9S9_S:\" \S;S9_S<\" \S=S>S?9_S@\" \" \" \5      SA5      SBS>S?9_SC\" \" \" \5      SA5      SDS>S?9_SE\" \" \" \5      \" \5      45      SFS>S?9_6rSG rSH rSI rSJ rSK rSL rSM rSN rSO rSP r SQ r!SRr"gS)ULabel!   zA text label to attach to something else, such as a chart axis.

This allows you to specify an offset, angle and many anchor
properties relative to the label's origin.  It allows, for example,
angled multiline axis labels.
r9    descr:   dxzdelta x - offsetdyzdelta y - offsetanglezDangle of label: default (0), 90 is vertical, 180 is upside down, etc	boxAnchorzanchoring point of the labelboxStrokeColorzborder color of the boxboxStrokeWidthzborder widthboxFillColorzthe filling color of the box	boxTargetnormalantilohiz"one of ('normal','anti','lo','hi')	fillColorzlabel text colorstrokeColorzlabel text border colorstrokeWidthzlabel text border widthtextzthe actual text to displayfontNamezthe name of the font usedfontSizezthe size of the fontleadingwidthzthe width of the labelmaxWidthz#maximum width the label can grow toheightzthe height of the text
textAnchorz0the anchoring point of the text inside the labelvisible True if the label is to be drawn
topPaddingzpadding at top of boxleftPaddingzpadding at left of boxrightPaddingzpadding at right of boxbottomPaddingzpadding at bottom of boxuseAscentDescentz^If True then the font's Ascent & Descent will be used to compute default heights and baseline.customDrawChangerzDAn instance of CustomDrawChanger to modify the behavior at draw time   )rB   _advancedUsageddfNoneOrDirectDrawzA DirectDrawFlowable instanceddfKlassz=A Flowable class for direct drawing (default is XPreformattedddfStylez-A style or style class for a ddfKlass or Nonec           
         U R                   " S(0 UD6  U R                   " S(0 SS_SS_SS_SS_SS_S	S_S
S_SS_SS_SS_SS_SS_SS _SS_SS _SS _SS _SS _SS _SS _S[        S   _S[        S   _S[        S   _SS_SS _S!S"_S#S$_S%[        _S&[        U R                  S&S 5      _S'[        U R                  S'S 5      _6  g ))N_textzMulti-Line
StringrF   r<   rE   r   r9   r:   rC   rD   r\   r]   r^   r_   rH         ?rG   rJ   rK   rP   rI   rU   rV   rW   rX   rO   rS   rT   rQ   g?rY   r%   rZ   rb   r`   Frd   rf   rg    )_setKeywordsr   r;   getattr	__class__)selfkws     V/var/www/html/env/lib/python3.13/site-packages/reportlab/graphics/charts/textlabels.py__init__Label.__init__M   sr   B 	,		 	 		
 	 	 	 	  	  !	 !"	 "%	 "&	 %	 #	   $!	" #	$ %	&  '	( )	* +;7+	, **5-	. **5/	0 "1	2 %3	4 5	6 $)7	8 )9	: #4>>*TB;	< #4>>*TB=	    c                     Xl         g)zhSet the text property.  May contain embedded newline characters.
Called by the containing chart or axis.N)ri   )ro   rR   s     rq   setTextLabel.setTextp   s	     
rt   c                     Xl         X l        g)zSet the origin.  This would be the tick mark or bar top relative to
which it is defined.  Called by the containing chart or axis.Nr8   )ro   r9   r:   s      rq   	setOriginLabel.setOriginv   s     rt   c           	      N   [        SS5      nUR                  [        SSS[        R                  S95        [        5       nUR                  SS5        SUl        SUl        SUl	        S	Ul
        [        R                  Ul        UR                  S
5        UR                  U5        U$ )zqThis shows a label positioned with its top right corner
at the top centre of the drawing, and rotated 45 degrees.   d   r3      rO   r+   r2   r   izAnother
Multi-Line
String)r   addr   r   greenr>   ry   rF   rE   rC   rD   rG   rv   )ro   dlabs      rq   demo
Label.demo}   s     C 	
fSQ&,,78gc"	#\\12	c
rt   c                     U R                   nUS;   ak  U R                  n[        US-  S-  5      S-  S-  nUS-  (       d/  X#-
  S-  n[        U5      S:  a  X4S:  =(       a    S=(       d    S-   n[        US	      U   nU$ )
z,hook for allowing special box anchor effects)autoxautoyih  g     F@r2   r3   r~   r   r7   )rF   rE   intabs_A2BA)ro   barE   nadas        rq   _getBoxAnchorLabel._getBoxAnchor   s    ^^##JJEuSy#o&r)3.BGjC'r719!t{1c2Br"vr"B	rt   c                     U R                   (       aY  [        U R                  U R                  5      u  U l        U l        U R                  U R                  U R
                  -
  -  U l        g SU l        g )Ng?)r`   r   rS   rT   _ascent_descent_baselineRatioro   s    rq   _getBaseLineRatioLabel._getBaseLineRatio   sN      *:4==*W'DL$-"&,,T]]0J"KD"'Drt   c                    U R                   =(       d    XR                  -   U R                  -   U l        U R                  U R
                  -
  U R                  -
  U l        U R                  U R                  -
  U R                  -
  U l        U R                  5       nUS;   a  U R                  * U l
        O9US;   a  U R                  U R                  -
  U l
        OSU R                  -  U l
        U R                  U R                  -
  U l        US;   a  U R
                  U R                  -
  U l        O-US;   a  U R
                  U l        OU R                  * S-  U l        U R                  U R                  -   U l        g )N)r*   r+   r1   )r.   r/   r-   rj   )r+   r,   r-   )r1   r0   r/   )rX   r\   r_   _height_widthr]   r^   _ewidth_eheightr   _top_bottom_left_right)ro   objHrF   s      rq   _computeSizeEndLabel._computeSizeEnd   s!   {{Stoo'=@R@R'RD$4$44T5F5FFdoo5d6H6HH&&(	'(DI/)T__4DIDMM)DIyy4==0'))DKK7DJ/)))DJ,,s*DJjj-rt   c                    [        U SS 5      nU(       Gd  / U l        [        U R                  U R                  U R
                  U R                  5      U l        U R                  (       d  U R                  U R                  -   U l        U R                  (       ah  U R                   Vs/ s H#  n[        X R                  U R
                  5      PM%     snU l        U =R                  [        U R                  5      -  sl        OU R                  U l        U R                  5         U R                  (       a  U R                  U l        ODU R"                  (       a  U R$                  U R&                  -
  U l        OU R
                  S-  U l        U R                   [)        U R                  5      -  nGOU R*                  c  [-        S5      e[/        SU R                  U R
                  U R0                  U R2                  S9nU R4                  (       d  [7        S0 UD6nO[9        U R4                  [:        5      (       a  U R4                  R<                  " S0 UD6nOr[9        U R4                  [>        5      (       a2  [A        U R4                  [:        5      (       a  U R4                  " S0 UD6nO![C        S[?        U R4                  5       35      eX@l"        U R                  5         U R"                  (       a&  SUl#        U R$                  U R&                  -
  Ul        O1U R                  (       a  U R                  OU R
                  S-  Ul        UR                  U l        U RI                  5       nU R                  =(       d    SnUS	:w  aO  [J        Ul&        U" U R                  US
9nURO                  US5      u  pU R                  =(       d    URP                  n[R        U   Ul&        U" U R                  US
9=U l*        nURO                  US5      u  pU R                  (       d>  U R                  U R                  -   U l        U =R                  URP                  -  sl        OU R                  U l        U RW                  U5        g s  snf )Nrf   g333333?z[DirectDrawFlowable class is not available you need the rlextra package as well as reportlabzxlabel-generated)namerS   rT   rO   rP   zddfStyle has invalid type Tir%   )stylerk   ),rm   _lineWidthsr   ri   rS   rT   rW   _linesrV   r]   r^   r   r   maxr   rU   _leadingr`   r   r   lenrd   RuntimeErrordictrO   rP   rg   r    
isinstancer!   clonetype
issubclass
ValueError_styleautoLeading_getTextAnchorr"   	alignmentwrap
_width_max_ta2al_ddfObjr   )	ro   rf   liner   stytaaWobj_s	            rq   computeSizeLabel.computeSize   s/   4
40!D%djjt}}T]][DK::"..t/@/@@;;bfbmbm'nbmZ^Dt}}(Ubm'nD$KK3t'7'7#88K"jj""$|| $&& $t}} < $c 1==T[[!11Dxx"  $A  B  B+!]]!]]"nn $ 0 0C ==$+s+DMM+66mm))0C0DMM$//Jt}}[4Y4Ymm*c* #=d4==>Q=R!STTK""$$$"&"llT]]:.2lldllc@QKKDM$$&B,*B7{ 'tzz4((2j1]]4cnn"2JCM!)$**3!??DL3hhr*-GA::"..t/@/@@s~~-"jjT"s (os   &*Q:c                 X    U R                   nUS:X  a  [        U R                  5          nU$ )z/This can be overridden to allow special effectsboxauto)rY   _BA2TAr   )ro   r   s     rq   r   Label._getTextAnchor   s)    __y=vd&8&8&:;"	rt   c                    U R                   nU=(       d    SU l         U R                  5         Xl         [        5       nUR                  U R                  U R
                  -   U R                  U R                  -   5        UR                  U R                  5        [        U SS 5      nU(       a  U R                  nOxU R                  U R                  U R                  -  -
  nU R                  5       nUS:X  a  U R                  nO/US:X  a  U R                  U R                   S-  -   nOU R"                  nU R$                  (       d"  U R&                  (       a  U R(                  (       a~  UR+                  [-        U R                  U R.                  -
  U R0                  U R2                  -
  U R4                  U R6                  U R&                  U R(                  U R$                  S95        U(       ao  [        5       nUR                  X@R                  U R8                  -
  5        UR+                  U R;                  U R<                  5      5        UR+                  U5        U$ U R>                  U R@                  U RB                  pnU RD                  U RF                  U R                  pn[        U S0 5      nU(       aM  U RH                   H;  n[K        XWXW5      nUUl        UUl"        UUl#        UR+                  U5        X]-  nM=     U$ U RH                   H?  n[M        UWXS9nWUl'        U	Ul         U
Ul!        UUl        UR+                  U5        X]-  nMA     U$ )	Nr@   rf   r%   r'   rj   )rP   rQ   rO   	_svgAttrs)r   )(ri   r   r   	translater9   rC   r:   rD   rotaterE   rm   r   r   r   r   r   r   r   rI   rG   rH   r   r   r]   r   r_   r   r   r   rd   r   rO   rS   rT   rP   rQ   r   
_text2Pathr   rY   )ro   ri   grf   r9   r:   rY   g1rO   rS   rT   rP   rQ   rU   svgAttrsr   r.   s                    rq   _rawDrawLabel._rawDraw  s   

[b

G	DFFTWW$dfftww&67	4
40

A		DMM$*=*===A,,.JW$JJx'JJc!11KK !4!49L9LEE$

4#3#33T%7%77$($7$7$($7$7"&"3"35  BLL99T]]23FF488DLL)*EE"I. + -1NNDMM4==I040@0@$BRBRTXTaTagKT+b1H KKD"4Ax:NA"+AK$/AM$/AMEE!HLA ("  !KKDq!T>A#-AL!)AJ!)AJ"+AKEE!HLA ( rt   c                     [        U SS 5      nU(       a#  U" SU 5         U R                  5       U" SU 5        $ U R                  5       $ ! U" SU 5        f = f)Nra   TF)rm   r   )ro   ra   s     rq   draw
Label.drawD  sQ    #D)<TBd4(.}}!%-==?" "%-s   A A)r   r   r   r   r   r   r   r   r   r   r   r   r   r   ri   r   r   r9   r:   Nrk   )#__name__
__module____qualname____firstlineno____doc__AttrMapAttrMapValuer   r   r   r   r	   r   r
   r   r   r   r   r   r   r!   r   _attrMaprr   rv   ry   r   r   r   r   r   r   r   r   __static_attributes__rk   rt   rq   r>   r>   !   s      
r* 
r* 
 ((:; 
 ((:;	 

 X+qr 
 !2PQ 
 &m9RS 
 &hNC 
 $M7UV 
 !xtD!AGkl 
 !4FG 
 #=6OP 
 #81JK 
 H*FG 
  .IJ 
   .DE! 
" ~26# 
$ ^1IJ% 
&  4YZ' 
( n2JK) 
* ",4fg+ 
, y.PQ- 
. "(0GH/ 
0 #81IJ1 
2 $H2KL3 
4 %X3MN5 
6 (	  8X  Y7 
8 ))9  @F  WX  Y9 
: 6,z":;MNTs  EF  G; 
<  |H'=>P Q  XW  hi  j= 
>  [(A,{B['\ ]  dS  de  f? 
HD!F*(.*B#H=~	#rt   r>   c            
       z   \ rS rSr\" S0 S\" \SS9_S\" \SS9_S\" \SS9_S\" \SS9_S\" \SS9_S	\" \SS9_S
\" \SS9_S\" \SS9_S\" \SS9_S\" \SS9_S\" \SS9_S\" \5      _SS_S\" \	SS9_S\" \SS9_S\" \SS9_S\" \SS9_S\" \SS9_S\" \SS9_S\" \
SS9_S\" \SS9_6rS rS rS rSrg) LabelDecoratoriO  r9   r@   rA   r:   rC   rD   rE   rF   rG   rH   rI   rO   rP   rQ   rB   rS   rT   rU   rV   rW   rX   rY   rZ   r[   c                     SU l         SU l        U R                  R                  5        H!  n[	        X5      (       a  M  [        XS 5        M#     g )Nr%   r0   )rY   rF   r   keyshasattrsetattrro   as     rq   rr   LabelDecorator.__init__g  s9    !##%A4??GD4$8 &rt   c                     UR                   u  p4pVpxpppUR                  UR                  R                  U   5        UR	                  U5        g N)_callOutInforv   categoryAxiscategoryNamesr   )ro   lLchartr   rowNocolNor9   r:   rV   rX   x00y00x0y0s                  rq   decorateLabelDecorator.decoratem  s@    =>^^:ASR			%$$2259:	art   c                     [        5       nU R                  R                  5        H   u  p4Uc  [        XS 5      n[	        X#U5        M"     U R                  X5        g r   )r>   __dict__itemsrm   r   r   )ro   r   r   r   vs        rq   __call__LabelDecorator.__call__r  sI    G==&&(CAyga$/!AN ) 	art   )rF   rY   Nrk   )r   r   r   r   r   r   r   r   r   r   r
   r   r   rr   r   r   r   rk   rt   rq   r   r   O  st    
R0
R0
 .b1
 .b1	

 ^4
 !"5
 &m<
 &n"=
 $Mr:
 !B7
 #=b9
 #>2
 9;
  B7
  B7
 ~26
  ^4!
"  B7#
$ n"5%
& ",B7'
( y.PQ)
H.9
rt   r   highlowbaraxisc            
       Z    \ rS rSr\" \" \SS9\" \SS9\" \SS9\" \SS9S9rS r	S	 r
S
rg)LabelOffsetiz  zWhere to base +ve offsetrA   zValue for positive elementszWhere to base -ve offsetzValue for negative elements)posModeposnegModenegc                 <    S=U l         U l        S=U l        U l        g )Nr   r   )r  r  r  r  r   s    rq   rr   LabelOffset.__init__  s    "((T\48rt   c                    UR                   nUR                  nUR                  nUS:  a  U R                  nU R                  nOU R
                  nU R                  nU(       a  UR                  nOUR                  nU(       aN  U(       a  UR                  n	OUR                  n	US:X  a  XR                  -   nX-   $ US:X  a  U	nX-   $ US:X  a  X-   nX-   $ )Nr   r   r   r   )
_flipXYr   joinAxisr  r  r  r  _x_y_length)
ro   r   valflipXYAjAmodedeltar   _vs
             rq   	_getValueLabelOffset._getValue  s    ZZ6<<DHHE<<DHHEAAUUUUV|O
 w	 u w uFwrt   )r  r  r  r  N)r   r   r   r   r   r   isOffsetModer   r   rr   r  r   rk   rt   rq   r  r  z  sB    &|9ST"81NO&|9ST"81NO	H rt   r  c                   2    \ rS rSr\" \S9rS rS rS r	Sr
g)PMVLabeli  BASEc                 @    [         R                  " U 40 UD6  SU l        g Nr   )r>   rr   _pmvro   kwdss     rq   rr   PMVLabel.__init__  s    t$t$	rt   c           
      n    [         R                  U 5      nU R                  S:  a  SSSSSSSS	S
S.	U   nU$ )Nr   r-   r.   r/   r,   r<   r0   r+   r*   r1   )	r1   r*   r+   r0   r<   r,   r/   r.   r-   )r>   r   r  r   s     rq   r   PMVLabel._getBoxAnchor  sB    %99Q;$3DSSSVZ_bhlmnoprt   c                 b    [         R                  U 5      nU R                  S:  a	  SSSS.U   nU$ )Nr   r&   r'   r%   )r%   r'   r&   )r>   r   r  r   s     rq   r   PMVLabel._getTextAnchor  s2      &99Q;UXWMaPrt   )r  N)r   r   r   r   r   r>   r   rr   r   r   r   rk   rt   rq   r  r    s    
H
rt   r  c                       \ rS rSrSr\" \\" \SS9\" \	SS9\" \
SS9\" \
SS9\" \SS9\" \" S	S
SSS5      SS9S9rS rSrg)BarChartLabeli  >
An extended Label allowing for nudging, lines visibility etc
zNon-zero for a drawn linerA   zColor for a drawn linezNone or fixed draw ends +/-zNone or fixed draw starts +/-zNon-zero sign dependent nudgerK   rL   rM   rN   midz(one of ('normal','anti','lo','hi','mid'))r  lineStrokeWidthlineStrokeColorfixedEnd
fixedStartnudgerJ   c                 x    [         R                  " U 40 UD6  SU l        S U l        S =U l        U l        SU l        g r  )r  rr   r+  r,  r.  r-  r/  r   s     rq   rr   BarChartLabel.__init__  s:    $'$' #*..$-
rt   )r-  r.  r,  r+  r/  N)r   r   r   r   r   r   r  r   r   r   NoneOrInstanceOfLabelOffsetr   r   r   rr   r   rk   rt   rq   r(  r(    sl     &~<WX&};ST ;B_`!"=DcdX,KL xtD!GMwx
Hrt   r(  c                   6    \ rS rSrSr\" \\" \SS9S9r	S r
Srg)	NA_Labeli  r)  zText to be used for N/A valuesrA   )r  rR   c                 <    [         R                  U 5        SU l        g )Nzn/a)r(  rr   rR   r   s    rq   rr   NA_Label.__init__  s    t$	rt   )rR   N)r   r   r   r   r   r   r(  r   r   r   rr   r   rk   rt   rq   r4  r4    s&     N1QR
Hrt   r4  )CustomDrawChangerc                   :    \ rS rSr\R
                  4S jrS rSrg)RedNegativeChangeri  c                 <    [         R                  " U 5        Xl        g r   )r7  rr   rO   )ro   rO   s     rq   rr   RedNegativeChanger.__init__  s    ""4("rt   c                     0 nUR                   R                  S5      (       a   UR                  US'   U R                  Ul        U$ )N-rO   )ri   
startswithrO   )ro   r   Rs      rq   _changerRedNegativeChanger._changer  s9    99$$ ]]AkN NNCMrt   r   N)	r   r   r   r   r   redrr   r@  r   rk   rt   rq   r9  r9    s     &

 #rt   r9  c                   *    \ rS rSrSr\" \S9rS rSrg)XLabeli  z=like label but uses XPreFormatted/Paragraph to draw the _textr  c                     [         R                  " U /UQ70 UD6  UR                  S[        5      U l        UR                  SU R
                  5      U l        g )Nrf   directDrawClass)r>   rr   popr   rf   rd   )ro   argsr!  s      rq   rr   XLabel.__init__  sA    t)T)D)M:88-dhh7rt   )
_ddf_flowableClassr   r   _objr   ri   r   rd   rf   N)r   r   r   r   r   r   r>   r   rr   r   r   r   rk   rt   rq   rD  rD    s    GE H8
 rt   rD  )C__version__reportlab.libr   reportlab.lib.utilsr   reportlab.lib.validatorsr   r   r   r   r	   r
   r   r   r   r   r   r   r   reportlab.lib.attrmapreportlab.pdfbase.pdfmetricsr   r   reportlab.graphics.shapesr   r   r   r   r   r   reportlab.graphics.widgetbaser   r   r   reportlab.platypusr   r   reportlab.lib.stylesr    r!   reportlab.lib.enumsr"   r#   r$   r   r   utilsr)   r   r   rlextra.graphics.canvasadapterr;   ImportErrorr   r>   r   r  r  r2  r  r(  r4  NoneOrInstanceOfNA_Labelreportlab.graphics.charts.utilsr7  r9  rD  rk   rt   rq   <module>r]     sl      +    $ F Z Z < 0 6 < < <	G		: + $CTsQU\`a$CTsQU\`a	

A g%u5V^ckpxyl#F l#\	( (T 6%f-$* $L #<#<= u &H *
} 
  X 67  =	* 	MU MM  s   D1 1D<;D<