a
    ¥Q•h	  ã                   @   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 ]N\}}|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ÚchildZchild_leader_indexZchild_leader© r   úQ/var/www/sistema_ama/venv/lib/python3.9/site-packages/weasyprint/layout/leader.pyr      s    r   c                 C   s¶  t |ƒ\}}d}|du�r(|j�r(|j\}|jdkr8dS |jtdd„ |jD ƒƒ }| jD ] }|j|j |jkrX||j8 }qX||j }|j|_t|j|j ƒ}	|j|j }
g }t	|	ƒD ]J}|
|j8 }
|
|jk rÐq´n|
|j |j| kræq´| 
¡ }|
|_| |¡ q´t|ƒ|_|jd dk�r(|j| d� |}|du�r²|j|d d d… D ]<}| ¡ �rL|jd d	k�rx|j|d� n|j| d� �qL|j|d  }| j|7  _|d }�q,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_widthZnumber_of_leadersr   r   r
   r	   r   r   r   r   Úhandle_leader   sR    
ÿ




ÿ


r.   N)Ú__doc__Úformatting_structurer   r   r.   r   r   r   r   Ú<module>   s   