Ë
    ©2Úi%  ã                   óŒ   — d 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 dd	lmZ dd
lmZ ed„ «       Zd„ Zd„ Zdd„Zdd„Zy)zLayout for floating boxes.é    )Úinfé   )Úboxesé   )Úhandle_min_max_width)Úresolve_percentagesÚresolve_position_percentages)Úshrink_to_fit)Ú inline_replaced_box_width_height)Útable_wrapper_widthc                 ó\   — | j                   dk(  rt        || |j                   «      | _         y y )NÚauto)Úwidthr
   )ÚboxÚcontextÚcontaining_blocks      úN/var/www/html/acx/venv/lib/python3.12/site-packages/weasyprint/layout/float.pyÚfloat_widthr      s,   € ð ‡y�y�FÒÜ! '¨3Ð0@×0FÑ0FÓGˆ�	ð ó    c                 óJ  — ddl m} ddlm} ddlm}	 |j                  |j                  }}
t        ||
|f«       |dk(  r|j                  |j                  «       z
  }t        ||
|f«       |j                  dk(  rd|_        |j                  dk(  rd|_        |j                  dk(  rd|_        |j                  dk(  rd|_        t!        | |«      }|�|xj                  |z  c_	        t#        |t$        j&                  «      rt)        ||«       n|j                  dk(  rt+        || |«       |j,                  rt/        | ||
|f«       t#        |t$        j0                  «      r || |||d||dddd	d¬
«      \  }}}}}}n�t#        |t$        j2                  «      r || ||||d||d	¬«	      \  }}}}}nOt#        |t$        j4                  «      r |	| ||||d||¬«      \  }}}}}nt#        |t$        j&                  «      sJ ‚d}t7        | ||«      }| j8                  j;                  |«       ||fS )z/Set the width and position of floating ``box``.r   )Úblock_container_layout)Úflex_layout)Úgrid_layoutr   r   NTF)
Úbottom_spaceÚ
skip_stackÚpage_is_emptyÚabsolute_boxesÚfixed_boxesÚadjoining_marginsÚfirst_letter_styleÚfirst_line_styleÚdiscardÚ	max_lines)r   r   r   r   r   r   r"   )r   r   r   r   r   r   )Úblockr   Úflexr   Úgridr   r   Úheightr   Ú
position_yÚcontent_box_yr	   Úmargin_leftÚmargin_rightÚ
margin_topÚmargin_bottomÚget_clearanceÚ
isinstancer   ÚBlockReplacedBoxr   r   Úis_table_wrapperr   ÚBlockContainerBoxÚFlexContainerBoxÚGridContainerBoxÚfind_float_positionÚexcluded_shapesÚappend)r   r   r   r   r   r   r   r   r   r   Úcb_widthÚ	cb_heightÚ	clearanceÚ	resume_atÚ_s                  r   Úfloat_layoutr=      s1  € õ .Ý!Ý!à+×1Ñ1Ð3C×3JÑ3Jˆi€HÜ˜˜h¨	Ð2Ô3ð �FÒà×'Ñ'Ð*:×*HÑ*HÓ*JÑJð 	ô !  x°Ð&;Ô<à
‡�˜&Ò ØˆŒØ
×Ñ˜6Ò!ØˆÔØ
‡~�~˜ÒØˆŒØ
×Ñ˜FÒ"ØˆÔä˜g sÓ+€IØÐØ�Š˜)Ñ#�ä�#”u×-Ñ-Ô.Ü(¨Ð.>Õ?Ø	�‰�fÒ	Ü�C˜Ð"2Ô3à
×ÒÜ˜G S¨8°YÐ*?Ô@ä�#”u×.Ñ.Ô/Ù%;Ø�S |À
Ø¨~È;Ø"°tÈdØ Tô	&+Ñ"ˆˆY˜˜1˜a¡ô
 
�Cœ×/Ñ/Ô	0Ù"-Ø�S |Ø!Ð4DØ¨~Ø#¨Uô	#4ÑˆˆY˜˜1™aô
 
�Cœ×/Ñ/Ô	0Ù"-Ø�S |Ø!Ð4DØ¨~Ø#ô	#%ÑˆˆY˜˜1™aô ˜#œu×5Ñ5Ô6Ð6Ð6Øˆ	ä
˜g sÐ,<Ó
=€Cà×Ñ×"Ñ" 3Ô'Ø�	ˆ>Ðr   c                 óv  — | j                   rG| j                   d   j                  }|j                  |k  r|j                  d||j                  z
  «       t        | ||«      \  }}}|j                  d   dk(  r|||j                  «       z
  z  }|j                  ||j                  z
  ||j                  z
  «       |S )z,Get the right position of the float ``box``.éÿÿÿÿr   ÚfloatÚright)r6   r(   Ú	translateÚavoid_collisionsÚstyleÚmargin_widthÚ
position_x)r   r   r   Ú	highest_yrF   r(   Úavailable_widths          r   r5   r5   X   s±   € ð ×ÒØ×+Ñ+¨BÑ/×:Ñ:ˆ	Ø�>‰>˜IÒ%Ø�M‰M˜!˜Y¨¯©Ñ7Ô8ô /?Ø�Ð&ó/(Ñ+€J�
˜Oð ‡y�y�Ñ˜WÒ$Ø�o¨×(8Ñ(8Ó(:Ñ:Ñ:ˆ
à‡M�M�*˜sŸ~™~Ñ-¨z¸C¿N¹NÑ/JÔKà€Jr   c                 ó–  — | j                   D ];  }|j                  «       sŒ|j                  d   |j                  d   dfv sŒ5t        c S  d}|j                  |z   }| j
                  D ]^  }|j                  d   |j                  d   dfv sŒ$|j                  |j                  «       }}|||z   k  sŒIt        |xs d||z   |z
  «      }Œ` |S )zDReturn None if there is no clearance, otherwise the clearance value.Úclearr@   ÚbothNr   )Úbroken_out_of_flowÚ
is_floatedrD   r   r(   r6   Úmargin_heightÚmax)	r   r   Úcollapsed_marginÚbroken_shaper:   Úhypothetical_positionÚexcluded_shapeÚyÚhs	            r   r.   r.   t   sä   € ð  ×2Ñ2ò ˆØ×"Ñ"Õ$Ø�y‰y˜Ñ! l×&8Ñ&8¸Ñ&AÀ6Ð%JÒJÜ’
ðð
 €IØŸN™NÐ-=Ñ=ÐØ!×1Ñ1ò EˆØ�9‰9�WÑ .×"6Ñ"6°wÑ"?ÀÐ!HÒHØ!×,Ñ,¨n×.JÑ.JÓ.LˆqˆAØ$ q¨1¡uÓ,ÜØ’^ ! a¨!¡eÐ.CÑ&CóE‘	ð	Eð Ðr   c                 óh  — | j                   }|r|j                  n|j                  «       }|r|j                  «       n|j	                  «       }|r|j                  «       n|j                  «       }|j                  «       dk(  r|j                  «       rdd|j                  fS 	 g }|D ]d  }	|	j                  }
|	j                  «       }|
|cxk  r|
|z   k  s'n |
||z   cxk  r|
|z   k  sn |
|k\  sŒH|
|z   ||z   k  sŒT|j                  |	«       Œf |D �	cg c]1  }	|	j                  d   dk(  r|	j                  |	j                  «       z   ‘Œ3 }}	|D �	cg c]   }	|	j                  d   dk(  r|	j                  ‘Œ" }}	|j                  «       }|j                  «       |j                  z   }|s||j                  z  }||j                  z  }|s|rQ|rt        t        |«      |«      }|rt!        t!        |«      |«      }|||z
  kD  rt!        d„ |D «       «      }||kD  r|}�Œu	 |j                  d   dv sRt#        |t$        j&                  «      s8|j(                  s,t#        |t$        j*                  «      s|j-                  «       sJ ‚|}|j                  d   dk(  rr|j                  d   d	k(  r`t#        |t$        j&                  «      r|}nC|j(                  r||z
  }n1t#        |t$        j*                  «      s|j-                  «       sJ ‚||z
  }||z
  }|s||j                  z  }||j.                  z  }|||fS c c}	w c c}	w )
Nr   r@   ÚleftrA   c              3   óV   K  — | ]!  }|j                   |j                  «       z   –— Œ# y ­w)N)r(   rN   )Ú.0Úshapes     r   ú	<genexpr>z#avoid_collisions.<locals>.<genexpr>»   s,   è ø€ ò %3àð ×$Ñ$ u×':Ñ':Ó'<Õ<ñ%3ùs   ‚'))rA   rW   ÚnoneÚ	directionÚrtl)r6   r(   Úborder_box_yrE   Úborder_widthrN   Úborder_heightrM   r   r7   rD   rF   Úcontent_box_xr*   r+   rO   Úminr/   r   ÚLineBoxr1   r0   Úestablishes_formatting_contextr,   )r   r   r   Úouterr6   r(   Ú	box_widthÚ
box_heightÚcolliding_shapesrZ   Úshape_position_yÚshape_margin_heightÚleft_boundsÚright_boundsÚmax_left_boundÚmax_right_boundÚnew_position_yrF   rH   s                      r   rC   rC   ‡   sh  € Ø×-Ñ-€OÙ#(�—’¨c×.>Ñ.>Ó.@€Já&+�× Ñ Ô"°×1AÑ1AÓ1C€IÙ(-�×"Ñ"Ô$°3×3DÑ3DÓ3F€Jà
×ÑÓ˜aÒ C§N¡NÔ$4Ø�!Ð%×+Ñ+Ð+Ð+à
ØÐØ$ò 	/ˆEà$×/Ñ/ÐØ"'×"5Ñ"5Ó"7ÐØ! Jô 8Ø!Ð$7Ñ7ô8à! J°Ñ$;ô 8Ø!Ð$7Ñ7ô8à! ZÓ/Ø!Ð$7Ñ7Ø˜jÑ(ó)à ×'Ñ'¨Õ.ð	/ð *ö/àØ�{‰{˜7Ñ# vÒ-ð ×Ñ˜u×1Ñ1Ó3Ó3ð/ˆð /ð *ö0àØ�{‰{˜7Ñ# wÒ.ð ×Óð0ˆð 0ð *×7Ñ7Ó9ˆà×*Ñ*Ó,Ð/?×/EÑ/EÑEð 	ñ Ø˜cŸo™oÑ-ˆNØ˜s×/Ñ/Ñ/ˆOñ ™,ÙÜ!$¤S¨Ó%5°~Ó!F�ÙÜ"%¤c¨,Ó&7¸Ó"I�ð ˜?¨^Ñ;Ò;ä!$ñ %3à!1ô%3ó "3�ð " JÒ.à!/�JÙàð 
�‰�7Ñ	Ð0Ñ	0Ü�3œŸ™Ô&Ø×ÒÜ�3œ×.Ñ.Ô/Ø×*Ñ*Ô,ð.ð	-ð  €JØ
‡y�y�Ñ˜VÒ#Ø×!Ñ! +Ñ.°%Ò7Ü˜#œuŸ}™}Ô-ð -‘
Ø×%Ò%ð -¨yÑ8‘
ô
 ˜s¤E×$:Ñ$:Ô;Ø×6Ñ6Ô8ð:ð9à,¨yÑ8�
à%¨Ñ6€OáØ�c—o‘oÑ%ˆ
Ø�c—n‘nÑ$ˆ
à�z ?Ð2Ð2ùò]/ùò0s   Ä6L*Å%L/N)r   )T)Ú__doc__Úmathr   Úformatting_structurer   Úmin_maxr   Úpercentr   r	   Ú	preferredr
   Úreplacedr   Útabler   r   r=   r5   r.   rC   © r   r   ú<module>rz      sJ   ðÙ  å å (Ý )ß FÝ $Ý 6Ý &ð ñHó ðHò@òFó8ô&f3r   