
    Xwg4                       d dl mZ d dlZd dl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  ej                   e      ZdddZdddZ G d	 d
      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    )annotationsN)
TableStyle)pisaTag)getAligngetBorderStylegetSize	set_value)PmlKeepInFramePmlTablec                Z    | y t        |       } | j                  d      r| S t        |       S N%strendswithr   values    G/var/www/horilla/myenv/lib/python3.12/site-packages/xhtml2pdf/tables.py_widthr      -    }JENN3'5;WU^;    c                Z    | y t        |       } | j                  d      r| S t        |       S r   r   r   s    r   _heightr   #   r   r   c                  6    e Zd ZddZd	dZd Zd Zd Zd
dZy)	TableDatac                    d| _         d| _        g | _        g | _        d| _        d| _        d| _        d| _        g | _        g | _	        g | _
        d| _        y )N r   F)aligncolcolwdatamodepaddingrepeatrowrowhspanstyleswidth)selfs    r   __init__zTableData.__init__+   s]    
			!		  	 #$
r   Nc                    | xj                   dz  c_         | j                  t        | j                        dz
     j                  |       y N   )r   r!   lenappendr*   r!   s     r   add_cellzTableData.add_cell;   s3    A		#dii.1$%,,T2r   c                `    | j                   j                  t        j                  |             y N)r(   r0   copyr1   s     r   	add_stylezTableData.add_style?   s    499T?+r   c                >    | j                   j                  ||f       y r4   )r'   r0   )r*   xys      r   	add_emptyzTableData.add_emptyB   s    		!Q r   c                    | j                   }| j                  D ])  \  }}|t        |      k  s||   j                  |d       + |S )Nr   )r!   r'   r/   insert)r*   r!   r8   r9   s       r   get_datazTableData.get_dataE   sH    yyII 	&DAq 3t9}Qq"%	& r   c                    |j                         | _        |j                  j                  r.|dk7  r)| j	                  d|||j                  j                  f       	 t'        |j                  j                        rs|j                  j                  r]|j                  j                  G| j	                  d||d   |d   f|j                  j                  |j                  j                  df       t'        |j                  j                        rs|j                  j                  r]|j                  j                  G| j	                  d||d   |d   f|j                  j                  |j                  j                  df       t'        |j                  j"                        rs|j                  j                   r]|j                  j$                  G| j	                  d|d   |d   f||j                  j                   |j                  j$                  df       t'        |j                  j                        rs|j                  j                  r]|j                  j                  G| j	                  d	|d   |d   f||j                  j                  |j                  j                  df       | j	                  d
|||j                  j(                  xs | j*                  f       | j	                  d|||j                  j,                  xs | j*                  f       | j	                  d|||j                  j.                  xs | j*                  f       | j	                  d|||j                  j0                  xs | j*                  f       y )Ntr
BACKGROUNDr   	LINEABOVEr.   squared
LINEBEFORE	LINEAFTER	LINEBELOWLEFTPADDINGRIGHTPADDING
TOPPADDINGBOTTOMPADDING)upperr"   frag	backColorr6   logdebugborderTopWidthborderTopStyleborderTopColorborderBottomWidthborderBottomStyleborderBottomColorborderLeftWidthborderLeftStyleborderLeftColorborderRightWidthborderRightStyleborderRightColorr   paddingLeftr#   paddingRight
paddingToppaddingBottom)r*   cbeginendr"   s        r   add_cell_styleszTableData.add_cell_stylesO   s   JJL	66NNL%aff6F6FGH, 166001%%%%1NNVU1X&FF))FF))	 166112&&&&2NN 1Xs1v&FF**FF**	 166223''''3NNVU1X&FF++FF++	 166334((((4NN1Xs1v&FF,,FF,,	 	uc1663E3E3UVWUC)<)<)LM	
 	eS!&&2C2C2St||TUeS!&&*>*>*N$,,O	
r   )returnNoner4   )td)	__name__
__module____qualname__r+   r2   r6   r:   r=   rb    r   r   r   r   *   s!    $ 3,!]
r   r   c                  (    e Zd Zed        Zd Zd Zy)pisaTagTABLEc                z    t        | d|j                         t        | d|j                         t        | dd       y )N)rW   rZ   rQ   rT   rU   rX   rO   rR   )rS   rV   rP   rY   solid)r	   bordercolorborder)rK   attrss     r   set_borderszpisaTagTABLE.set_borders   sO     		
 	 LL		
 	 		
r   c                   |j                          | j                  }t               |j                  c|_        | _        |j                  }|j                  r(|j
                  r| j                  |j                  |       |j                  |_	        |j                  |ddd       |j                  j                         |_        d|_        d|_        g |_        g |_        |j"                  |_        t%        |j&                        |_        y )N)r   r   )rt   tabler   )addParaattrr   	tableDatarp   ro   rr   rK   cellpaddingr#   rb   r   rJ   r   r%   r    r&   r$   r   r)   )r*   r_   rq   tdatas       r   startzpisaTagTABLE.start   s    					&/k1;;#T^<<E--QVVU+))a7;kk'')		

||U[[)r   c                   |j                   }|j                         }	 t        |D cg c]  }t        |       c}xs dg      }t        |      D ]"  \  }}||xx   dg|t        |      z
  z  z  cc<   $ t
        j                  d|j                         |j                  rt        ||j                  |j                  d|j                  |j                  dt        |j                               }t#        |j$                        |_        |j(                  j*                  |_        |j(                  j,                  |_        |j(                  j.                  |_        |j1                  |       n$t
        j                  |j                  d             |j3                          | j                   d c|_         | _         y c c}w # t        $ r+ t
        j                  |j                  d             dg}Y w xY w)	Nr   z$<table> rows seem to be inconsistentr   zCol widths: %rr.   TOP)	colWidths
rowHeights
splitByRow
repeatRowshAlignvAlignstylez<table> is empty)rx   r=   maxr/   
ValueErrorrM   warning	enumeraterN   r    r!   r   r&   r$   r   r   r(   r   r)   
totalWidthrK   spaceBefore
spaceAfterkeepWithNextaddStory	clearFrag)r*   r_   rz   r!   r%   maxcolsits           r   ra   zpisaTagTABLE.end   s   ~~
	t43s84;<G
  o 	3FAsGtwS122G	3 			"EJJ/::** :: <<{{ .A "%++.ALFF..AM66,,AL VV00ANJJqMKK		"456 	
&*nnd#T^I 5 	KK		"HIJcG	s!   	F? F:F? :F? ?0G32G3N)rf   rg   rh   staticmethodrr   r{   ra   ri   r   r   rk   rk      s    
 
B**,;r   rk   c                  "    e Zd Zd Zed        Zy)	pisaTagTRc                   |j                   }|j                  }d|f}d|f}|j                  |||d       | j                  j                  xs |j
                  j                  |j
                  _        |j
                  j                  r)|j                  d|||j
                  j                  f       d|_	        |j                  j                  g        y )Nr   rt   r?   r@   )rx   r%   rb   rw   valignrK   r   rL   r6   r   r!   r0   )r*   r_   rz   r%   r`   ra   s         r   r{   zpisaTagTR.start  s    iiC3iaT2		((9AFFMM66OO\5#qvv7G7GHI	

"r   c                B    | j                   xj                  dz  c_        y r-   )rx   r%   )r_   s    r   ra   zpisaTagTR.end%  s    	1r   N)rf   rg   rh   r{   r   ra   ri   r   r   r   r     s      r   r   c                      e Zd Zd Zd Zy)	pisaTagTDc                f   | j                   j                  .t        | j                   j                        |j                  _        |j                          |j                         | _        | j                   }|j                  }|j                  }|j                  }|j                  }|j                  }	 |j                  D ]+  \  }}	||k(  s|	|k(  s|dz  }|xj                  dz  c_        - 	 ||f}
||f}|r|d   |z   dz
  |d   f}|r|d   |d   |z   dz
  f}|
|k7  rk|j                  d|
|f       t        |
d   |d   dz         D ]?  }t        |
d   |d   dz         D ]%  }	||
d   k7  s	|	|
d   k7  s|j!                  ||	       ' A |j#                  ||
|d       |dz   t%        |j&                        kD  r9|j&                  |dz   t%        |j&                        z
  t)               gz  z   |_        |s|j                  j*                  xs | j                   j*                  }|0t)        |      |j&                  |<   t,        j/                  d||       nt,        j/                  |       t%        | j0                  j2                        dk(  r_|j                  j4                  |j                  j6                  z   }t,        j/                  d||       |rt)        |      |j&                  |<   n	 |dz   t%        |j8                        kD  r9|j8                  |dz   t%        |j8                        z
  t)               gz  z   |_        |sx|j                  j:                  xs | j                   j=                  dd       }|Bt?        |      |j8                  |<   |j                  d|
|df       |j                  d	|
|df       | j                   j@                  xs |j                  jB                  }|#|j                  d
|
||jE                         f       |j                  }tG        |dd       tG        |dd        y )Nr.   r   SPANre   zCol %d has width %sheightFONTSIZEg      ?LEADINGVALIGNrm   )rW   rV   rZ   rY   rQ   rP   rT   rS   )$rw   r   r   rK   	alignmentr   	swapStorystoryrx   colspanrowspanr%   r   r'   r6   ranger:   rb   r/   r    r   r)   rM   rN   node
childNodesr[   r\   r&   r   getr   r   r   rJ   r	   )r*   r_   rq   rz   cspanrspanr%   r   r8   r9   r`   ra   r)   r   r   rK   s                   r   r{   zpisaTagTD.start+  s   99??&'		8AFF	[[]
		iiii

 #18S1HCIINI# c
Cjq6E>A%s1v.Cq63q6E>A-.CC<OOVUC0158SVaZ0 .uQxQ!4 .AE!H}U1X1-.. 	aT2 !Gs5::&a#ejj/(AfhZ'OPEJ FFLL3DIIOOE "(-

3		/e<
 		% tyy++,1FF..1D1DDEII3S%@*0-

3  7S_$a#ejj/(AfhZ'OPEJVV]]CdiimmHd&CF!")&/

3UC =>E3 <= !!2QVV]]OOXuc6<<>BC vv 		
 		 	
r   c                .   |j                   }|j                          |j                  }|j                  j                  s+|j
                  j                  dd      }t        dd||      }|j                  | j                         |j                  |       y )Nz-pdf-keep-in-frame-modeshrinkr   )maxWidth	maxHeightr"   content)
rx   rv   r   rK   insideStaticFramecssAttrr   r
   r   r2   )r*   r_   rz   cellr"   s        r   ra   zpisaTagTD.end  sm    			ww vv''99==!:HED!1dSD	DJJtr   N)rf   rg   rh   r{   ra   ri   r   r   r   r   *  s    l
\r   r   c                      e Zd Zy)	pisaTagTHN)rf   rg   rh   ri   r   r   r   r     s    r   r   r4   )r   str | float | Nonerc   r   )
__future__r   r5   loggingreportlab.platypus.tablesr   xhtml2pdf.tagsr   xhtml2pdf.utilr   r   r   r	   xhtml2pdf.xhtml2pdf_reportlabr
   r   	getLoggerrf   rM   r   r   r   rk   r   r   r   ri   r   r   <module>r      s~    #   0 " G G Bg!<<B
 B
Jd;7 d;N (~ ~B		 	r   