
    ,g                     D    d Z ddlmZ ddlmZ d Zd Zd Zd Zd	 Z	d
 Z
y)z&Resolve percentages into fixed values.    )inf   )boxesc                     | | dk(  r| S | j                   dk(  r| j                  S | j                   dk(  sJ || j                  z  dz  S )zReturn the percentage of the reference value, or the value unchanged.

    ``refer_to`` is the length for 100%. If ``refer_to`` is not a number, it
    just replaces percentages.

    autopx%d   )unitvalue)r   refer_tos     q/home/viktor/gitlab-persoonlijk/factuur-applicatie/venv/lib/python3.12/site-packages/weasyprint/layout/percent.py
percentager      sP     }	t	{{zzS   %++%++    c                     | j                   |   }t        ||      }t        | ||       |dv r|dk(  rt        | |d       yyy)zSet a used length value from a computed length value.

    ``refer_to`` is the length for 100%. If ``refer_to`` is not a number, it
    just replaces percentages.

    )	min_width
min_heightr   r   N)styler   setattr)boxproperty_namer   r   percents        r   resolve_one_percentager      sO     IIm$E)GC(3368I]A& 9J3r   c                 v    |\  }}t        | d|       t        | d|       t        | d|       t        | d|       y )Nleftrighttopbottom)r   )r   containing_blockcb_width	cb_heights       r   resolve_position_percentagesr"   (   s<    *Hi31323y13)4r   c                    t        |t        j                        r|j                  }|j                  }n|\  }}t        | t        j
                        r|}n|}t        | d|       t        | d|       t        | d|       t        | d|       t        | d|       t        | d|       t        | d|       t        | d|       t        | d	|       t        | d
|       t        | d|       |dk(  rl| j                  d   }|dk(  s|j                  dk(  rd| _        n"|j                  dk(  sJ |j                  | _        t        | dd       t        | dt               n't        | d|       t        | d|       t        | d|       | j                  d   dk(  }dD ]1  }d| d}|rt        | |      rt        | || j                  |          3 t        | d	       t        | d       y)z0Set used values as attributes of the box object.margin_leftmargin_right
margin_topmargin_bottompadding_leftpadding_rightpadding_toppadding_bottomwidthr   	max_widthr   heightr	   r   r   r   
max_heightborder_collapsecollapse)r   r   r   r   border__widthN)
isinstancer   Boxr,   r.   PageBoxr   r   r   r   r   hasattrr   adjust_box_sizing)	r   r   r    r!   maybe_heightr.   r1   sideprops	            r   resolve_percentagesr<   0   s   "EII.#))$++	.)#u}}% 3x8393l;3>393:3|<3 0,?323X63X6 F 8$Vv{{c1CJ;;$&&&CJsL!4sL#6sHi8sL)<sL)<yy*+z9H2 0f% WS$/Csyy/0 c7#c8$r   c                 V   dD ]  }d| d}| j                   |   \  }}d||fv rt        | |d       /|j                  d      D ]  }|| j                  v st        | |d        a t	        || j                               }t	        || j                               }t        | |||f        y )N)top_left	top_rightbottom_rightbottom_leftr2   _radius)r   r   )r   r   _)r   r   splitremove_decoration_sidesr   border_widthborder_height)r   cornerr   rxryr:   s         r   resolve_radii_percentagesrK   h   s    J 2!&1=)B R C/LL% 	2Ds222]F3	2
 B 0 0 23BB 1 1 34BCR1!2r   c                    | j                   d   dk(  rm|dk(  r4| j                  | j                  z   | j                  z   | j                  z   }n| j
                  | j                  z   | j                  z   | j                  z   }na| j                   d   dk(  r9|dk(  r| j                  | j                  z   }n0| j
                  | j                  z   }n| j                   d   dk(  sJ d}|dkD  rt        | |      dk7  r$t        | |t        dt        | |      |z
               t        | d| t        dt        | d|       |z
               t        | d	|       dk7  r+t        | d	| t        dt        | d	|       |z
               y y y )
N
box_sizingz
border-boxr,   zpadding-boxzcontent-boxr   r   max_min_)r   r(   r)   border_left_widthborder_right_widthr*   r+   border_top_widthborder_bottom_widthgetattrr   max)r   axisdeltas      r   r8   r8   |   s   
yy,.7?  3#4#44%%&(+(>(>? 
 #"4"44$$%'*'>'>?  
<	 M	17?$$s'8'88EOOc&8&88Eyy&-777
 qy3'Cs1gc4&85&@ABtD6]C73$tf+F+N$OP3$tf&&0C4vAwsd4&M/JU/R(ST 1	 r   N)__doc__mathr   formatting_structurer   r   r   r"   r<   rK   r8    r   r   <module>r\      s.    ,  (, ' 55%p2(Ur   