o
    uhA                     @   s   d dl 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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/bot/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
   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   tuplefloatr   r   strintr   r   r*   __classcell__r   r   r7   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*   r/   r   r   r   indirect_referenceAttributeError_utilsrD   r9   )r1   r   rB   rC   r   rD   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!   rA   O   s    rA   N)typingr   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    @