a
    ¥Q•h_¥  ã                   @   s�   d Z ddlZddlmZmZ ddlmZ ddlmZ ddl	m
Z
 dd	lmZmZ dd
lmZmZmZ ddlmZmZ G dd„ deƒZdd„ ZdS )z*Layout for flex containers and flex-items.é    N)ÚinfÚlog10é   )Ú	Dimension)Úboxesé   )Úpercent)ÚAbsolutePlaceholderÚabsolute_layout)Úmax_content_widthÚmin_content_widthÚmin_max)Úfind_in_flow_baselineÚtable_wrapper_widthc                   @   s   e Zd ZdZdS )ÚFlexLinezFlex container line.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   úO/var/www/sistema_ama/venv/lib/python3.9/site-packages/weasyprint/layout/flex.pyr      s   r   c	           l      C   sD  ddl m}	 |  ¡  d }
|d u }|j| dd� ||jd dkO }|pR|jd dk}|jd	 |jd
  }}|r„||j|j |j 7 }|jd dkr–g }|jd  d¡r°d\}}nd\}}|j	dkrÆdn|j	}|j
dkrÚdn|j
}t||ƒdkrút||ƒ}n6|dk�r,|j| | |j |j |j |j }nt}t||ƒdk�rLt||ƒ}n6|dk�r~|j| | |j |j |j |j }nt}| ¡ }t ||¡ |	 ||¡ t|jdd„ d�}|}|d u�r| ¡ \\}}|jd  d¡�rô|d |d … }n||d … }|}nd\}}|}|dk�r"d}n6|jdk�rR|jdk�r@d}n|jd |j }n|j}|dk�rhd}n6|jdk�r˜|jdk�r†d}n|jd |j }n|j}|dk�r´|| }}n
|| }}|j|j |j }|j	dk�ræ||j	7 }|j|j |j  }|j!dk�r||j!7 }t"|ƒD �]¼\}}|j#�s¶| $¡ �r€||_||_t%|ƒ } }!||!_&|!||< |jd dk�rt| '|!¡ n
| '|!¡ n2| (¡ �r|jd d }"| j)}#| j*|" |#  '|¡ �q|dk�rÌ||jf}$n
|j|f}$t ||$¡ |j+�röt,| ||$ƒ ||_||_|jd dk�rä|j}%| ¡ } |j ¡ | _d| jd< t-ddƒ| jd< t-tdƒ| jd< t.| | dd �}&d }'t/|t0j1ƒ�r®|j2}(|( 3|jd! |jd" ¡\})}*}+|+�r®|*�r®|*|+ }'|%dk�rÆt4|%|&ƒ|_5n|'d u�rÞt4|'|&ƒ|_5n|&|_5|jd# dk�r
|j}%| ¡ } |j ¡ | _| jd dk�r8t6| | ƒ},t-|,dƒ| jd< d| jd$< t-ddƒ| jd#< t-tdƒ| jd%< |	 7| | ||||¡d } | �r†| jnd}&d }'t/|t0j1ƒ�rÔ|j2}(|( 3|jd! |jd" ¡\}-})}+|+�rÔ|-�rÔ|-|+ }'|%dk�rìt4|%|&ƒ|_8n|'d u�rt4|'|&ƒ|_8n|&|_8|jd& d'k�r d'}.n4t 9|jd& |¡}.|.dk�rTt||ƒ }.dk�rTd'}.|.d'k�rþ|.|_:|dk�r¶|j|j |_;|j	dk�r˜| j;|j	7  _;|j
dk�rü| j;|j
7  _;nF|j|j |_;|j!dk�rà| j;|j!7  _;|jdk�rn| j;|j7  _;np|dk�r,t6| |dd �|_:t6| |ƒ|j: |_;nB| ¡ } t| _|	 7| | ||||||¡d } | j|_:|  <¡ | j |_;|dk�rŠ||j:|j; 7 }n||j:|j; 7 }t|d(|› �ƒ}/t|d)|› �ƒ}0t=|/t4|j:|0ƒƒ|_>d }�q|dk�rî|	 ||¡ nv|jdk�rLd|_d*d+„ |D ƒ}1t"|1ƒD ]4\}2}| j|j>|j; 7  _|2�r| j|7  _�qt=|j8t4|j|j?ƒƒ|_g }3g }4d}5t||ƒ}6t"||d,�D ]²\}2}|j#�sš�q†|5|j>|j; 7 }5|2|k�r¼|5|7 }5|jd- d.k�	r(|5|6k�	r(|4�	r|3 't@|4ƒ¡ |2|fg}4|j>|j; }5n$|4 '|2|f¡ |3 't@|4ƒ¡ g }4d}5n|4 '|2|f¡ �q†|4�	rN|3 't@|4ƒ¡ |jd- d/k�	rf|3 A¡  |jd  d¡�	rŒ|3D ]}4|4 A¡  �	q|t||ƒ}|3D �]ì}4tBd0d+„ |4D ƒƒ}7|7|k �	rÂd1}8nd2}8|4D ]n\}}|8d1k�	rö|jd3 |_C|j:|j>k}9n|jd4 |_C|j:|j>k }9|jCdk�
s |9�
r0|j>|_Dd5|_End|_E�	qÊ|}:t"|4ƒD ]F\}2\}}|jE�
rl|:|jD|j; 8 }:n|:|j:|j; 8 }:|2�
rF|:|8 }:�
qFtFd6d+„ |4D ƒƒ�sZd};|}<t"|4ƒD ]P\}2\}}|jE�
rØ|<|jD|j; 8 }<n|<|j:|j; 8 }<|;|jC7 };|2�
r²|<|8 }<�
q²|;dk �r|:|;9 }:|:tk�r&tGjH}:|<tk�r6tGjH}<|:dk�rLtItJ|:ƒƒnt }=|<dk�rhtItJ|<ƒƒnt }>|=|>k �r||:}<|<dk�r¨|4D ]\}}|jE�sŠ|j:|_D�qŠnÒd}?d}@|4D ]<\}}|jE�s´|j:|jd4  |_K|?|jK7 }?|@|jd3 7 }@�q´|4D ]‚\}}|jE�sö|8d1k�r0|jd3 |@ }A|j:|<|A  |_Dn8|8d2k�rh|?dk�rN|j:|_Dn|jK|? }A|j:|<|A  |_DtL||jDƒ|_D�qö|4D ]h\}}d|_M|jE�s~t|d(|› �ƒ}/t|d)|› �ƒ}0t=|/t4|jD|0ƒƒ}/|jD|/k �r~|/|jD |_M|/|_D�q~tBd7d+„ |4D ƒƒ}B|4D ]V\}}|Bdk�rd5|_En:|Bdk�r6|jMdk�r6d5|_En|Bdk �rþ|jMdk �rþd5|_E�qþ�
qŽ|4D ]&\}}|dk�rz|jD|_n|jD|_�q^�	qšg }C|}|3D �]}4t@ƒ }D|4D ]ò\}}|j!dk�rÀd|_!|jdk�rÒd|_| ¡ } |	 N| | t |||||g |d ¡\} })})}E})})tO| ƒ�pd|_P|d$k�r>| j|_| j|	 Q|E¡7  _nF|jdk�r|t.| |dd �}Ft6| |dd �}Gt4t=|F| jƒ|Gƒ|_n| j|_|D '||f¡ d }�q¦|D�r–|C '|D¡ �q–|C}3t||ƒ}HtR|3ƒdk�râ|Hdk�râ|H|3d _S�nZ|3D �]R}4g }Ig }J|4D ]T\}}|jd8 }K|jd  d¡�o4d9|Kv �o4d|j!|jfv}L|L�r@|In|J '|¡ �qød }M}N|ID ].}|jP|j }Ot=|M|Oƒ}Mt=|N| <¡ |O ƒ}N�qZ|M|N }Pd}Q|J�r,t }Q|JD ]„}|d$k�rê| T¡ }R|j!dk�rÒ|R|j!7 }R|jdk�r|R|j7 }Rn4| U¡ }R|j	dk�r|R|j	7 }R|j
dk�r|R|j
7 }Rt=|R|Qƒ}Q�q¦t=|P|Qƒ|4_S�qætR|3ƒdk�r¢|3\}4t|d(|› �ƒ}S|Sdk�rpt }St|d)|› �ƒ}T|Tdk�rŽt}Tt=|St4|4jS|Tƒƒ|4_S|jd: }Ud|Uv �rºd;}Ud<|Uv �rvd }V|d$k�ræ|jdk�ræ|j}Vn0|dk�rt/|t0jVƒ�r|jdk�r|}Vn|j}V|Vd u�rv|V}W|WtBd=d+„ |3D ƒƒ8 }W|WtR|3ƒd | 8 }W|W�rv|3D ]}4|4 jS|WtR|3ƒ 7  _S�qX|jd> }Xd|Xv �rŽd;}X|3D ]ò}4|4D ]æ\}}|jd8 }Kd|Kv �r¼d;}Knd|Kv �rÊ|X}Kd<|Kv �rš|j| dk�rš|d$k�rú|j!|jfn
|j	|j
f}Yd|Yv�rš|4jS}H|d$k�rJ|H|j!|j |j  |j |j |j 8 }Hn(|H|j	|j
 |j |j |j |j 8 }HtW|||Hƒ �qš�q’|dk�r˜| X¡ n| Y¡ }Z|jd? }[d|[v �r¸d@}[|jd  d¡�rdA|[v �rÚdB}[n.dC|[v �rêd@}[ndD|[v �rúdE}[ndF|[v �rd,}[|3D �]j}4|Z}\|dk�rp|j}]|4D ]B\}}|]| U¡ 8 }]|j	dk�rT|]|j	8 }]|j
dk�r*|]|j
8 }]�q*nN|j}]|4D ]B\}}|]| T¡ 8 }]|j!dk�r¤|]|j!8 }]|jdk�rz|]|j8 }]�qz|]tR|4ƒd | 8 }]d}^|4D ]f\}}|dk�r|j	dk�r |^d7 }^|j
dk�r>|^d7 }^n(|j!dk�r*|^d7 }^|jdk�rÚ|^d7 }^�qÚ|^�r¸|]|^ }]|4D ]^\}}|dk�rŒ|j	dk�rx|]|_	|j
dk�r°|]|_
n$|j!dk�rž|]|_!|jdk�rT|]|_�qTd}]|jdG dHk�rÚ|dk�rÚ|]dI9 }]h dJ£tZ|[ƒ@ �rö|\|]7 }\nVdK|[v �r|\|]dL 7 }\n>dM|[v �r.|\|]tR|4ƒ dL 7 }\ndN|[v �rL|\|]tR|4ƒd  7 }\tBdOd+„ |D ƒƒ}_t"|4ƒD �]\}2\}}|2�r‚|\|7 }\|dk�rÀ|\|_d<|[v �rÆ|_�rÆ| j|]|jd3  |_ 7  _n|\|_|dk�rØ| [¡ n| <¡ }`|jdG dHk�r|dk�r|`dI9 }`|\|`7 }\dM|[v �r&|\|]tR|4ƒ 7 }\nLdP|[v �rTtR|4ƒdk�rr|\|]tR|4ƒd  7 }\ndN|[v �rf|\|]tR|4ƒd  7 }\�qf�q|dk�r�|	 ||¡ |d$k�r¢| Y¡ n| X¡ }a|3D �]Ì}4t |4_\|4D ]R\}}|jd8 }Kd|Kv �rà|X}Kd9|Kv �rÀ|dk�rÀ|jP|a |_]t=|4j\|j]ƒ|4_\�qÀ|4j\t k�r<|4�r6|4d d jPnd|4_\|4D �],\}}|d$k�r`|j!|jfn
|j	|j
f}YtBdQdR„ |YD ƒƒ}b|b�r®|4jS}c|d$k�rÎ|c| T¡ 8 }c|j!dk�r¶|c|j!8 }c|jdk�r|c|j8 }cn8|c| U¡ 8 }c|j	dk�rð|c|j	8 }c|j
dk�r|c|j
8 }c|cdk�rn|c|b }c|d$k�rH|j!dk�r4|c|_!|jdk�rl|c|_n$|j	dk�rZ|c|_	|j
dk�rª|c|_
n<|d$k�r’|j!dk�rŠd|_!|c|_n|j	dk�r¤d|_	|c|_
�q@|jd8 }Kd|Kv �rÈd;}Knd|Kv �rÖ|X}K|d$k�rädSndT}dtW||d|aƒ h dU£tZ|Kƒ@ �rF|d$k�r*| j|4jS| <¡  7  _n| j|4jS| [¡  7  _�q@dK|Kv �r–|d$k�rx| j|4jS| <¡  dL 7  _n| j|4jS| [¡  dL 7  _nÖd9|Kv �rÄ|d$k�rl| j|4j\|j] 7  _n n¨d<|Kv �r@|j| dk�r@|d$k�rö|j!|j }^n|j	|j
 }^|jdV dWk�rV|d$k�r:|^|j|j |j  |j 7 }^n|^|j|j |j |j 7 }^t-|4jS|^ dƒ|j|< �q@|a|4jS7 }a�q®t||ƒdk�rÀtBdXd+„ |3D ƒƒ}H|HtR|3ƒd | 7 }HtW|||Hƒ tR|3ƒdk�rzt||ƒ}W|WtBdYd+„ |3D ƒƒ8 }W|WtR|3ƒd | 8 }Wd}e|d$k�rdSndT}ft"|3ƒD �]V\}2}4t^dZd+„ |4D ƒƒ}1|2�rJ|e|7 }e|1D ] }t||fƒ|e }gtW||f|gƒ �qN|Wdk�r~�q |1D ]˜}dCdFhtZ|Uƒ@ �rªtW||f|g|W ƒ nndK|Uv �rÊtW||f|g|WdL  ƒ nNdM|Uv �ròtW||f|g|WtR|3ƒ dL  ƒ n&dN|Uv �r‚tW||f|g|WtR|3ƒd   ƒ �q‚dP|Uv �r<|e|WtR|3ƒd  7 }en:dM|Uv �rX|e|WtR|3ƒ 7 }endN|Uv �r |e|WtR|3ƒd  7 }e�q | _d[dR„ |D ƒ¡}|}|3D ]ä}4|4D ]Ì\}}|j#�rd|	jN| |||||||g |d d\�d dL… \} }h| d u �r|
�rú|
\}i|id8 }ind}i|i| d i}
nLd}|j '| ¡ |hd u�rX|�r4|\}jnd}j|
�rL|
\}i|j|i7 }j|j| |hi}
|
�rd �qld }�qž|
�r– �q|�q–|jd dk�r¬|D ]}kt`| |k|||d d]� �q�t/|t0jaƒ�r|dk�rÜ|3�rÔ|3d j\nd|_]n4|jD ]&}| b¡ �râtO|ƒ�püd|_] �q�qâd|_]|jd|
�o | d� |  c|¡ ||
d^d d_œg dfS )`Nr   )ÚblockF)ÚstartÚendÚcontinueÚdiscardÚbox_decoration_breakÚcloneÚrow_gapÚ
column_gapÚpositionÚrelativeÚflex_directionÚrow)ÚwidthÚheight)r%   r$   Úautor   r$   c                 S   s
   | j d S )NÚorder©Ústyle)Úitemr   r   r   Ú<lambda>X   ó    zflex_layout.<locals>.<lambda>)Úkeyz-reverse)r   NÚnormalú%éd   ÚabsoluteÚ	min_widthÚpxÚ	max_width)ÚouterÚimage_resolutionÚ	font_sizeÚ
min_heightr%   Ú
max_heightÚ
flex_basisÚcontentÚmin_Úmax_c                 s   s   | ]}|j r|V  qd S ©N©Úis_flex_item©Ú.0Úchildr   r   r   Ú	<genexpr>  r,   zflex_layout.<locals>.<genexpr>)r   Ú	flex_wrapÚnowrapzwrap-reversec                 s   s   | ]\}}|j |j V  qd S r>   )Úhypothetical_main_sizeÚmain_outer_extra©rB   ÚindexrC   r   r   r   rD   A  s   ÿÚgrowÚshrinkÚ	flex_growÚflex_shrinkTc                 s   s   | ]\}}|j V  qd S r>   )ÚfrozenrI   r   r   r   rD   b  r,   c                 s   s   | ]\}}|j V  qd S r>   )Ú
adjustmentrI   r   r   r   rD   ±  r,   Ú
align_selfÚbaselineÚalign_content)ÚstretchrT   c                 s   s   | ]}|j V  qd S r>   ©Ú
cross_size©rB   Úliner   r   r   rD   7  r,   Úalign_itemsÚjustify_content)ú
flex-startr[   )úflex-endr\   r   )r   r   Ú	directionÚrtléÿÿÿÿ>   r   Úrightr\   Úcenterr   zspace-aroundzspace-evenlyc                 s   s   | ]}|j d  V  qdS )rM   Nr(   rA   r   r   r   rD   ®  r,   zspace-betweenc                 S   s   g | ]}|d k‘qS )r&   r   )rB   Úmarginr   r   r   Ú
<listcomp>Ü  r,   zflex_layout.<locals>.<listcomp>Ú
position_yÚ
position_x>   r   zself-endr\   Ú
box_sizingzcontent-boxc                 s   s   | ]}|j V  qd S r>   rU   rW   r   r   r   rD   7  r,   c                 s   s   | ]}|j V  qd S r>   rU   rW   r   r   r   rD   >  r,   c                 s   s   | ]\}}|j r|V  qd S r>   r?   )rB   Ú_rC   r   r   r   rD   D  r,   c                 S   s   g | ]}|  ¡ r|‘qS r   )Úis_absolutely_positionedrA   r   r   r   rc   b  r,   )Úadjoining_marginsr   Ú	max_lines)Ú
skip_stackÚany)ÚbreakÚpage)dÚ r   Úcreate_flex_formatting_contextÚremove_decorationr)   Úpadding_bottomÚborder_bottom_widthÚmargin_bottomÚ
startswithÚmargin_leftÚmargin_rightÚgetattrr$   Úpadding_leftÚpadding_rightÚborder_left_widthÚborder_right_widthr   Úcopyr   Úresolve_percentagesÚblock_level_widthÚsortedÚchildrenÚitemsÚendswithÚunitr%   Úvaluere   rd   Úborder_top_widthÚpadding_topÚ
margin_topÚ	enumerater@   rh   r	   rJ   ÚappendÚ
is_runningÚcurrent_pageÚrunning_elementsÚis_table_wrapperr   r   r   Ú
isinstancer   ÚReplacedBoxÚreplacementÚget_intrinsic_sizeÚminr2   r   Úblock_level_layoutr8   Ú
percentageZflex_base_sizerH   Úmargin_heightÚmaxrG   r9   r   ÚreverseÚsumZflex_factorZtarget_main_sizerO   ÚallÚsysÚmaxsizeÚintr   Zscaled_flex_shrink_factorr   rP   Úblock_level_layout_switchr   Z	_baselineÚcollapse_marginÚlenrV   Úborder_heightÚborder_widthÚFlexBoxÚsetattrÚcontent_box_xÚcontent_box_yÚsetÚmargin_widthZlower_baselinerR   ÚtupleÚcopy_with_childrenr
   ÚInlineFlexBoxÚis_in_normal_flowÚfinish_flex_formatting_context)lÚcontextÚboxÚbottom_spacerk   Úcontaining_blockÚpage_is_emptyÚabsolute_boxesÚfixed_boxesr   r   Ú	resume_atÚis_startÚdraw_bottom_decorationr   r   ÚmainÚcrossrv   rw   Zavailable_main_spaceZavailable_cross_spaceÚ
parent_boxr�   Zoriginal_skip_stackÚskipZchild_skip_stackZmain_gapZ	cross_gapre   rd   rJ   rC   Ú	new_childÚplaceholderÚrunning_namern   Zchild_containing_blockZspecified_sizeZcontent_sizeZtransferred_sizeÚimagerg   Úintrinsic_heightÚintrinsic_ratioZnew_child_widthÚintrinsic_widthr:   Zmin_sizeÚmax_sizeZ
flex_itemsÚiZ
flex_linesrX   Ú	line_sizeZ	main_sizerG   Zflex_factor_typeZflex_conditionZinitial_free_spaceZunfrozen_factor_sumZremaining_free_spaceZinitial_magnitudeZremaining_magnitudeZscaled_flex_shrink_factors_sumZflex_grow_factors_sumÚratioZadjustmentsZnew_flex_linesZnew_flex_lineri   r2   r4   rV   Zcollected_itemsZnot_collected_itemsrQ   ÚcollectZcross_start_distanceZcross_end_distancerR   Zcollected_cross_sizeZnon_collected_cross_sizeZchild_cross_sizeZmin_cross_sizeZmax_cross_sizerS   Zdefinite_cross_sizeZextra_cross_sizerY   Zcross_marginsZoriginal_position_mainrZ   Zposition_mainZ
free_spaceÚmarginsZgrowthsZmargin_mainZposition_crossZauto_marginsZextra_crossr    Zcross_translater]   Zcurrent_valueZchild_resume_atÚresume_indexZfirst_level_skipÚabsolute_boxr   r   r   Úflex_layout   sô   

ÿÿþþýýÿ
ÿÿþþýýÿ




ÿ
ÿ





ÿ





þþÿ



ÿ



ÿ
ÿ
ÿ
þþ
ÿ





þ



ÿ
ÿ



ÿÿ

ÿÿ
ÿ


ÿÿÿ





þ



ÿý
ÿ



ÿ











ÿ
ý


ÿÿþýÿ
ÿÿþýÿþ


















ÿ







þ













ÿ






ÿÿÿ
ÿÿÿ



þ
þ


ÿýý



ÿ





rË   )r   r›   Úmathr   r   Zcss.propertiesr   Úformatting_structurer   ro   r   r1   r	   r
   Ú	preferredr   r   r   Útabler   r   Úlistr   rË   r   r   r   r   Ú<module>   s   