o
    Zh&                     @   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                       sf   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d	df fd
dZ  ZS )LinkN)borderurltarget_page_indexfitrectr   r   r   r   kwargsreturnc                   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   `/var/www/html/lang_env/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   Zfit_typer)   )selfr   r   r   r   r   r   r   Zis_externalZis_internalZ
border_arrZdash_patternZ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   r2   r"   r      s(    	r   c                       sR   e Zd Zddddeeeeeeef f dee de	de
ddf
 fd	d
Z  ZS )PopupNF)parentopenr   r<   r=   r   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+   r0   r	   r   r   Zindirect_referenceAttributeErrorZ_utilsr>   r4   )r1   r   r<   r=   r   r>   r2   r   r"   r+   P   s$   
zPopup.__init__)r4   r5   r6   r   r   r   r7   r   r   boolr   r+   r:   r   r   r2   r"   r;   O   s    r;   N)typingr   r   r   r   r   Zgeneric._baser   r	   r
   r   Zgeneric._data_structuresr   r   Zgeneric._fitr   r   Zgeneric._rectangler   Z_baser   r   r;   r   r   r   r"   <module>   s    @