
    Bh2$                         S r SSKJr  SSKJr  SSKJrJr  SSKJ	r	  SSK
Jr  SSKJr  \S	 5       rS
 rS rSS jrSS jrg)zLayout for floating boxes.   )boxes   )handle_min_max_width)resolve_percentagesresolve_position_percentages)shrink_to_fit) inline_replaced_box_width_height)table_wrapper_widthc                 \    U R                   S:X  a  [        XUR                   5      U l         g g )Nauto)widthr   )boxcontextcontaining_blocks      I/var/www/html/env/lib/python3.13/site-packages/weasyprint/layout/float.pyfloat_widthr      s*     yyF!'0@0F0FG	     c                    SSK Jn  SSKJn  SSKJn	  UR                  UR                  p[        XU45        US:X  a  UR                  UR                  5       -
  n[        XU45        UR                  S:X  a  SUl        UR                  S:X  a  SUl        UR                  S:X  a  SUl        UR                  S:X  a  SUl        [!        X5      nUb  U=R                  U-  sl	        [#        U[$        R&                  5      (       a  [)        X5        OUR                  S:X  a  [+        XU5        UR,                  (       a  [/        XX45        [#        U[$        R0                  5      (       a5  U R3                  5         U" XUUSX4SS	SS
9
u  p      nU R5                  U5        O[#        U[$        R6                  5      (       a  U" XUXbSUUS	S9	u  p    nOS[#        U[$        R8                  5      (       a  U	" XUXbSUUS9u  p    nO#[#        U[$        R&                  5      (       d   eSn[;        XU5      nU R<                  R?                  U5        X4$ )z/Set the width and position of floating ``box``.r   )block_container_layout)flex_layout)grid_layoutr       NTF)bottom_space
skip_stackpage_is_emptyabsolute_boxesfixed_boxesadjoining_margins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create_block_formatting_contextfinish_block_formatting_context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<      s.    .!!+113C3J3Ji	23 F''*:*H*H*JJ 	 !&;<
& 
6!
~~
F"g+I)##u--..(?	f	C"23
G8*?@#u..////1%;|!)"ET	&C"1a
 	//4	C//	0	0"-|!~#U	#41a
 
C//	0	0"-|!~#	#%1a #u556666	
g,<
=C""3'>r   c                 x   U R                   (       aG  U R                   S   R                  nUR                  U:  a  UR                  SX1R                  -
  5        [        XU5      u  pEnUR                  S   S:X  a  XFUR                  5       -
  -  nUR                  XAR                  -
  XQR                  -
  5        U$ )z,Get the right position of the float ``box``.r   floatright)r5   r%   	translateavoid_collisionsstylemargin_width
position_x)r   r   r   	highest_yrE   r%   available_widths          r   r4   r4   X   s     ++B/::	>>I%MM!Y78 /?&/(+JO yyW$(8(8(:::
MM*~~-zNN/JKJr   c                    SnUR                   U-   nU R                   Hf  nUR                  S   UR                  S   S4;   d  M'  UR                   UR                  5       pvXFU-   :  d  ML  [	        U=(       d    SXg-   U-
  5      nMh     U$ )zDReturn None if there is no clearance, otherwise the clearance value.Nclearr?   bothr   )r%   r5   rC   margin_heightmax)r   r   collapsed_marginr9   hypothetical_positionexcluded_shapeyhs           r   r+   r+   t   s    INN-==!1199W."6"6w"?!HH!,,n.J.J.Lq$1u,^!ae.C&CE		 2 r   c                 <   U R                   nU(       a  UR                  OUR                  5       nU(       a  UR                  5       OUR	                  5       nU(       a  UR                  5       OUR                  5       nUR                  5       S:X  a$  UR                  5       (       a  SSUR                  4$  / nU Hf  n	U	R                  n
U	R                  5       nXs=:  a  X-   :  d(  O  XU-   s=:  a  X-   :  d  O  X:  d  MI  X-   XW-   ::  d  MU  UR                  U	5        Mh     U V	s/ s H5  n	U	R                  S   S:X  d  M  U	R                  U	R                  5       -   PM7     nn	U V	s/ s H$  n	U	R                  S   S:X  d  M  U	R                  PM&     nn	UR                  5       nUR                  5       UR                  -   nU(       d  XR                  -  nXR                  -  nU(       d  U(       a]  U(       a  [        [        U5      U5      nU(       a  [!        [!        U5      U5      nXoU-
  :  a  [!        S U 5       5      nUU:  a  UnGM   UR                  S   S;   df  [#        U[$        R&                  5      (       dG  UR(                  (       d6  [#        U[$        R*                  5      (       d  UR-                  5       (       d   eUnUR                  S   S:X  a  UR                  S   S	:X  ar  [#        U[$        R&                  5      (       a  UnOPUR(                  (       a  X-
  nO:[#        U[$        R*                  5      (       d  UR-                  5       (       d   eX-
  nX-
  nU(       d  UUR                  -  nXQR.                  -  nUUU4$ s  sn	f s  sn	f )
Nr   r?   leftr@   c              3   \   #    U  H"  nUR                   UR                  5       -   v   M$     g 7f)N)r%   rK   ).0shapes     r   	<genexpr>#avoid_collisions.<locals>.<genexpr>   s+      %3!1 $$u':':'<<!1s   *,)r@   rS   none	directionrtl)r5   r%   border_box_yrD   border_widthrK   border_height
is_floatedr   r6   rC   rE   content_box_xr'   r(   rL   minr,   r   LineBoxr.   r-   establishes_formatting_contextr)   )r   r   r   outerr5   r%   	box_width
box_heightcolliding_shapesrV   shape_position_yshape_margin_heightleft_boundsright_boundsmax_left_boundmax_right_boundnew_position_yrE   rG   s                      r   rB   rB      sc   --O#(c.>.>.@J&+  "1A1A1CI(-""$33D3D3FJ
aCNN$4$4!%++++
$E$//"'"5"5"7! 8!78!$; 8!78!/!7() ''. % */){{7#v- 4Eu1133) 	 / *0){{7#w. E) 	 0 *779**,/?/E/EE 	 oo-N///O ,!$S%5~!F"%c,&7"I ^;;!$ %3!1%3 "3 "J.!/J 
7	0	03&&3..//**,,.	-  J
yyV#!!+.%7#u}}-- -
%% -8

 sE$:$:;;6688:9,8
%6Ocoo%
nn$
z?22]/0s   )N!N+NNN)r   )T)__doc__formatting_structurer   min_maxr   percentr   r   	preferredr   replacedr	   tabler
   r   r<   r4   r+   rB    r   r   <module>rw      sG      ( ) F $ 6 & H HBJ8f3r   