o
    Zh0h	                     @   s$   d Z ddlmZ dd Zdd ZdS )zLeaders management.   )boxesc                 C   s^   t | jD ]'\}}|jr|df|f  S t|tjr,t|\}}|dur,||f|f  S qdS )z1Get the index of the first leader box in ``box``.N)NN)	enumeratechildren	is_leader
isinstancer   	ParentBoxleader_index)boxichildchild_leader_indexchild_leader r   N/var/www/html/rh/venv/lib/python3.10/site-packages/weasyprint/layout/leader.pyr      s   r   c                 C   s  t |\}}d}|dur|jr|j\}|jdkrdS |jtdd |jD  }| jD ]}|j|j |jkr:||j8 }q*||j }|j|_t|j|j }	|j|j }
g }t	|	D ]$}|
|j8 }
|
|jk reqX|
|j |j| krpqX|
 }|
|_|| qXt||_|jd dkr|j| d |}|dur|j|d d d D ]}| r|jd d	kr|j|d q|j| d q|j|d  }| j|7  _|d }|dusdS dS )
zCFind a leader box in ``line`` and handle its text and its position.    Nc                 s   s     | ]}|  r| V  qd S )N)is_in_normal_flowmargin_width).0r   r   r   r   	<genexpr>   s    
z handle_leader.<locals>.<genexpr>	directionrtl)dx   ltr)r   r   widthsumexcluded_shapes
position_yheightint
position_xrangecopyappendtuplestyle	translater   )contextlinecontaining_blockindex
leader_boxextra_widthtext_boxshapeavailable_widthnumber_of_leadersr    r   r
   r	   r   r   r   r   handle_leader   sX   







r1   N)__doc__formatting_structurer   r   r1   r   r   r   r   <module>   s    