
    Ng                         d dl mZmZmZmZmZ ddlmZmZm	Z	m
Z
 ddlmZmZ ddlmZmZ ddlmZ ddlmZ  G d	 d
e          Z G d de          ZdS )    )TYPE_CHECKINGAnyOptionalTupleUnion   )BooleanObject
NameObjectNumberObjectTextStringObject)ArrayObjectDictionaryObject)DEFAULT_FITFit)RectangleObject   )AnnotationDictionaryc                        e Zd Zdddeddeeeeeeef         f         dee	         dee
         dee         dedef fd	Z xZS )
LinkN)borderurltarget_page_indexfitrectr   r   r   r   kwargsc                ,    t                      j        di | t          rddlm} |d u}|d u}	|s|	st          d          |r|	rt          d|d|          |\d |d d         D             }
t          |          dk    r4t          d	 |d         D                       }|
                    |           nt          d
          gdz  }
| 
                    t          d          t          d          t          d          t          d          t          d          t          |          t          d          t          |
          i           |rst          t          d          t          d          t          d          t          d          t          d          t          |          i          | t          d          <   |	rKt          t          |          t          |j                  |j        d          }|| t          d          <   d S d S )Nr   )BorderArrayTypezHEither 'url' or 'target_page_index' have to be provided. Both were None.z=Either 'url' or 'target_page_index' have to be provided. url=z, target_page_index=c                 ,    g | ]}t          |          S  r   .0ns     e/var/www/html/ai-engine/env/lib/python3.11/site-packages/pypdf/annotations/_non_markup_annotations.py
<listcomp>z!Link.__init__.<locals>.<listcomp>,   s    >>>a,q//>>>          c                 ,    g | ]}t          |          S r   r    r!   s     r$   r%   z!Link.__init__.<locals>.<listcomp>.   s    +O+O+OLOO+O+O+Or&   r   z/Typez/Annot/Subtypez/Link/Rectz/Borderz/Sz/URIz/Actionz/A)r   r   fit_argsz/Destr   )super__init__r   typesr   
ValueErrorlenr   appendr   updater
   r   r   r   fit_typer,   )selfr   r   r   r   r   r   r   is_externalis_internal
border_arrdash_patterndest_deferred	__class__s                r$   r.   zLink.__init__   sp    	""6""" 	0//////o't3 	; 	Z    	; 	00 0,0 0   >>6"1":>>>J6{{a*+O+OVAY+O+O+OPP!!,///&q//*Q.J7##Z%9%9:&&
7(;(;7##_T%:%:9%%{:'>'>		
 	
 	
  	%5t$$j&8&8w''I)>)>v&&(8(=(=& &DD!!"  		6,)56G)H)H%cl33 #  M )6DG$$%%%		6 		6r&   )__name__
__module____qualname__r   r   r   r   floatr   r   strintr   r   r.   __classcell__r;   s   @r$   r   r      s        
 )-!+/<6 <6 <6 OU5%+E%FFG<6 %	<6
 c]<6 $C=<6 <6 <6 <6 <6 <6 <6 <6 <6 <6 <6 <6r&   r   c            	       h     e Zd Zddddeeeeeeef         f         dee         de	de
f fdZ xZS )	PopupNF)parentopenr   rF   rG   r   c          
          t                      j        d	i | |                     t          d          t          d          t          d          t	          |          t          d          t          |          i           |rB	 |j        | t          d          <   d S # t          $ r ddlm	}  |dt                     Y d S w xY wd S )
Nr*   z/Popupr+   z/Openz/Parentr   )logger_warningz0Unregistered Parent object : No Parent field setr   )r-   r.   r3   r
   r   r	   indirect_referenceAttributeError_utilsrI   r<   )r5   r   rF   rG   r   rI   r;   s         r$   r.   zPopup.__init__P   s    	""6""":&&
8(<(<7##_T%:%:7##]4%8%8	
 	
 	
  
	.4.GZ	**+++!   333333F     	
	 
	s   B   !CC)r<   r=   r>   r   r   r   r?   r   r   boolr   r.   rB   rC   s   @r$   rE   rE   O   s        
 .2   OU5%+E%FFG )*	
           r&   rE   N)typingr   r   r   r   r   generic._baser	   r
   r   r   generic._data_structuresr   r   generic._fitr   r   generic._rectangler   _baser   r   rE   r   r&   r$   <module>rT      s#   = = = = = = = = = = = = = =            E D D D D D D D + + + + + + + + 0 0 0 0 0 0 ' ' ' ' ' '=6 =6 =6 =6 =6 =6 =6 =6@          r&   