o
    vhH                     @   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   g/var/www/html/hyperkenya/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   r8   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   rB   rC   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   indirect_referenceAttributeError_utilsrD   r:   )r2   r   rB   rC   r   rD   r8   r   r"   r+   P   s$   
zPopup.__init__)r:   r;   r<   r   r   r   r=   r   r   boolr   r+   r@   r   r   r8   r"   rA   O   s    rA   N)typingr   r   r   r   r   generic._baser   r	   r
   r   generic._data_structuresr   r   generic._fitr   r   generic._rectangler   _baser   r   rA   r   r   r   r"   <module>   s    @