a
    Qh                     @   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   L/var/www/sistema_ama/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pageblock_level_boxesfloat_contextsnegative_z_contextszero_z_contexts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positionstaticr   r   opacityr   	transformoverflowvisible)
isinstancer   _boxr   is_grid_itemr   r   r!   r   InlineBlockBoxInlineFlexBoxInlineGridBoxleninsert
is_floatedBlockLevelBoxTableCellBoxr*   )r   r   r   r   r   r   r   Zdefines_stacking_contextZstacking_classesindexstacking_contextZblocks_indexZblocks_and_cells_indexr   r   r   	_dispatchE   sR    






rC   c           	      C   sN   t | tjs| S g }| jD ](}t||||||}|d ur|| q| |S r   )r6   r   	ParentBoxr'   rC   r   r(   )	r   r   r   r   r   r   new_childrenr#   resultr   r   r   r*   z   s    
r*   N)r.   formatting_structurer   Zlayout.absoluter   r   rC   r*   r   r   r   r   <module>   s
   >5