
    ;3h                    ~    d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZ  e        G d d	e
             Zy)
zgr.BrowserState() component.    )annotationsN)Any)document)FormComponent)Eventsc                       e Zd Zej                  gZ	 	 d
dddd	 	 	 	 	 	 	 d fdZddZddZddZ	ddZ
dd	Z xZS )BrowserStateNT)storage_keysecretrenderc                   || _         |xs! dj                  d t        d      D              | _        |xs! dj                  d t        d      D              | _        d| _        t        |   |       y)a  
        Parameters:
            default_value: the default value that will be used if no value is found in localStorage. Should be a json-serializable value.
            storage_key: the key to use in localStorage. If None, a random key will be generated.
            secret: the secret key to use for encryption. If None, a random key will be generated (recommended).
            render: should always be True, is included for consistency with other components.
         c              3     K   | ]8  }t        j                  t        j                  t        j                  z          : y wNsecretschoicestringascii_lettersdigits.0_s     _/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/gradio/components/browser_state.py	<genexpr>z(BrowserState.__init__.<locals>.<genexpr>&   s-      (
EFGNN6//&--?@(
   >A    c              3     K   | ]8  }t        j                  t        j                  t        j                  z          : y wr   r   r   s     r   r   z(BrowserState.__init__.<locals>.<genexpr>)   s-      2
EFGNN6//&--?@2
r   any json-serializable value)r   N)default_valuejoinranger   r
   _value_descriptionsuper__init__)selfr    r
   r   r   	__class__s        r   r%   zBrowserState.__init__   s}     + 
 (
JOPR)(
 !
 ' 
"'' 2
JOPR)2
 +
 #@'    c                "    || j                   S |S )z
        Parameters:
            payload: Value from local storage
        Returns:
            Passes value through unchanged
        )r    )r&   payloads     r   
preprocesszBrowserState.preprocess0   s     ?%%%r(   c                    |S )z
        Parameters:
            value: Value to store in local storage
        Returns:
            Passes value through unchanged
         )r&   values     r   postprocesszBrowserState.postprocess;   s	     r(   c                    i ddS )Nr   )typedescriptionr-   r&   s    r   api_infozBrowserState.api_infoD   s    +HIIr(   c                     yNtestr-   r3   s    r   example_payloadzBrowserState.example_payloadG       r(   c                     yr6   r-   r3   s    r   example_valuezBrowserState.example_valueJ   r9   r(   r   )r    r   r
   
str | Noner   r<   r   bool)r*   r   returnr   )r.   r   r>   r   )r>   zdict[str, Any])r>   r   )__name__
__module____qualname__r   changeEVENTSr%   r+   r/   r4   r8   r;   __classcell__)r'   s   @r   r	   r	      sm    mm_F "( #'!((  	(
 ( (4	Jr(   r	   )__doc__
__future__r   r   r   typingr   gradio_client.documentationr   gradio.components.baser   gradio.eventsr   r	   r-   r(   r   <module>rK      s:    " "    0 0   
;= ; ;r(   