
    ,g                     @    d Z ddlmZ ddlmZ  G d d      Zd Zd Zy)	zStacking contexts management.   )boxes)AbsolutePlaceholderc                   8    e Zd ZdZd Zed        Zedd       Zy)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                 .   || _         || _        || _        || _        g | _        g | _        g | _        || _        |D ]s  }|j                  dk  r| j                  j                  |       .|j                  dk(  r| j
                  j                  |       Y| j                  j                  |       u | j                  j                  d        | j                  j                  d        |j                  d   | _        | j                  dk(  rd| _        y y )N    c                     | j                   S Nz_indexcontexts    k/home/viktor/gitlab-persoonlijk/factuur-applicatie/venv/lib/python3.12/site-packages/weasyprint/stacking.py<lambda>z*StackingContext.__init__.<locals>.<lambda>    
    '//     )keyc                     | j                   S r
   r   r   s    r   r   z*StackingContext.__init__.<locals>.<lambda>!   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   s           r   __init__zStackingContext.__init__   s    	!'$#% !#%  0% 	9G"((//8A%$$++G4((//8	9 	  %%*I%J  %%*I%J yy+<<6!DL "r   c                     |j                   D cg c]  }| j                  ||       }}|j                  g       } | ||g g g |      S c c}w r
   )childrenfrom_boxcopy_with_children)clsr   childr"   s       r   	from_pagezStackingContext.from_page)   sS     BFO#,,ud3OO&&r*4RT:: Ps   ANc                 T    g }||}g }g }g }t        ||||||      } | ||||||      S r
   )_dispatch_children)r*   r   r   r"   r'   r#   r$   r   s           r   r(   zStackingContext.from_box2   sS    !%N  ~vv7GI3&&2BDIIr   r
   )__name__
__module____qualname____doc__r%   classmethodr,   r(    r   r   r   r      s6    6 ; ; J Jr   r   c                    t        | t              r| j                  } | j                  }|d   dk7  xr |d   dk7  xs1 | j                  xr |d   dk7  xs |d   dk  xs |d   xs |d   d	k7  }|r&|j                  t        j                  | |             y t        j                  t        j                  t        j                  f}|d   dk7  r?|d   dk(  sJ t        |      }	t        j                  | ||      }
|j                  |	|
       y | j                         r'|j                  t        j                  | ||             y t        | |      rt        j                  | ||      S t        | t        j                        rt        |      }t        |      }n,t        | t        j                         rd }t        |      }nd }d }t#        | |||||      } ||j                  ||        ||j                  ||        | 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    defines_stacking_contextstacking_classesindexstacking_contextblocks_indexblocks_and_cells_indexs                r   	_dispatchrM   E   s   #*+hhIIE 
z	h	&	E5+;v+E 	'				8eI.&8	'i1	' 	k	' 	jY&   o66sDAB,,e.A.A5CVCVWZH$Y6))) N#*33C~Ne%56		o..sD.IJ	C)	* ''T>BBc5../v;L%()9%:"U//0L%()9%:"L%)" ~vv7GI #MM,,!-##$:C@
r   c           	          t        | t        j                        s| S g }| j                  D ]&  }t	        ||||||      }||j                  |       ( | j                  |      S r
   )r<   r   	ParentBoxr'   rM   r   r)   )	r   r   r"   r#   r$   r   new_childrenr+   results	            r   r.   r.   z   sm    c5??+
L (49IK'	(
 !!,//r   N)r2   formatting_structurer   layout.absoluter   r   rM   r.   r4   r   r   <module>rT      s&    # ' 0;J ;J|2j0r   