§
    ÎÐjš  ã                   óD   — d Z ddlZddlZddlmZmZ  G d„ d¦  «        ZdS )zDBind existing Gradio components and save callbacks to a shared form.é    N)ÚFormConflictÚSavedc                   ó@   — e Zd Zdd„ dddddœd„Zd
d„Zd„ Zddœd	„ZdS )Ú
GradioFormNc                  ó   — dS )NÚapplication© r	   ó    ú?C:\Users\johnn\OneDrive\Documents\AI\shared\gradio\form_sync.pyú<lambda>zGradioForm.<lambda>   s   € È}€ r
   r	   )ÚreadÚscopeÚkeysÚview_eventsÚrender_fieldsÚlockc                ó°  ‡ — t          |¦  «        ‰ _        |pd„ |D ¦   «         ‰ _        d„ t          ‰ j        |¦  «        D ¦   «         ‰ _        t          t          ‰ j        d„ |D ¦   «         ¦  «        ¦  «        }
|                     ||
||‰ j        |	¬¦  «        ‰ _        t          d„ |D ¦   «                              ¦   «         ¦  «        ‰ _	        |‰ _
        t          t
                               ˆ fd„‰ j	        D ¦   «         ¦  «        ¦  «        ‰ _        t          j        t          j         |¦   «         d|
dœ¦  «        d	¬
¦  «        ‰ _        t          j        d	¬¦  «        ‰ _        t          j        ¦   «         ‰ _        t          j        d	¬¦  «        5 ‰ _        t          j        dd¬¦  «        }t          j        dd¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d|› �}dt          j        |¦  «        › dt          j        |¦  «        › d�}t          j        d	|¬¦  «        }t          j        ‰ j        ¦  «        t          j        ‰ j        ¦  «        }}d|› d|› d�‰ _        ‰ j        g‰ _        ‰ j        g‰ j        ¢‰ j        ¢‰ j        ‘‰ j        ‘‰ _        |                     ‰ j        ‰ j        gd	ddd	¬¦  «        }‰                      |¦  «         ‰                      |                     ‰ j        ‰ j        gd	dd	¬¦  «        d|› d|› d�¬¦  «         |                     ‰ j        ‰ j        gd	dd	¬¦  «                             d ‰ j        g‰ j        ‰ j        ‰ j        gd¬¦  «         t          j        j         j!        }| "                    d d t          j        |¦  «        › dt          j        |¦  «        › d!t          j        |¦  «        › d"�¬#¦  «         d S )$Nc                 ó6   — g | ]}t          |j        ¦  «        ‘ŒS r	   )ÚstrÚ_id©Ú.0Ú	components     r   ú
<listcomp>z'GradioForm.__init__.<locals>.<listcomp>   s"   € ÐLÐLÐL°I�S ¤Ñ/Ô/ÐLÐLÐLr
   c                 ó(   — i | ]\  }}||j         p|“ŒS r	   )Úlabel)r   Úkeyr   s      r   ú
<dictcomp>z'GradioForm.__init__.<locals>.<dictcomp>   s%   € ÐdÐdÐd±~°s¸I�s˜IœOÐ2¨sÐdÐdÐdr
   c                 ó   — g | ]	}|j         ‘Œ
S r	   ©Úvaluer   s     r   r   z'GradioForm.__init__.<locals>.<listcomp>   s   € Ð&SÐ&SÐ&S¸9 y¤Ð&SÐ&SÐ&Sr
   )r   r   Úlabelsr   c                 ól   — i | ]1}|j         t          |j        ¦  «        t          |j        ¦  «        f|“Œ2S r	   )ÚfnÚtupleÚinputsÚoutputs)r   Úevents     r   r   z'GradioForm.__init__.<locals>.<dictcomp>   s9   € Ð wÐ wÐ wÐbg %¤(­E°%´,Ñ,?Ô,?ÅÀuÄ}ÑAUÔAUÐ!VÐX]Ð wÐ wÐ wr
   c              3   óB   •K  — | ]}|j         D ]}|‰j        v¯|V — ŒŒd S ©N)r'   Ú
components)r   r(   ÚoutputÚselfs      €r   ú	<genexpr>z&GradioForm.__init__.<locals>.<genexpr>   sz   øè è € ð  /Rð  /R¸%ÐbgÔboð  /Rð  /RÐX^Ðsyð  BFô  BQð  tQð  tQ¨vð  tQð  tQð  tQð  tQð  tQð  /Rð  /Rr
   éÿÿÿÿ)r   ÚrevisionÚvaluesF)r!   Úvisible)r2   zLoad saved valuesÚsm)ÚsizezKeep my editszwangp-form-sync-z[id=z] button, button[id=Ú])r2   Úelem_idzL(remote, baseline, ...values) => [JSON.stringify(window.WanGPFormSync.apply(z, z, remote, baseline, values))]ÚhiddenÚalways_last)r'   ÚqueueÚshow_progressÚtrigger_modeÚapi_name)r'   r9   r:   r<   z#, remote, baseline, values, true))])Újsz9remote => [remote, "", {__type__:"update",visible:false}])r$   r&   r'   r=   z%() => {window.WanGPFormSync.register(z);document.querySelector(z)?.click();})r$   r=   )#Úlistr+   r   Úzipr"   ÚdictÚregisterÚformr1   r   r   ÚfromkeysÚview_outputsÚgrÚTextboxÚjsonÚdumpsÚbaselineÚremoteÚHTMLÚnoticeÚRowÚconflict_controlsÚButtonÚapply_jsÚapply_inputsÚapply_outputsÚclickÚsnapshotÚ_bind_applyÚthenÚcontextÚContextÚ
root_blockÚload)r-   ÚregistryÚnamer+   r   r   r   r   r   r   ÚinitialÚreloadÚkeepÚ
trigger_idÚselectorÚtriggerÚ	keys_jsonÚlabels_jsonr(   Úroots   `                   r   Ú__init__zGradioForm.__init__   sé  ø€ Ý˜zÑ*Ô*ˆŒØÐLÐLÐLÀÐLÑLÔLˆŒ	ØdÐdÍÈTÌYÐXbÑIcÔIcÐdÑdÔdˆŒÝ•s˜4œ9Ð&SÐ&SÈ
Ð&SÑ&SÔ&SÑTÔTÑUÔUˆØ×%Ò% d¨G¸$ÀeÐTXÔT_ÐfjÐ%ÑkÔkˆŒ	ÝÐ wÐ wÐkvÐ wÑ wÔ w× ~Ò ~ñ  !Aô  !Añ  Bô  BˆÔØ*ˆÔÝ ¥§¢ð  /Rð  /Rð  /Rð  /RÀ4ÔCSð  /Rñ  /Rô  /Rñ  "Rô  "Rñ  Sô  SˆÔÝœ
­¬¸e¸e¹g¼gÐSUÐahÐ4iÐ4iÑ)jÔ)jÐtyÐzÑzÔzˆŒÝ”j¨Ð/Ñ/Ô/ˆŒÝ”g‘i”iˆŒÝŒV˜EÐ"Ñ"Ô"ð 	9 dÔ&<Ý”YÐ2¸Ð>Ñ>Ô>ˆFÝ”9˜_°4Ð8Ñ8Ô8ˆDð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð /¨Ð.Ð.ˆ
Ø_�$œ* ZÑ0Ô0Ð_Ð_ÅdÄjÐQ[ÑF\ÔF\Ð_Ð_Ð_ˆÝ”) E°:Ð>Ñ>Ô>ˆÝ!%¤¨D¬IÑ!6Ô!6½¼
À4Ä;Ñ8OÔ8O�;ˆ	ð _Ðgpð  _ð  _Ðtð  _ð  _ð  _ˆŒð "œ[˜MˆÔØ"œmÐw¨d¬oÐwÀÔ@QÐwÐSWÔS^ÐwÐ`dÔ`vÐwˆÔØ—’˜dœm°d´k°]È%Ð_gð  wDð  OT�ñ  Uô  UˆØ×Ò˜ÑÔÐØ×Ò˜Ÿš d¤m¸d¼k¸]ÐRWÐgoÐz˜ñ  Aô  Að  FRð  U^ð  FRð  FRð  bmð  FRð  FRð  FRÐñ  	Sô  	Sð  	SØ�
Š
�4”=¨4¬;¨-¸uÐT\Ðglˆ
ÑmÔm×rÒrÐvzð  EIô  EPð  DQð  \`ô  \ið  koô  kvð  x|ô  xNð  [Oð  TOÐrñ  	Pô  	Pð  	PÝŒzÔ!Ô,ˆØ�	Š	�Tð  nÅtÄzÐRVÑGWÔGWð  nð  nÕ[_Ô[eÐfnÑ[oÔ[oð  nð  nõ  KOô  KUð  V^ñ  K_ô  K_ð  nð  nð  nˆ	ñ  	oô  	oð  	oð  	oð  	os   Æ2GÇGÇGc           
      ód   — d„ }|                      || j        | j        |p| j        dddd¬¦  «        S )Nc                 óD   — t          t          j        | ¦  «        ¦  «        S r*   )r%   rG   Úloads)Úpayloads    r   Úapply_updatesz-GradioForm._bind_apply.<locals>.apply_updates+   s   € õ �œ GÑ,Ô,Ñ-Ô-Ð-r
   Fr7   )r&   r'   r=   Ú
preprocessr9   r:   r<   )rV   rQ   rR   rP   )r-   r(   r=   rk   s       r   rU   zGradioForm._bind_apply*   sb   € ð	.ð 	.ð 	.ð �zŠz˜-°Ô0AÈ4ÔK]ÐbdÐbuÐhlÔhuð  CHð  PUð  emð  x}ˆzñ  ~ô  ~ð  	~r
   c                 óš  ‡‡	‡
‡‡— | j                              ¦   «         Š
ˆ
fd„t          | j        | j        ¦  «        D ¦   «         Šd„ g | j        ¢| j        ¢D ¦   «         Šd„ ‰D ¦   «         Št          t          | j        | j        ¦  «        ¦  «        Š	| j        D ]ç}ˆfd„|j        D ¦   «         } |j	        |Ž }t          |j        ¦  «        dk    r|gn|}t          |j        |¦  «        D ]•\  }}t          |t          ¦  «        r|                     d¦  «        dk    r|nt          j        |¬¦  «        }|‰v rG‰|                              |¦  «         ‰|                              ˆ	fd	„|j        D ¦   «         ¦  «         Œ–Œèˆˆfd
„| j        D ¦   «         ‰
d<   ˆˆfd„‰	                     ¦   «         D ¦   «         ‰
d<   | j        rv|                      ‰
d         ¦  «                             ¦   «         D ]H\  }}‰
d         |         d                              d„ |                     ¦   «         D ¦   «         ¦  «         ŒIt%          j        ‰
¦  «        S )Nc                 ó4   •— i | ]\  }}|‰d          |         “ŒS ©r1   r	   )r   r   r   rT   s      €r   r   z'GradioForm.snapshot.<locals>.<dictcomp>3   s)   ø€ ÐkÐkÐk¹¸ÀC�)˜X hÔ/°Ô4ÐkÐkÐkr
   c                 ó6   — i | ]}|t          j        ¦   «         “ŒS r	   )rE   Úupdater   s     r   r   z'GradioForm.snapshot.<locals>.<dictcomp>4   s    € ÐbÐbÐb¨i�9�bœi™kœkÐbÐbÐbr
   c                 ó,   — i | ]}|t          ¦   «         “ŒS r	   )Úsetr   s     r   r   z'GradioForm.snapshot.<locals>.<dictcomp>5   s   € ÐBÐBÐB¨Y˜	¥3¡5¤5ÐBÐBÐBr
   c                 óF   •— g | ]}‰                      ||j        ¦  «        ‘ŒS r	   )Úgetr!   )r   r   r1   s     €r   r   z'GradioForm.snapshot.<locals>.<listcomp>8   s)   ø€ ÐYÐYÐY¸y�F—J’J˜y¨)¬/Ñ:Ô:ÐYÐYÐYr
   é   Ú__type__rq   r    c              3   ó0   •K  — | ]}|‰v ¯‰|         V — Œd S r*   r	   )r   Úitemr   s     €r   r.   z&GradioForm.snapshot.<locals>.<genexpr>?   s3   øè è € Ð2gÐ2gÀ$ÐZ^ÐbfÐZfÐZf°4¸´:ÐZfÐZfÐZfÐZfÐ2gÐ2gr
   c                 óL   •— g | ] }‰|         t          ‰|         ¦  «        d œ‘Œ!S )©rq   Údependencies)Úsorted)r   Úcr|   Úupdatess     €€r   r   z'GradioForm.snapshot.<locals>.<listcomp>@   s3   ø€ ÐwÐwÐwÐ`a w¨q¤zÅ6È,ÐWXÌ/ÑCZÔCZÐ[Ð[ÐwÐwÐwr
   Úviewc                 óŒ   •— i | ]@\  }}|d „ ‰|                               ¦   «         D ¦   «         t          ‰|         ¦  «        dœ“ŒAS )c                 ó&   — i | ]\  }}|d k    ¯||“ŒS r    r	   ©r   ÚkÚvs      r   r   z2GradioForm.snapshot.<locals>.<dictcomp>.<dictcomp>A   s*   € Ð.cÐ.cÐ.c¹¸¸1ÐVWÐ[bÒVbÐVb¨q°!ÐVbÐVbÐVbr
   r{   )Úitemsr}   )r   r~   r   r|   r   s      €€r   r   z'GradioForm.snapshot.<locals>.<dictcomp>A   s‘   ø€ ð  jð  jð  jñ  SYð  STð  VY˜cÐ.cÐ.cÀÈÄ
×@PÒ@PÑ@RÔ@RÐ.cÑ.cÔ.cÕu{ð  }Ið  JKô  }Lñ  vMô  vMð  $Nð  $Nð  jð  jð  jr
   Úfieldsr1   c                 ó&   — i | ]\  }}|d k    ¯||“ŒS r    r	   rƒ   s      r   r   z'GradioForm.snapshot.<locals>.<dictcomp>D   s*   € Ð9jÐ9jÐ9jÁ4À1ÀaÐ]^ÐbiÒ]iÐ]i¸!¸QÐ]iÐ]iÐ]ir
   )rB   rT   r?   r+   r   rD   r@   r   r&   r$   Úlenr'   Ú
isinstanceru   rE   rq   r†   r   rG   rH   )r-   r(   ÚargsÚresultÚresultsr   rq   r   r|   r   rT   r   r1   s           @@@@@r   rT   zGradioForm.snapshot1   sº  øøøøø€ Ø”9×%Ò%Ñ'Ô'ˆØkÐkÐkÐkÍ3ÈtÌÐ`dÔ`iÑKjÔKjÐkÑkÔkˆØbÐbÐ;a¸T¼_Ð;aÈtÔO`Ð;aÐbÑbÔbˆØBÐB¸'ÐBÑBÔBˆÝ•C˜œ¨¬Ñ3Ô3Ñ4Ô4ˆØÔ%ð 	hð 	hˆEØYÐYÐYÐYÈEÌLÐYÑYÔYˆDØ�U”X˜t�_ˆFÝ"% e¤mÑ"4Ô"4¸Ò"9Ð"9�v�h�h¸vˆGÝ%(¨¬¸Ñ%@Ô%@ð hð hÑ!�	˜6Ý#-¨fµdÑ#;Ô#;ÐÀÇ
Â
È:Ñ@VÔ@VÐZbÒ@bÐ@b˜˜ÕhjÔhqÐx~ÐhÑhÔh�Ø Ð'Ð'Ø˜IÔ&×-Ò-¨fÑ5Ô5Ð5Ø  Ô+×2Ò2Ð2gÐ2gÐ2gÐ2gÈ%Ì,Ð2gÑ2gÔ2gÑgÔgÐgøð	hð
 xÐwÐwÐwÐwÐeiÔevÐwÑwÔwˆ�Ñð jð  jð  jð  jð  jð  ]a÷  ]gò  ]gñ  ]iô  ]ið  jñ  jô  jˆ�ÑØÔð 	lØ#×1Ò1°(¸8Ô2DÑEÔE×KÒKÑMÔMð lð l‘��VØ˜Ô" 3Ô'¨Ô1×8Ò8Ð9jÐ9jÈ6Ï<Ê<É>Ì>Ð9jÑ9jÔ9jÑkÔkÐkÐkÝŒz˜(Ñ#Ô#Ð#r
   )r‡   c                óª   ‡ ‡‡‡‡‡	— ˆfd„‰ j         D ¦   «         Š	ˆˆ	ˆˆˆ fd„} ||f‰ j        g‰¢g ‰¢‰ j        ‘dœ|¤Ž}‰                      |¦  «        S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r	   )Úindex)r   r   r&   s     €r   r   z(GradioForm.bind_save.<locals>.<listcomp>H   s%   ø€ ÐLÐLÐL¨y�6—<’< 	Ñ*Ô*ÐLÐLÐLr
   c                 ób  •‡ ‡‡	— ˆfd„t          ‰j        ‰¦  «        D ¦   «         Š	t          j        ‰ ¦  «        Š ‰	}‰
�I‰j                             ¦   «         d         }i |¥ˆ	fd„‰
D ¦   «         ¥}i ‰ ¥di |¥ˆ fd„‰
D ¦   «         ¥i¥Š ˆˆˆˆfd„}	 ‰j                             ‰ ||¦  «        }ny# t          $ rl}t          j	        t          |¦  «        ¦  «         ‰                     ¦   «         }‰r)g t          j        ¦   «         ft          ‰¦  «        z  ¢|‘R n|cY d }~S d }~ww xY wt          j        ‰                     ¦   «         ¦  «        }t          |t          ¦  «        r‰
€‰	nˆ	fd„‰
D ¦   «         |d<   t          j        |¦  «        }‰r#g t          |t          ¦  «        r|j        n|¢|‘R n|S )Nc                 ó(   •— i | ]\  }}|‰|         “ŒS r	   r	   )r   r   r�   r‹   s      €r   r   z8GradioForm.bind_save.<locals>.submit.<locals>.<dictcomp>K   s#   ø€ ÐPÐPÐP©*¨#¨u�S˜$˜uœ+ÐPÐPÐPr
   r1   c                 ó"   •— i | ]}|‰|         “ŒS r	   r	   ©r   r   Úlocals     €r   r   z8GradioForm.bind_save.<locals>.submit.<locals>.<dictcomp>P   s   ø€ Ð*MÐ*MÐ*M¸s¨3°°c´
Ð*MÐ*MÐ*Mr
   c                 ó.   •— i | ]}|‰d          |         “ŒS ro   r	   )r   r   rI   s     €r   r   z8GradioForm.bind_save.<locals>.submit.<locals>.<dictcomp>Q   s'   ø€ Ð@pÐ@pÐ@pÐbeÀÀhÈxÔFXÐY\ÔF]Ð@pÐ@pÐ@pr
   c                 óx   •— t          ‰¦  «        }t          ‰j        ‰¦  «        D ]\  }}| |         ||<   Œ ‰|Ž S r*   )r>   r?   r   )r1   Úmergedr   r�   r‹   ÚindicesÚsaver-   s       €€€€r   Úcommitz4GradioForm.bind_save.<locals>.submit.<locals>.commitR   sH   ø€ Ý˜d™œ�Ý"% d¤i°Ñ"9Ô"9ð 0ð 0‘J�C˜Ø$*¨3¤K�F˜5‘M�MØ�t˜V�}Ð$r
   c                 ó"   •— i | ]}|‰|         “ŒS r	   r	   r”   s     €r   r   z8GradioForm.bind_save.<locals>.submit.<locals>.<dictcomp>_   s    ø€ Ð?bÐ?bÐ?bÐTWÀÀUÈ3ÄZÐ?bÐ?bÐ?br
   Úack)r?   r   rG   ri   rB   rT   Úsubmitr   rE   ÚInfor   rq   r‰   rŠ   r   rH   r,   )rI   r‹   Ú	submittedÚcurrentr›   rŒ   Úerrorrj   rT   r•   r‡   r™   r'   rš   r-   s   ``       @€€€€€r   rž   z$GradioForm.bind_save.<locals>.submitJ   s  øøøø€ ØPÐPÐPÐP½¸D¼IÀwÑ8OÔ8OÐPÑPÔPˆEÝ”z (Ñ+Ô+ˆHØˆIØÐ!Øœ)×,Ò,Ñ.Ô.¨xÔ8�ØN˜wÐNÐ*MÐ*MÐ*MÐ*MÀfÐ*MÑ*MÔ*MÐN�	Ør˜hÐr¨Ð2q°WÐ2qÐ@pÐ@pÐ@pÐ@pÐioÐ@pÑ@pÔ@pÐ2qÐrÐr�ð%ð %ð %ð %ð %ð %ð %ð %ð
[Øœ×)Ò)¨(°I¸vÑFÔF��øÝð [ð [ð [Ý”�˜E™
œ
Ñ#Ô#Ð#ØŸ-š-™/œ/�ØFMÐZÐB�2œ9™;œ;˜.­3¨w©<¬<Ñ7ÐB¸'ÐBÐBÐBÐSZÐZÐZÐZÐZÐZÐZøøøøð[øøøõ ”z $§-¢-¡/¤/Ñ2Ô2ˆHÝ˜&¥%Ñ(Ô(ð cØ+1¨> % %Ð?bÐ?bÐ?bÐ?bÐ[aÐ?bÑ?bÔ?b�˜‘Ý”j Ñ*Ô*ˆGØ[bÐoÐW¥z°&½%Ñ'@Ô'@ÐL�f”m�mÀfÐWÈwÐWÐWÐWÐhoÐos   ÂB- Â-
D#Â7A!DÄD#ÄD#)r&   r'   )r+   rI   rJ   rU   )
r-   rb   rš   r&   r'   r‡   Úevent_optionsrž   r(   r™   s
   ` ````   @r   Ú	bind_savezGradioForm.bind_saveG   s§   øøøøøø€ ØLÐLÐLÐL¸D¼OÐLÑLÔLˆð	pð 	pð 	pð 	pð 	pð 	pð 	pð 	pð 	pð2 �˜Ðr¨¬Ð'?¸Ð'?ÐI`È7ÐI`ÐTXÔT_ÐI`ÐrÐrÐdqÐrÐrˆØ×Ò Ñ&Ô&Ð&r
   r*   )Ú__name__Ú
__module__Ú__qualname__rf   rU   rT   r¤   r	   r
   r   r   r   
   s–   € € € € € Ø;?ÐG\ÐG\ÐcgÐuwð  HLð  SWð oð oð oð oð oð>~ð ~ð ~ð ~ð$ð $ð $ð, CGð 'ð 'ð 'ð 'ð 'ð 'ð 'r
   r   )Ú__doc__rG   ÚgradiorE   Úshared.utils.form_syncr   r   r   r	   r
   r   ú<module>r«      st   ðà JÐ JØ €€€à Ð Ð Ð à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6ðZ'ð Z'ð Z'ð Z'ð Z'ñ Z'ô Z'ð Z'ð Z'ð Z'r
   