a
    ¥Q•hÁ
  ã                   @   sD   d   ¡ ZddlmZ ddlmZmZmZmZ G dd „ d eeeƒZ	dS )ÚMultiColé    )ÚstrTypesé   )ÚFlowableÚ
_ContainerÚ_FindSplitterMixinÚ_listWrapOnc                   @   sH   e Zd Zddd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zddd„Z	dS )r   é$   Nc                 C   sR   t |ƒt |ƒkr*td| t |ƒt |ƒf ƒ‚|| _|| _|| _|| _|| _d | _d S )Nz2%r len(contents)=%d not the same as len(widths)=%d)ÚlenÚ
ValueErrorÚcontentsÚwidthsÚminHeightNeededÚ_spaceBeforeÚ_spaceAfterÚ_naW)Úselfr   r   r   ÚspaceBeforeÚ
spaceAfter© r   úT/var/www/sistema_ama/venv/lib/python3.9/site-packages/reportlab/platypus/multicol.pyÚ__init__   s    zMultiCol.__init__c              	      sú   || j kr| jS g j}| j}d‰ t|ƒD ]¦\}}t|tƒrœ| ¡ }| d¡}|r\|d d… }zt	|ƒ}W n    t
d| || f ƒ‚Y n0 |r¾|d | }n"t|t	tfƒs¾t
d| || f ƒ‚ˆ |7 ‰ ||ƒ q(|| _ |ˆ  ‰ ‡ fdd„|jD ƒ| _| jS )Nç        ú%éÿÿÿÿz %s: nWidths failed with value %rg{®Gáz„?c                    s   g | ]}|ˆ  ‘qS r   r   )Ú.0Úw©Úsr   r   Ú
<listcomp>'   ó    z$MultiCol.nWidths.<locals>.<listcomp>)r   Ú_nWÚappendr   Ú	enumerateÚ
isinstancer   ÚstripÚendswithÚfloatr   ÚintÚ__self__)r   ÚaWZnWr   Úir   Úpcr   r   r   ÚnWidths   s,    


zMultiCol.nWidthsc                 C   sv   |   |¡}d }}| j}d}t|| jƒD ]8\}}|s>|}	d}
nt|||ƒ\}	}
t||
ƒ}||	7 }q(|| _|| _||fS )Nr   r   )r-   ÚcanvÚzipr   r   ÚmaxÚwidthÚheight)r   r*   ÚaHr   r   Úhr.   ÚfaWÚFÚfWZfHr   r   r   Úwrap*   s    


zMultiCol.wrapc                 C   sÖ   || j k rg S |  |¡}g g g}| j}t|| jƒD ]f\}}|sP|}d}	g }
g }n,| j||||dd�\}}	}
}|
|u r|g   S |d  |
¡ |d  |¡ q2t|d | j| j | j	| j
d�t|d | j| j | j	| j
d�gS )Nr   F)ÚcontentÚparaFixr   )r   r   r   )r   r-   r.   r/   r   Ú
_findSplitr"   r   r   r   r   )r   r*   r3   r   ÚSr.   r5   r6   r7   ZfH0ZS0ZS1r   r   r   Úsplit;   s8    

üüúzMultiCol.splitc                 C   s4   | j }|d u r0d}| jD ]}t|t | |¡ƒ}q|S ©Nr   )r   r   r0   r   ÚgetSpaceAfter©r   Úmr6   r   r   r   r?   Z   s    
zMultiCol.getSpaceAfterc                 C   s4   | j }|d u r0d}| jD ]}t|t | |¡ƒ}q|S r>   )r   r   r0   r   ÚgetSpaceBeforer@   r   r   r   rB   b   s    
zMultiCol.getSpaceBeforer   c           	   	   C   sF   | j }d}t|| jƒD ]*\}}tj| ||| |||d� ||7 }qd S )Nr   )r9   r*   )r!   r/   r   r   ÚdrawOn)	r   r.   ÚxÚyÚ_sWr   ZxOffsr5   r6   r   r   r   rC   j   s
    zMultiCol.drawOn)r	   NN)r   )
Ú__name__Ú
__module__Ú__qualname__r   r-   r8   r=   r?   rB   rC   r   r   r   r   r      s   

N)
r=   Ú__all__Úreportlab.lib.utilsr   Ú	flowablesr   r   r   r   r   r   r   r   r   Ú<module>   s   