U
    :vh                     @   s   d dl mZ d dlZddlmZmZmZ G dd deZG dd deZG d	d
 d
eZ	G dd deZ
G dd deZG dd deZdS )    )ABCN   )	PDFStringbuild_obj_dictcreate_dictionary_stringc                   @   s*   e Zd ZdddZd	ddZd
ddZdS )ActionNc                 C   s
   || _ dS )zz
        Args:
            next (PDFObject | str): optional reference to another Action to trigger after this one
        N)next)selfnext_action r   0/tmp/pip-unpacked-wheel-dvf6lv8i/fpdf/actions.py__init__   s    zAction.__init__c                 C   s   t d S N)NotImplementedErrorr	   _security_handler_obj_idr   r   r   	serialize   s    zAction.serializec                 C   s4   |d kri }| j r| j |d< t|||}t|ddS )NZNext )Z
field_join)r   r   r   )r	   
key_valuesr   r   Zobj_dictr   r   r   
_serialize   s    
zAction._serialize)N)NN)NNN)__name__
__module____qualname__r   r   r   r   r   r   r   r      s   

r   c                       s,   e Zd Zd fdd	Zd fdd	Z  ZS )	URIActionNc                    s   t  t || _d S r   )superr   r   uri)r	   r   r
   	__class__r   r   r      s    zURIAction.__init__c                    s"   t  jdt| jddd||dS )Nz/URITencrypt)sZu_r_ir   r   )r   r   r   r   r   r   r   r   r       s
    zURIAction.serialize)N)NNr   r   r   r   r   __classcell__r   r   r   r   r      s   r   c                       s,   e Zd Zd fdd	Zd fdd	Z  ZS )NamedActionNc                    s(   t  t |dkrtd || _d S )N)ZNextPageZPrevPageZ	FirstPageZLastPagezNon-standard named action added)r   r   r   warningswarnaction_name)r	   r(   r
   r   r   r   r   )   s    
zNamedAction.__init__c                    s    t  jdd| j d||dS )Nz/Named/)r!   nr"   )r   r   r(   r   r   r   r   r   /   s
    zNamedAction.serialize)N)NNr#   r   r   r   r   r%   (   s   r%   c                       s0   e Zd ZdZd fdd	Zd fdd	Z  ZS )	
GoToActionTAs of 2022, this does not seem honored by neither Adobe Acrobat nor Sumatra readers.Nc                    s   t  | || _d S r   )r   r   dest)r	   r-   r
   r   r   r   r   :   s    zGoToAction.__init__c                    s   t  jd| jd||dS )Nz/GoTo)r!   dr"   )r   r   r-   r   r   r   r   r   >   s
    
zGoToAction.serialize)N)NNr   r   r   __doc__r   r   r$   r   r   r   r   r+   7   s   r+   c                       s,   e Zd Zd fdd	Zd fdd	Z  ZS )GoToRemoteActionNc                    s   t  | || _|| _d S r   )r   r   filer-   )r	   r2   r-   r
   r   r   r   r   G   s    zGoToRemoteAction.__init__c                    s&   t  jdt| jdd| jd||dS )Nz/GoToRTr   )r!   fr.   r"   )r   r   r   r2   r-   r   r   r   r   r   L   s
    zGoToRemoteAction.serialize)N)NNr#   r   r   r   r   r1   F   s   r1   c                       s0   e Zd ZdZd fdd	Zd fdd	Z  ZS )	LaunchActionr,   Nc                    s   t  | || _d S r   )r   r   r2   )r	   r2   r
   r   r   r   r   W   s    zLaunchAction.__init__c                    s"   t  jdt| jddd||dS )Nz/LaunchTr   )r!   r3   r"   )r   r   r   r2   r   r   r   r   r   [   s
    zLaunchAction.serialize)N)NNr/   r   r   r   r   r4   T   s   r4   )abcr   r&   Zsyntaxr   r   r   r   r   r%   r+   r1   r4   r   r   r   r   <module>   s   