o
    ¬+ ZN  ã                   @   s˜   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	T ddl
T ddlmZ G dd	„ d	eƒZed
krJeƒ  ¡ ZddlZejdge ¡ dd� dS dS )z3.3.0é    )ÚWidget)ÚLabel)Úshapes)Úcolors)Ú*)ÚDrawingc                
   @   sV  e Zd ZdZed8i deedd�“deedd�“deedd�“d	eed
d�“deedd�“deedd�“deedd�“deedd�“deedd�“deedd�“deedd�“deedd�“deddd�“dee	dd�“d ee
d!d�“d"eed#d�“d$eed%d�“d&eed'd(ƒd)d�“d*eed+d,d-d.ƒd)d�“ŽZd9d0d1„Zd2d3„ Zd4d5„ Zd6d7„ ZdS ):ÚTableWidgetz%A two dimensions table of labels
    Úxz x position of left edge of table)ÚdescÚyz"y position of bottom edge of tableÚwidthztable widthÚheightztable heightÚborderStrokeColorztable border colorÚ	fillColorztable fill colorÚborderStrokeWidthzborder line widthÚhorizontalDividerStrokeColorz"table inner horizontal lines colorÚverticalDividerStrokeColorz table inner vertical lines colorÚhorizontalDividerStrokeWidthz"table inner horizontal lines widthÚverticalDividerStrokeWidthz table inner vertical lines widthÚdividerDashArrayzDash array for dividerLines.ÚdataNz6a list of list of strings to be displayed in the cellsÚ	boxAnchorz%location of the table anchoring pointÚfontNameztext font in the tableÚfontSizezfont size of the tableÚ	fontColorz
font colorÚ	alignmentÚleftÚrightzAlignment of text within cellsÚ
textAnchorÚstartÚmiddleÚendÚnumericé
   c                 K   sÊ   || _ || _d| _d| _tj| _d | _d| _tj| _	tj| _
d| _d| _d | _g d¢g d¢g d¢g| _d| _d	| _tj| _d
| _d| _| ¡ D ]\}}|t| jj ¡ ƒv r\t| ||ƒ qGtd| j ƒ‚d S )NéÈ   éd   ç      à?g      Ð?)ÚNorthÚSouthÚEastÚWest)r%   én   éx   é‚   )ÚAÚBÚCÚDÚnwé   r   r   z&invalid argument supplied for class %s)r	   r   r   r   r   Úblackr   r   r   r   r   r   r   r   r   r   r   r   r   r   ÚitemsÚlistÚ	__class__Ú_attrMapÚkeysÚsetattrÚ
ValueError)Úselfr	   r   ÚkwÚkÚv© r@   úR/var/www/html/env/lib/python3.10/site-packages/reportlab/graphics/widgets/table.pyÚ__init__*   s.   üzTableWidget.__init__c                 C   sD   t ddƒ}tƒ }|j|dd� d|j_d|j_d|j_tj|j_	|S )z3 returns a sample of this widget with data
        i�  r$   Útable)Úname)é   é   é   Nr   )
r   r   ÚaddrC   r   r   r   r   Úredr   )r<   ÚdÚtr@   r@   rA   ÚdemoG   s   

zTableWidget.democ                 C   s  t  ¡ }| js
| jr't  | j| j| j| j¡}| j|_| j|_	| j
|_| |¡ |  | j¡}t| jƒ}t| jd ƒ}| jt|ƒ }| jt|ƒ }| jrzt|ƒD ]+}| j}	| j| j }
| j||  }t  |	||
|¡}| j|_| j|_| j|_	| |¡ qN| jr­t|ƒD ]+}| j||  }| j}| j| j }t  ||||¡}| j|_| j|_| j|_	| |¡ q�| j ¡  t| jƒD ]G\}}| j||  d|  d| j  }t|ƒD ].\}}|rý| j||  d|  }t j||t|ƒ| jd�}| j|_| j|_| j |_| |¡ qÏq·|S )z# returns a group of shapes
        r   r&   )r   )!r   ÚGroupr   r   ÚRectr	   r   r   r   ÚstrokeColorr   ÚstrokeWidthrH   ÚpreProcessDatar   ÚlenÚfloatr   ÚrangeÚLiner   ÚstrokeDashArrayr   r   r   ÚreverseÚ	enumerater   ÚStringÚstrr   r   r   )r<   ÚgÚrectr   ÚrowsÚcolsÚrow_stepÚcol_stepÚiÚx1Úx2r   Úliner	   Úy1Úy2ÚjÚrowÚdatumÚsr@   r@   rA   ÚdrawS   s\   


 
€ùzTableWidget.drawc                 C   sX   |sdggS t dd„ |D ƒƒ}t|ƒD ]\}}t|ƒ|k r)| dg|t|ƒ  ¡ q|S )zªpreprocess and return a new array with at least one row
        and column (use a None) if needed, and all rows the same
        length (adding Nones if needed)

        Nc                 S   s   g | ]}t |ƒ‘qS r@   )rR   )Ú.0r	   r@   r@   rA   Ú
<listcomp>—   s    z.TableWidget.preProcessData.<locals>.<listcomp>)ÚmaxrX   rR   Úextend)r<   r   Úmax_rowÚrowNorh   r@   r@   rA   rQ   Ž   s   €zTableWidget.preProcessDatar@   )r#   r#   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚAttrMapÚAttrMapValueÚisNumberÚisColorOrNoneÚisListOfNumbersOrNoneÚisBoxAnchorÚisStringÚOneOfr8   rB   rL   rk   rQ   r@   r@   r@   rA   r      sZ    ÿþýüûúùø	÷
öõôóòñðïîí
;r   Ú__main__NÚpdf)ÚformatsÚoutDirÚfnRoot)Ú__version__Úreportlab.graphics.widgetbaser   Ú$reportlab.graphics.charts.textlabelsr   Úreportlab.graphicsr   Úreportlab.libr   Úreportlab.lib.validatorsÚreportlab.lib.attrmapÚreportlab.graphics.shapesr   r   rr   rL   rJ   ÚosÚsaveÚgetcwdr@   r@   r@   rA   Ú<module>   s    
ý