a
    [Xh                     @   s>   d Z ddlmZ ddlmZ G dd dZdd Zdd	 Zd
S )zStacking contexts management.   )boxes)AbsolutePlaceholderc                   @   s2   e Zd ZdZdd Zedd Zed	ddZdS )
StackingContextzStacking contexts define the paint order of all pieces of a document.

    https://www.w3.org/TR/CSS21/visuren.html#x43
    https://www.w3.org/TR/CSS21/zindex.html

    c                 C   s   || _ || _|| _|| _g | _g | _g | _|| _|D ]@}|jdk rP| j	| q4|jdkrh| j	| q4| j	| q4| jj
dd d | jj
dd d |jd | _| jdkrd| _d S )N    c                 S   s   | j S Nz_indexcontext r   X/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/site-packages/weasyprint/stacking.py<lambda>        z*StackingContext.__init__.<locals>.<lambda>)keyc                 S   s   | j S r   r   r	   r   r   r   r   !   r   r   auto)boxpageZblock_level_boxesZfloat_contextsZnegative_z_contextsZzero_z_contextsZpositive_z_contextsblocks_and_cellsr   appendsortstyle)selfr   child_contextsblocksfloatsr   r   r
   r   r   r   __init__   s&    


zStackingContext.__init__c                    s2    fddj D }g  |g g g S )Nc                    s   g | ]}  |qS r   )from_box).0childclsr   r   r   
<listcomp>-   r   z-StackingContext.from_page.<locals>.<listcomp>)childrencopy_with_children)r    r   r   r   r   r   	from_page)   s    
zStackingContext.from_pageNc                 C   s@   g }|d u r|}g }g }g }t ||||||}| ||||||S r   )_dispatch_children)r    r   r   r   r"   r   r   r   r   r   r   r   2   s    zStackingContext.from_box)N)__name__
__module____qualname____doc__r   classmethodr$   r   r   r   r   r   r      s   
r   c                 C   s  t | tr| j} | j}|d dkr.|d dkp^| jr@|d dkp^|d dk p^|d p^|d d	k}|rz|t| | d S tj	tj
tjf}|d dkr|d dksJ t|}	t| ||}
||	|
 n|  r|t| || nt | |rt| ||S t | tjr"t|}t|}n$t | tjr>d }t|}nd }d }t| |||||} |d urn|||  |d ur|||  | S d S )
NpositionZstaticr   r   Zopacityr   Z	transformZoverflowZvisible)
isinstancer   Z_boxr   Zis_grid_itemr   r   r   r   ZInlineBlockBoxZInlineFlexBoxZInlineGridBoxleninsertZ
is_floatedZBlockLevelBoxZTableCellBoxr%   )r   r   r   r   r   r   r   Zdefines_stacking_contextZstacking_classesindexZstacking_contextZblocks_indexZblocks_and_cells_indexr   r   r   	_dispatchE   sR    






r0   c           	      C   sN   t | tjs| S g }| jD ](}t||||||}|d ur|| q| |S r   )r,   r   Z	ParentBoxr"   r0   r   r#   )	r   r   r   r   r   r   Znew_childrenr   resultr   r   r   r%   z   s    
r%   N)r)   Zformatting_structurer   Zlayout.absoluter   r   r0   r%   r   r   r   r   <module>   s
   >5