a
    7Xh
                     @   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   `/var/www/viveiro_mudafortebrasil/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st
d| || f  |7  || q(|| _ |    fdd|jD | _| jS )N        %z %s: nWidths failed with value %rg{Gz?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   Z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)contentZparaFixr   )r   r   r   )r   r,   r-   r.   r   Z
_findSplitr"   r   r   r   r   )r   r*   r2   r   Sr-   r4   r5   r6   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   r/   r   getSpaceAfterr   mr5   r   r   r   r<   Z   s    
zMultiCol.getSpaceAfterc                 C   s4   | j }|d u r0d}| jD ]}t|t| |}q|S r;   )r   r   r/   r   getSpaceBeforer=   r   r   r   r?   b   s    
zMultiCol.getSpaceBeforer   c           	   	   C   sF   | j }d}t|| jD ]*\}}tj| ||| |||d ||7 }qd S )Nr   )r8   r*   )r!   r.   r   r   drawOn)	r   r-   xyZ_sWr   ZxOffsr4   r5   r   r   r   r@   j   s
    zMultiCol.drawOn)r	   NN)r   )
__name__
__module____qualname__r   r,   r7   r:   r<   r?   r@   r   r   r   r   r      s   

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