a
    ¥Q•h“C  ã                   @   sL   d Z ddlmZmZ ddlmZ ddlmZmZ dd„ Z	dd	„ Z
d
d„ ZdS )zLayout for columns.é    )ÚfloorÚinfé   )Úabsolute_layout)Ú
percentageÚresolve_percentagesc	           ?      C   sR	  ddl m}	m}
m}m}m} |j}|d }|d }|d }|}d| _|d dkrTg }| |j	¡}| j
||ƒ|j 7  _
|d	kr¼|jd
kr¼|jdks˜J ‚d}| j| ¡  |j }t||ƒ}nd}|||ƒ |d dkrà|d }nt|d |jƒ}|d	k�r"|d	k�r"td|j|d |  ƒ| }nx|d	k�rf|d	k�rftdt|j| ||  ƒƒ}|j| | | }n4tdt|t|j| ||  ƒƒƒ}|j| | | }g }g }|�r°| ¡ nd\}t|j	|d… |d�D ]^\}}|jd dk�r|�r | |t|ƒ |f¡ | || ¡ f¡ g }�qÌ| | ¡ ¡ �qÌ|�rL| |d t|ƒ |f¡ |�r^d|| i}|j	�stdddœ}d}g }| ¡ }g }d}d}d} | jjd	k�r¢dn| j ¡ g}!d}"|D �]\}#}$t|$tƒ�sp|$}%t|%|ƒ |  ¡ |%_!||%_
|
| |%|||||||ƒ	\}&}'}}}(}(d}|&du �r*d}d}  �qÔ| |&¡ |& "¡ |& #¡  }| |&j$¡ |'�rhd}d} |'} �qÔd}�q¶|$}|||ƒ7 }g }t%|||||ƒ})| j| |  }}*|}t&}+| j'dd… },|}-d } }.}/t| j'ƒt|,ƒk�rî| j' (¡  �qÌ|}g }0g }1t)|ƒD �]H}|	| |)| j| | |||�p(|/ g g g ddd�\}2}'}}(}(}(|2du �r\ddi} �qN|1 |2¡ |'}dd„ |2j	D ƒ}3|3�r|3d  ¡ |3d j
 | }4||4 }|�r|	| |)t&||dg g g ddd�d }5|5j	D ]}| *¡ �rÐ| ¡ }6 �qð�qÐ|| |5gg g ƒ nd}6nd }4 }}6|0 |4¡ |6| dk�r:t|+|6| ƒ}+|'du �r �qN�q| jjd	k�r`dn| j ¡ }"|| |1g g ƒ |�r‚�q†|/�rÈ|du �r–�q†|+t&k�r¤dn|+}7||77 }||*k�r‚|*}d}.�q†nº|"|!v�rð||"|!d  8 }|! |"¡ �qÌ| �ot|0ƒ|*k}8|8�rJ|*|"8 }*|d dk�s2|#|d d k �r†d}/t+|0ƒ| }n�q†n8||!d 7 }t|!ƒdk�rrt|"|!d ƒ}"||"8 }d}.�q†�qÌt|| j| | ƒ}d}d}9g }:t%|||||ƒ})|d d k�rê|) j!|j|d |  ||  7  _!n|) j!|||  7  _!|	| |)||||-||dddd�\}&}};}(}(}(|&du �r@g }:d} �q’|;}|}|: |&¡ t|9|& ¡ ƒ}9|du �rr|}�q’|d7 }||k�r¦|�s¦�q’�q¦|t|*|9ƒ7 }|:D ]}<|9|<_| |<¡ �q¤d}d}|.�r¶ �qÔ�q¶t,| |"ƒ |j	�r|�sd| _dd!dddœg dfS ||_	|||ƒ7 }|| ¡  }|jd	k�r<||_d}=n
|j| }=|j-d	k�rx|j-|jk�rx|=|j-|j 7 }=|j-|_|ddd… D ]$}|j.�r¢| j|=7  _n �q¬�q†|d dk�rÚ|D ]}>t/| |>|||dd"� �q¾|�rü| ¡ \}|#| || i}n| �	r
|#di}| jjd	k�	r>|  j|!d 7  _|  j| j ¡ 8  _d| _|||g dfS )#zLay out a multi-column ``box``.r   )Úblock_box_layoutÚblock_level_layoutÚblock_level_widthÚcollapse_marginÚremove_placeholdersÚcolumn_widthÚcolumn_countÚheightTÚpositionÚrelativeÚautoú%ÚpxFÚ
column_gapÚnormalÚ	font_sizer   )r   N)ÚstartÚcolumn_spanÚallÚany)ÚbreakÚpage)ÚdiscardÚ	max_linesc                 S   s   g | ]}|  ¡ r|‘qS © )Úis_in_normal_flow)Ú.0Úchildr    r    úQ/var/www/sistema_ama/venv/lib/python3.9/site-packages/weasyprint/layout/column.pyÚ
<listcomp>¸   s   ÿz"columns_layout.<locals>.<listcomp>éÿÿÿÿÚcolumn_fillÚbalanceé   Ú	directionÚrtl)r   N)Ú
skip_stack)0Úblockr   r	   r
   r   r   ÚstyleÚ	in_columnÚcopy_with_childrenÚchildrenÚ
position_yÚ
margin_topÚunitÚpage_bottomÚcontent_box_yÚvalueÚmaxr   Úwidthr   ÚminÚkeysÚ	enumerateÚappendÚlenÚcopyÚcurrent_footnote_arear   Úmargin_heightÚ
isinstanceÚlistr   Úcontent_box_xÚ
position_xÚborder_heightÚborder_box_yÚmargin_bottomÚ_create_column_boxr   Úexcluded_shapesÚpopÚranger!   ÚsumÚ_report_footnotesÚ
min_heightÚ	is_columnr   )?ÚcontextÚboxÚbottom_spacer,   Úcontaining_blockÚpage_is_emptyÚabsolute_boxesÚfixed_boxesÚadjoining_marginsr   r	   r
   r   r   r.   r9   Úcountr   Zoriginal_bottom_spaceZheight_definedZempty_spaceÚgapZcolumns_and_blocksZcolumn_childrenÚskipÚir#   Ú	next_pageZcurrent_position_yÚnew_childrenZcolumn_skip_stackZ	last_loopZ
break_pageZfootnote_area_heightsZlast_footnotes_heightÚindexZcolumn_children_or_blockr-   Ú	new_childÚ	resume_atÚ_Ú
column_boxÚ
max_heightZ
lost_spaceZoriginal_excluded_shapesÚoriginal_page_is_emptyZstop_renderingZ	balancingZconsumed_heightsZ	new_boxesÚnew_boxZin_flow_childrenZconsumed_heightZnext_boxZnext_box_heightZ
add_heightZeverything_fitsZmax_column_heightÚcolumnsZcolumn_next_pageÚcolumnZheight_differenceÚabsolute_boxr    r    r$   Úcolumns_layout	   s   

"ÿÿ
þ

ýÿ

ÿ
ÿÿû

ÿ
ÿÿÿ
ýý





þ




þÿÿÿþ&ýÿ

ÿ





þ

rj   c                 C   sh   | j s
dS d}| j ¡ |kr6|  | j d ¡ |d7 }q|dkrd| jd| d d… }|| j| d…< dS )z4Report footnotes above the defined footnotes height.Nr   r&   r   r)   )Úcurrent_page_footnotesr@   rA   Úreport_footnoteÚreported_footnotes)rQ   Zfootnotes_heightrm   Úextrar    r    r$   rN   †  s    
rN   c                 C   s8   | j | |d�}t||ƒ d|_||_|  ¡ |_||_|S )z-Create a column box including given children.)r1   T)Úanonymous_fromr   rP   r9   rD   rE   r2   )rR   rT   r1   r9   r2   rc   r    r    r$   rI   ˜  s    

rI   N)Ú__doc__Úmathr   r   Úabsoluter   Úpercentr   r   rj   rN   rI   r    r    r    r$   Ú<module>   s       