Ë
    úmxi÷  ã                  óº   — d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ erd dlmZ d dlmZ  ee«      Z G d	„ d
ed¬«      Z	 	 d	 	 	 	 	 	 	 dd„Zy)é    )Úannotations)ÚTYPE_CHECKINGÚAnyÚ	TypedDictÚcast)ÚSelf)ÚStreamlitAPIException)Ú
get_logger)Úget_script_run_ctx)ÚSessionState)ÚWidgetValuePresenterc                  ó"   — e Zd ZU ded<   ded<   y)Ú_TriggerPayloadÚstrÚeventÚobjectÚvalueN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú[/home/htdocs/ttos/venv/lib/python3.12/site-packages/streamlit/components/v2/presentation.pyr   r   !   s   … ØƒJØ„Mr   r   F)ÚtotalNc                ó   ‡ ‡‡— dˆ ˆˆfd„}|S )a  Return a presenter that merges trigger events into CCv2 state.

    This function returns a callable that takes a component's persistent state
    value and the current `SessionState` instance, and returns the user-visible
    value that should appear in `st.session_state`.

    The presenter is side-effect-free and does not mutate stored state or
    callback behavior. It is intended to be attached to the persistent state
    widget via the generic `presenter` hook.

    Parameters
    ----------
    aggregator_id
        The ID of the trigger aggregator widget that holds the event payloads.

    Returns
    -------
    WidgetValuePresenter
        A callable that merges the trigger event values into the component's
        base state for presentation in `st.session_state`.

    c                óD  •‡‡— dˆˆfd„Šd }t        | t        «      rt        d| «      }|��.	 ‰j                  j                  j                  ‰«      }|�|j                  dk7  r| S 	 ‰j                  ‰   }|€d }nZt        |t        «      r*|D �cg c]  }t        |t        «      rt        d|«      ‘Œ  }}n t        |t        «      rt        d|«      g}nd }i }|�=|D ]8  }|j                  d«      }	t        |	t        «      sŒ%|j                  d«      ||	<   Œ: t        |«      }
|
j                  |«        G ˆˆˆˆfd„dt        t        t        f   «      } ||
«      S | S # t        $ r d }Y Œôw xY wc c}w # t        $ r$}t        j                  d	||¬
«       | cY d }~S d }~ww xY w)Nc           	     ó¾   •— t        «       }|�P‰�M‰j                  j                  ‰«      }‰|j                  v s||j                  v rt        d|› d| › d|› d�«      ‚y y y )Nz`st.session_state.ú.z3` cannot be modified after the component with key `z` is instantiated.)r   Ú_key_id_mapperÚget_key_from_idÚwidget_ids_this_runÚform_ids_this_runr	   )ÚkÚctxÚuser_keyÚcomponent_idÚsession_states      €€r   Ú_check_modificationzLmake_bidi_component_presenter.<locals>._present.<locals>._check_modificationC   s€   ø€ Ü$Ó&ˆCØˆ <Ð#;Ø(×7Ñ7×GÑGÈÓU�à  C×$;Ñ$;Ñ;Ø 3×#8Ñ#8Ñ8ä/Ø,¨X¨J°a¸°sð ;&Ø&. ZÐ/AðCóð ð 9ð	 $<ˆr   údict[str, object]Újson_trigger_valuer   r   r   c                  ód   •‡ — e Zd Zdˆ fd„Zdd„Zd	ˆ fd„Zd
d„Zdˆ ˆˆˆˆfd„Zdˆ ˆˆˆfd„Zˆ xZ	S )úFmake_bidi_component_presenter.<locals>._present.<locals>._WriteThroughc                ó$   •— t         ‰| �  |«       y ©N)ÚsuperÚ__init__)ÚselfÚdataÚ	__class__s     €r   r1   zOmake_bidi_component_presenter.<locals>._present.<locals>._WriteThrough.__init__ƒ   s   ø€ Ü™Ñ(¨Õ.r   c                ó$   — | j                  |«      S r/   )Úget)r2   Únames     r   Ú__getattr__zRmake_bidi_component_presenter.<locals>._present.<locals>._WriteThrough.__getattr__†   s   € Ø#Ÿx™x¨›~Ð-r   c                óR   •— |j                  d«      rt        ‰| �	  ||«      S || |<   y )N)Ú__Ú_)Ú
startswithr0   Ú__setattr__)r2   r7   r   r4   s      €r   r=   zRmake_bidi_component_presenter.<locals>._present.<locals>._WriteThrough.__setattr__‰   s-   ø€ ØŸ?™?¨;Ô7Ü#(¡7Ñ#6°t¸UÓ#CÐCØ%*˜˜T™
Ø#r   c                ó"   — | |t        | «      <   | S r/   )Úid)r2   Úmemos     r   Ú__deepcopy__zSmake_bidi_component_presenter.<locals>._present.<locals>._WriteThrough.__deepcopy__�   s   € à)-˜œR ›X™Ø#˜r   c                óò   •—  ‰|«       ‰�|‰vry t         ‰| �  ||«       	 ‰	}‰�&|j                  j                  ‰t	        | «      «       y y # t
        $ r }t        j                  d|«       Y d }~y d }~ww xY w)Nz'Failed to persist CCv2 state update: %s)r0   Ú__setitem__Ú_new_widget_stateÚset_from_valueÚdictÚ	ExceptionÚ_LOGGERÚdebug)
r2   r$   ÚvÚssÚer4   r)   Úallowed_state_keysr'   r(   s
        €€€€€r   rC   zRmake_bidi_component_presenter.<locals>._present.<locals>._WriteThrough.__setitem__”   sŒ   ø€ Ù+¨AÔ.ð /Ð:Ø !Ð);Ñ ;ð #ô ™Ñ+¨A¨qÔ1ð	Xà!.˜Bà+Ð7Ø "× 4Ñ 4× CÑ CØ$0´$°t³*õ!"ð  8øô  )ò XÜ#ŸM™MÐ*SÐUV×WÑWûðXús   ¢)A Á	A6ÁA1Á1A6c                óâ   •—  ‰|«       t         ‰| �  |«       	 ‰}‰�&|j                  j                  ‰t	        | «      «       y y # t
        $ r }t        j                  d|«       Y d }~y d }~ww xY w)Nz)Failed to persist CCv2 state deletion: %s)r0   Ú__delitem__rD   rE   rF   rG   rH   rI   )r2   r$   rK   rL   r4   r)   r'   r(   s       €€€€r   rO   zRmake_bidi_component_presenter.<locals>._present.<locals>._WriteThrough.__delitem__«   sr   ø€ Ù+¨AÔ.ä™Ñ+¨AÔ.ð	Ø!.˜BØ+Ð7Ø "× 4Ñ 4× CÑ CØ$0´$°t³*õ!"ð  8øô  )ò Ü#ŸM™MØ KÈQ÷ñ ûðús   š)A Á	A.ÁA)Á)A.)r3   r*   ÚreturnÚNone)r7   r   rP   r   )r7   r   r   r   rP   rQ   )r@   zdict[int, Any]rP   r   )r$   r   rJ   r   rP   rQ   ©r$   r   rP   rQ   )
r   r   r   r1   r8   r=   rA   rC   rO   Ú__classcell__)r4   r)   rM   r'   r(   s   @€€€€r   Ú_WriteThroughr-   ‚   s-   ù„ õ/ó.õ$ó$÷
Xñ X÷.ô r   rT   z7Failed to merge trigger events into component state: %s)Úexc_inforR   )Ú
isinstancerF   r   rD   Úwidget_metadatar6   Ú
value_typeÚKeyErrorÚlistr   Úupdater   rG   rH   rI   )Ú
base_valuer(   Úbase_mapÚagg_metaÚagg_payloads_objÚpayloads_listÚpÚevent_to_valÚpayloadÚevÚflatrT   rL   r)   Úaggregator_idrM   r'   s    `           @€€€r   Ú_presentz/make_bidi_component_presenter.<locals>._presentB   sÏ  ú€ ö	ð .2ˆÜ�j¤$Ô'ÜÐ/°Ó<ˆHàÑðk"Ø(×:Ñ:×JÑJ×NÑNØ!ó�ð Ð# x×':Ñ':Ð>RÒ'RØ%Ð%ð,Ø'4×'FÑ'FÀ}Ñ'UÐ$ð
 $Ð+Ø$(‘MÜÐ 0´$Ô7ð "2ö%àÜ% a¬Ô.ô Ð.°Õ2ð%�Mñ %ô
  Ð 0´$Ô7Ü%)Ð*;Ð=MÓ%NÐ$O‘Mà$(�Mà24�Ø Ð,Ø#0ò D˜Ø$Ÿ[™[¨Ó1˜Ü% b¬#Õ.Ø/6¯{©{¸7Ó/C˜L¨Ò,ðDô +/¨|Ó*<�Ø—‘˜HÔ%÷6ñ 6¤D¬¬f¨Ñ$5ô 6ñp % TÓ*Ð*ð ÐøôI  ò ,Ø'+Ò$ð,üò%øôf ò "ä—‘ØMØØð ô ð
 "Õ!ûð"úsU   ­7E2 Á&E Á5E2 Â#E-Â1AE2 Ã?AE2 ÅE*Å'E2 Å)E*Å*E2 Å2	FÅ;FÆFÆF)r\   r   r(   r   rP   r   r   )rf   r'   rM   rg   s   ``` r   Úmake_bidi_component_presenterrh   &   s   ú€ ÷8BðH €Or   )NN)rf   r   r'   z
str | NonerM   zset[str] | NonerP   r   )Ú
__future__r   Útypingr   r   r   r   Útyping_extensionsr   Ústreamlit.errorsr	   Ústreamlit.loggerr
   Ústreamlit.runtime.scriptrunnerr   Ústreamlit.runtime.stater   Ústreamlit.runtime.state.commonr   r   rH   r   rh   r   r   r   ú<module>rq      su   ðõ #ç 6Ó 6å "å 2Ý 'Ý =áÝ4ÝCñ �XÓ
€ô�i uõ ð  $Ø*.ð`Øð`àð`ð (ð`ð ô	`r   