o
    PD©i^  ã                   @   s   d dl Z G dd„ dƒZdS )é    Nc                   @   s„   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
d„ Zddd„Zddd„Zdeddfdd„Zddd„Zddd„Zdeddfdd„ZdS )ÚTextInputHandlerz[Bz[Az[Dz[Cúz[3~ú	z[Zúc                 C   s   d| _ d| _d S )NÚ r   )ÚtextÚcursor_left©Úself© r   úT/var/www/Datamplify/venv/lib/python3.10/site-packages/rich_toolkit/_input_handler.pyÚ__init__   s   
zTextInputHandler.__init__ÚreturnNc                 C   s   t d| jd ƒ| _d S ©Nr   é   )Úmaxr   r	   r   r   r   Ú_move_cursor_left   s   z"TextInputHandler._move_cursor_leftc                 C   s   t t| jƒ| jd ƒ| _d S ©Nr   )ÚminÚlenr   r   r	   r   r   r   Ú_move_cursor_right   s   z#TextInputHandler._move_cursor_rightÚcharc                 C   s2   | j d | j… | | j | jd …  | _ |  ¡  d S ©N)r   r   r   )r
   r   r   r   r   Ú_insert_char   s   &zTextInputHandler._insert_charc                 C   s@   | j dkrd S | jd | j d … | j| j d …  | _|  ¡  d S r   )r   r   r   r	   r   r   r   Ú_delete_char   s   
&zTextInputHandler._delete_charc                 C   s>   | j t| jƒkr
d S | jd | j … | j| j d d …  | _d S r   )r   r   r   r	   r   r   r   Ú_delete_forward$   s   *z TextInputHandler._delete_forwardÚkeyc                 C   sš   || j kr|  ¡  d S || jkr|  ¡  d S || jkr!|  ¡  d S || jkr,|  ¡  d S || j| j	| j
| j| jfv r<d S |D ]}|tjv rJ|  |¡ q>d S r   )ÚBACKSPACE_KEYr   Ú
DELETE_KEYr   ÚLEFT_KEYr   Ú	RIGHT_KEYr   ÚUP_KEYÚDOWN_KEYÚ	ENTER_KEYÚSHIFT_TAB_KEYÚTAB_KEYÚstringÚ	printabler   )r
   r   r   r   r   r   Ú
handle_key*   s*   



û

€þzTextInputHandler.handle_key)r   N)Ú__name__Ú
__module__Ú__qualname__r"   r!   r   r    r   r   r%   r$   r#   r   r   r   Ústrr   r   r   r(   r   r   r   r   r      s"    



r   )r&   r   r   r   r   r   Ú<module>   s    