
    mhG%                         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      i/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/weasyprint/layout/float.pyfloat_widthr      s,     yyF!'30@0F0FG	     c                    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;| j3                           || |||d||dd	d

      \  }}}}}}| j5                  |       nt#        |t$        j6                        r || ||||d||d		      \  }}}}}nOt#        |t$        j8                        r |	| ||||d||      \  }}}}}nt#        |t$        j&                        sJ d}t;        | ||      }| j<                  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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=      sH    .!!+113C3J3JiHh	23 F''*:*H*H*JJ 	 !x&;<
& 
6!
~~
F"gs+I)##u--.(.>?	f	C"23
GS8Y*?@#u..///1%;S|!){"ET	&C"Y1a
 	//4	C//	0"-S|!4D~#U	#4Y1a
 
C//	0"-S|!4D~#	#%Y1a #u55666	
gs,<
=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   Z   s     ++B/::	>>I%MM!Y78 /?&/(+J
O yyW$o(8(8(:::
MM*s~~-zCNN/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,   v   s      22 ""$yy!l&8&8&A6%JJ

 INN-==!11 E99W."6"6w"?!HH!,,n.J.J.LqA$q1u,^!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':':'<<%3s   '))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   LineBoxr/   r.   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&+  "1A1A1CI(-""$33D3D3FJ
aCNN$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 	 coo-Ns///O ,!$S%5~!F"%c,&7"I ?^;;!$ %3!1%3 "3 "J.!/J 
7	0	03&3../**,.	-  J
yyV#!!+.%7#u}}- -
%% -y8

 sE$:$:;668:9,y8
%6Ocoo%
cnn$
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BJ8&f3r   