o
    li                     @   s   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
 d
eZG dd deZdS )    )TYPE_CHECKINGAnyOptionalTupleUnion   )BooleanObject
NameObjectNumberObjectTextStringObject)ArrayObjectDictionaryObject)DEFAULT_FITFit)RectangleObject   )AnnotationDictionaryc                       sb   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	d
Z  ZS )LinkN)borderurltarget_page_indexfitrectr   r   r   r   kwargsc                   s^  t  jdi | trddlm} |d u}|d u}	|s!|	s!td|r/|	r/td|d||d urUdd |d d D }
t|d	krTtd
d |d D }|
| nt	dgd }
| 
tdtdtdtdtdt|tdt|
i |rttdtdtdtdtdt|i| td< |	rt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                 S      g | ]}t |qS  r
   .0nr   r   h/var/www/html/pca-backend/venv/lib/python3.10/site-packages/pypdf/annotations/_non_markup_annotations.py
<listcomp>,       z!Link.__init__.<locals>.<listcomp>      c                 S   r   r   r   r   r   r   r!   r"   .   r#   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__r   r!   r*      s^   

zLink.__init__)__name__
__module____qualname__r   r   r   r   floatr   r   strintr   r   r*   __classcell__r   r   r7   r!   r      s$    r   c                	       sN   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d	Z  ZS )
PopupNF)parentopenr   rA   rB   r   c             	      s   t  jd	i | | tdtdtdt|tdt|i |rBz
|j| td< W d S  tyA   ddlm	} |dt
 Y d S w d S )
Nr&   z/Popupr'   z/Openz/Parentr   )logger_warningz0Unregistered Parent object : No Parent field setr   )r)   r*   r/   r	   r   r   indirect_referenceAttributeError_utilsrC   r9   )r1   r   rA   rB   r   rC   r7   r   r!   r*   P   s$   
zPopup.__init__)r9   r:   r;   r   r   r   r<   r   r   boolr   r*   r?   r   r   r7   r!   r@   O   s    r@   N)typingr   r   r   r   r   generic._baser   r	   r
   r   generic._data_structuresr   r   generic._fitr   r   generic._rectangler   _baser   r   r@   r   r   r   r!   <module>   s    @