a
    [Xh	                     @   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childrenZ	is_leader
isinstancer   Z	ParentBoxleader_index)boxichildZchild_leader_indexZchild_leader r
   ]/var/www/viveiro_mudafortebrasil/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 rqn|
|j |j| krq|
 }|
|_|| qt||_|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_flowZmargin_width).0r	   r
   r
   r   	<genexpr>   s   z handle_leader.<locals>.<genexpr>	directionrtl)Zdx   Zltr)r   r   widthsumZexcluded_shapesZ
position_yheightint
position_xrangecopyappendtuplestyle	translater   )contextlineZcontaining_blockindexZ
leader_boxZextra_widthZtext_boxshapeZavailable_widthZnumber_of_leadersr   r   r   r   r	   r
   r
   r   handle_leader   sR    








r"   N)__doc__Zformatting_structurer   r   r"   r
   r
   r
   r   <module>   s   