
    hg4!                        d dl Z d dlmZmZmZ erUe j        dk    r	d dlmZmZ nd dlmZmZ ed         Z	 G d ded	          Z
 G d
 ded	          Z G d ded	          Znd dlmZmZ eZ	eeef         xZ
xZZ G d d          ZdS )    N)TYPE_CHECKINGListOptional)      )Literal	TypedDict)portrait	landscapec                   8    e Zd ZU eed<   eed<   eed<   eed<   dS )_MarginOptsleftrighttopbottomN__name__
__module____qualname__float__annotations__     e/var/www/fb-scrape/myenv/lib/python3.11/site-packages/selenium/webdriver/common/print_page_options.pyr   r      s4         


r   r   F)totalc                   $    e Zd ZU eed<   eed<   dS )	_PageOptswidthheightNr   r   r   r   r   r   $   s"         r   r   c                   b    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   e	e
         ed<   dS )	
_PrintOptsmarginpage
backgroundorientationscaleshrinkToFit
pageRangesN)r   r   r   r   r   r   boolOrientationr   r   strr   r   r   r!   r!   (   sd             Ir   r!   )AnyDictc                      e Zd ZddgZd dZdefdZedee	         fd            Z
e
j        de	ddfd	            Z
edee         fd
            Zej        deddfd            Zedee         fd            Zej        deddfd            Zedee         fd            Zej        deddfd            Zedee         fd            Zej        deddfd            Zedee         fd            Zej        deddfd            Zedee         fd            Zej        deddfd            Zedee         fd            Zej        deddfd            Zedee         fd            Zej        deddfd            Zedee         fd            Zej        deddfd            Zedeee                  fd            Zej        dee         ddfd            ZdededdfdZdS )!PrintOptionsr
   r   returnNc                 0    i | _         i | _        i | _        d S )N)_print_options_page_marginselfs    r   __init__zPrintOptions.__init__:   s    *, "
$&r   c                     | j         S )z>
        :Returns: A hash of print options configured
        )r2   r5   s    r   to_dictzPrintOptions.to_dict?   s     ""r   c                 8    | j                             dd          S )zA
        :Returns: Orientation that was set for the page
        r%   Nr2   getr5   s    r   r%   zPrintOptions.orientationE       
 "&&}d;;;r   valuec                 Z    || j         vrt          d| j                    || j        d<   dS )zy
        Allows you to set orientation of the page
        :Args:
         - value: Either portrait or landscape
        z!Orientation value must be one of r%   N)ORIENTATION_VALUES
ValueErrorr2   r6   r>   s     r   r%   zPrintOptions.orientationL   s?     ///ZAXZZ[[[-2M***r   c                 8    | j                             dd          S )z;
        :Returns: Scale that was set for the page
        r&   Nr;   r5   s    r   r&   zPrintOptions.scaleX   s    
 "&&w555r   c                 |    |                      d|           |dk     s|dk    rt          d          || j        d<   dS )z}
        Allows you to to set scale for the page
        :Args:
         - value: integer or float between 0.1 and 2
        Scaleg?   z'Scale value should be between 0.1 and 2r&   N)$_PrintOptions__validate_num_propertyrA   r2   rB   s     r   r&   zPrintOptions.scale_   sM     	$$We4443;;%!))FGGG',G$$$r   c                 8    | j                             dd          S )z9
        :Returns: Background value that was set
        r$   Nr;   r5   s    r   r$   zPrintOptions.backgroundm       
 "&&|T:::r   c                 b    t          |t                    st          d          || j        d<   dS )zq
        Allows you to set the boolean value for the background
        :Args:
         - value: Boolean
        z(Set background value should be a booleanr$   N
isinstancer)   rA   r2   rB   s     r   r$   zPrintOptions.backgroundt   s9     %&& 	IGHHH,1L)))r   c                 8    | j                             dd          S )z3
        :Returns: Page width that was set
        r   Nr3   r<   r5   s    r   
page_widthzPrintOptions.page_width   s    
 z~~gt,,,r   c                 d    |                      d|           || j        d<   | j        | j        d<   dS )zr
        Allows you to set width of the page
        :Args:
         - value: A positive integer or float
        z
Page Widthr   r#   NrG   r3   r2   rB   s     r   rO   zPrintOptions.page_width   s;     	$$\5999#
7&*jF###r   c                 8    | j                             dd          S )z4
        :Returns: Page height that was set
        r   NrN   r5   s    r   page_heightzPrintOptions.page_height   s    
 z~~h---r   c                 d    |                      d|           || j        d<   | j        | j        d<   dS )zs
        Allows you to set height of the page
        :Args:
         - value: A positive integer or float
        zPage Heightr   r#   NrQ   rB   s     r   rS   zPrintOptions.page_height   s;     	$$]E:::$
8&*jF###r   c                 8    | j                             dd          S )z2
        :Returns: Top margin of the page
        r   Nr4   r<   r5   s    r   
margin_topzPrintOptions.margin_top   s    
 |t,,,r   c                 d    |                      d|           || j        d<   | j        | j        d<   dS )zw
        Allows you to set top margin of the page
        :Args:
         - value: A positive integer or float
        z
Margin topr   r"   NrG   r4   r2   rB   s     r   rW   zPrintOptions.margin_top   s;     	$$\5999#U(,H%%%r   c                 8    | j                             dd          S )z3
        :Returns: Left margin of the page
        r   NrV   r5   s    r   margin_leftzPrintOptions.margin_left   s    
 |---r   c                 d    |                      d|           || j        d<   | j        | j        d<   dS )zx
        Allows you to set left margin of the page
        :Args:
         - value: A positive integer or float
        zMargin leftr   r"   NrY   rB   s     r   r[   zPrintOptions.margin_left   s;     	$$]E:::$V(,H%%%r   c                 8    | j                             dd          S )z5
        :Returns: Bottom margin of the page
        r   NrV   r5   s    r   margin_bottomzPrintOptions.margin_bottom   s    
 |$///r   c                 d    |                      d|           || j        d<   | j        | j        d<   dS )zz
        Allows you to set bottom margin of the page
        :Args:
         - value: A positive integer or float
        zMargin bottomr   r"   NrY   rB   s     r   r^   zPrintOptions.margin_bottom   s;     	$$_e<<<!&X(,H%%%r   c                 8    | j                             dd          S )z4
        :Returns: Right margin of the page
        r   NrV   r5   s    r   margin_rightzPrintOptions.margin_right   s    
 |...r   c                 d    |                      d|           || j        d<   | j        | j        d<   dS )zy
        Allows you to set right margin of the page
        :Args:
         - value: A positive integer or float
        zMargin rightr   r"   NrY   rB   s     r   ra   zPrintOptions.margin_right   s;     	$$^U;;; %W(,H%%%r   c                 8    | j                             dd          S )z5
        :Returns: Value set for shrinkToFit
        r'   Nr;   r5   s    r   shrink_to_fitzPrintOptions.shrink_to_fit   r=   r   c                 b    t          |t                    st          d          || j        d<   dS )zX
        Allows you to set shrinkToFit
        :Args:
         - value: Boolean
        z+Set shrink to fit value should be a booleanr'   NrK   rB   s     r   rd   zPrintOptions.shrink_to_fit   s9     %&& 	LJKKK-2M***r   c                 8    | j                             dd          S )z4
        :Returns: value set for pageRanges
        r(   Nr;   r5   s    r   page_rangeszPrintOptions.page_ranges  rI   r   c                 b    t          |t                    st          d          || j        d<   dS )z
        Allows you to set pageRanges for the print command
        :Args:
         - value: A list of page ranges. Eg: ['1-2']
        zPage ranges should be a listr(   N)rL   listrA   r2   rB   s     r   rg   zPrintOptions.page_ranges
  s8     %&& 	=;<<<,1L)))r   property_namec                     t          |t          t          f          st          | d          |dk     rt          | d          dS )zD
        Helper function to validate some of the properties
        z  should be an integer or a floatr   z cannot be less then 0N)rL   intr   rA   )r6   rj   r>   s      r   __validate_num_propertyz$PrintOptions.__validate_num_property  sY     %#u.. 	QOOOPPP199EEEFFF 9r   )r0   N)r   r   r   r@   r7   r!   r9   propertyr   r*   r%   setterr   r&   r)   r$   rO   rS   rW   r[   r^   ra   rd   r   r+   rg   rG   r   r   r   r/   r/   7   s       $k2' ' ' '
# # # # # <Xk2 < < < X< 	3 	3 	3 	3 	3 	3 6x 6 6 6 X6 \-5 -T - - - \- ;HTN ; ; ; X; 2 2 2 2 2 2 -HUO - - - X- 	1 	1$ 	1 	1 	1 	1 .Xe_ . . . X. 	1 	14 	1 	1 	1 	1 -HUO - - - X- 	5 	5$ 	5 	5 	5 	5 .Xe_ . . . X. 	5 	54 	5 	5 	5 	5 0x 0 0 0 X0 	55 	5T 	5 	5 	5 	5 /huo / / / X/ 	5% 	5D 	5 	5 	5 	5 <x~ < < < X< 34 3D 3 3 3 3 ;Xd3i0 ; ; ; X; 2c 2t 2 2 2 2GS G G4 G G G G G Gr   r/   )systypingr   r   r   version_infor   r	   typing_extensionsr*   r   r   r!   r,   r-   r+   r/   r   r   r   <module>rt      s  $ 


 0 0 0 0 0 0 0 0 0 0  :
6!!---------8888888812K    iu        IU        Ye      !       K+/S>9K9)jfG fG fG fG fG fG fG fG fG fGr   