
    Dh                     |   S SK rS SKJr  S SKrS SKrSSK	J
r
  SSKJr  SSKJr  \R                  (       a<  SSKJr  SSKJr  \R(                  " S	\S
9r\R,                  \\R.                  \   4   rOSrSrSr\R(                  " S5      r " S S\R4                  \   5      r " S S5      r\" 5       r " S S5      rg)    N)metadata   )	HookError)ResourceType)ClientsideFuncType)Dash)	ComponentComponentType)boundHookDataTypec                   ,    \ rS rSrSS\4S jjrS rSrg)_Hook   Ndatac                 4    Xl         X0l        X@l        X l        g N)funcfinalr   priority)selfr   r   r   r   s        ^C:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\dash/_hooks.py__init___Hook.__init__   s    	
	     c                 &    U R                   " U0 UD6$ r   )r   )r   argskwargss      r   __call___Hook.__call__#   s    yy$)&))r   )r   r   r   r   )r   FN)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__ r   r   r   r      s    !L !*r   r   c                      \ rS rSrSS jr   SS\S\R                  S\R                  \	   S	\
S
\R                  \   4
S jjrS\S\R                  \   4S jrS S\R                  \	   S	\
4S jjrS S\R                  \	   S	\
4S jjr    S!S\R                  \   S\R$                  \   S\R                  \	   S	\
4S jjrS S\R                  \	   S	\
4S jjrSSS.S\R                  \	   S	\
4S jjrS\4S jrS\R                  \   4S jrS\R                  \   4S jrS S\R                  \	   4S jjr S S\S\R                  \	   4S jjrSrg)"_Hooks'   returnNc                 Z    / / / / / / / S.U l         / U l        / U l        / U l        0 U l        g )N)setuplayoutrouteserrorcallbackindexcustom_data)_ns_js_dist	_css_dist_clientside_callbacks_finals)r   s    r   r   _Hooks.__init__(   sF    
   	"
 r   Fhookr   r   r   r   c                    U(       aE  U R                   R                  U5      nU(       a  [        S5      e[        X$US9U R                   U'   g U R                  R                  U/ 5      nU=(       d    SnU(       d'  [        U5      (       a  [        S U 5       5      n	U	S-
  nUR                  [        X(US95        [        USS S	9U R                  U'   g )
NzFinal hook already present)r   r   c              3   8   #    U  H  oR                   v   M     g 7fr   r   ).0hs     r   	<genexpr>"_Hooks.add_hook.<locals>.<genexpr>N   s     73azz3s   r   )r   r   Tc                     U R                   $ r   r;   )r=   s    r   <lambda>!_Hooks.add_hook.<locals>.<lambda>R   s    r   )reversekey)	r6   getr   r   r2   lenminappendsorted)
r   r8   r   r   r   r   existinghksppriority_mins
             r   add_hook_Hooks.add_hook;   s     ||''-H <==!&t!>DLLhhll4$MCHH7377Lq A

556T7KLr   c                     U R                   R                  US 5      nU(       a  U/nO/ nU R                  R                  U/ 5      U-   $ r   )r6   rE   r2   )r   r8   r   s      r   	get_hooks_Hooks.get_hooksT   sA      t,GEExx||D"%--r   c                 \   ^ ^^ S[         R                  [        /[        4   4UUU 4S jjnU$ )zV
Run a function when serving the layout, the return value
will be used as the layout.
r   c                 ,   > TR                  SU TTS9  U $ )Nr,   r   r   rN   r   r   r   r   s    r   _wrap_Hooks.layout.<locals>._wrapb   s    MM(D85MIKr   )_tCallable
LayoutType)r   r   r   rX   s   ``` r   r,   _Hooks.layout\   s+    	ZL*$<= 	 	 r   c                 T   ^ ^^ S[         R                  [        /S4   4UUU 4S jjnU$ )zE
Can be used to get a reference to the app after it is instantiated.
r   Nc                 ,   > TR                  SU TTS9  U $ )Nr+   rU   rV   rW   s    r   _setup_Hooks.setup.<locals>._setupm       MM'4(%MHKr   )rZ   r[   r   )r   r   r   r`   s   ``` r   r+   _Hooks.setuph   s*    
	dVT\2 	 	 r   namemethodsc                 n   ^ ^^^^ S[         R                  / [        R                  4   4UUUUU 4S jjnU$ )z!
Add a route to the Dash server.
r   c                 h   > T=(       d    U R                   nTR                  SU TT[        UTS9S9  U $ )Nr-   )rd   re   r   r   r   )r    rN   dict)r   _namer   re   rd   r   r   s     r   wrap_Hooks.route.<locals>.wrap~   s?    )DMMEMM!ug6   Kr   )rZ   r[   _fResponse)r   rd   re   r   r   rk   s   ````` r   route_Hooks.routes   s,    		r{{2r{{?3 		 		 r   c                 p   ^ ^^ S[         R                  [        /[         R                  4   4UUU 4S jjnU$ )z3Automatically add an error handler to the dash app.r   c                 ,   > TR                  SU TTS9  U $ )Nr.   rU   rV   rW   s    r   _error_Hooks.error.<locals>._error   rb   r   )rZ   r[   	ExceptionAny)r   r   r   rs   s   ``` r   r.   _Hooks.error   s/    	i["&&%89 	 	 r   rU   c                $   ^ ^^^^ UUUUU 4S jnU$ )9
Add a callback to all the apps with the hook installed.
c           
      V   > TR                  SU TT[        T5      [        T5      4S9  U $ )Nr/   rh   )rN   listri   )r   r   r   r   r   r   s    r   rk   _Hooks.callback.<locals>.wrap   s7    MM!4j$v,/   Kr   r%   )r   r   r   r   r   rk   s   ````` r   r/   _Hooks.callback   s    	 	 r   clientside_functionc                 >    U R                   R                  XU45        g)ry   N)r5   rH   )r   r~   r   r   s       r   clientside_callback_Hooks.clientside_callback   s     	""))+>f*MNr   distributionc                 :    U R                   R                  U5        g)zAdd js scripts to the page.N)r3   extendr   r   s     r   script_Hooks.script   s    \*r   c                 :    U R                   R                  U5        g)zAdd stylesheets to the page.N)r4   r   r   s     r   
stylesheet_Hooks.stylesheet   s    l+r   c                    ^ ^^ UUU 4S jnU$ )zModify the index of the apps.c                 ,   > TR                  SU TTS9  U $ )Nr0   rU   rV   rW   s    r   rk   _Hooks.index.<locals>.wrap   s'    MM!	   Kr   r%   )r   r   r   rk   s   ``` r   r0   _Hooks.index   s    	 r   	namespacec                    ^ ^^^ S[         R                  [         R                  /[         R                  4   4UUUU 4S jjnU$ )z
Add data to the callback_context.custom_data property under the namespace.

The hook function takes the current context_value and before the ctx is set
and has access to the flask request context.
r   c                 2   > TR                  SU TTST0S9  U $ )Nr1   r   rh   rV   )r   r   r   r   r   s    r   rk    _Hooks.custom_data.<locals>.wrap   s/    MM!!9-   Kr   )rZ   r[   Dictrv   )r   r   r   r   rk   s   ```` r   r1   _Hooks.custom_data   s3    	r{{BGG9bff#45 	 	 r   )r5   r4   r6   r3   r2   )r)   N)NFN)NF)N)GETNF)r    r!   r"   r#   r   strrZ   r[   Optionalintboolr   rN   Listr   rQ   r,   r+   Sequencero   r.   r/   r   r   r   r   r   r0   r1   r$   r%   r   r   r'   r'   '   s   . &**.MM kkM ++c"	M
 M kk,'M2.c .bggen .
r{{3/ 
t 
	bkk#. 	d 	 "&$,%)kk# S! ++c"	
 0bkk#. d  37e!{{3/?C&O#5O+277<#8 +,rww|'< ,bkk#.  HM(*C(8 r   r'   c                   X    \ rS rSrSr\r " S S5      r\S\4S j5       r	\S 5       r
Srg	)
HooksManager   Fc                   (    \ rS rSrS rS\4S jrSrg)HooksManager.HookErrorHandler   c                     Xl         g r   original)r   r   s     r   r   &HooksManager.HookErrorHandler.__init__   s    $Mr   errc                     S nU R                   (       a  U R                  U5      nS n[        R                  S5       H  nU" U5      nM     U=(       d    U$ )Nr.   )r   r   rQ   )r   r   resulthook_resultr8   s        r   r   &HooksManager.HookErrorHandler.__call__   sJ    F}}s+K$..w7"3i 8([(r   r   N)r    r!   r"   r#   r   ru   r   r$   r%   r   r   HookErrorHandlerr      s    	%	)	 	)r   r   r8   c                 8    U R                   R                  U5      $ r   )hooksrQ   )clsr8   s     r   rQ   HooksManager.get_hooks   s    yy""4((r   c                     U R                   (       a  g [        R                  " 5        H8  nUR                   H%  nUR                  S:w  a  M  UR                  5         M'     M:     g )N
dash_hooks)_registered_importlib_metadatadistributionsentry_pointsgroupload)r   distentrys      r   register_setuptools HooksManager.register_setuptools   sG    ??'557D**;;,.

	 + 8r   r%   N)r    r!   r"   r#   r   r   r   classmethodr   rQ   r   r$   r%   r   r   r   r      sE    KE) ) )S ) ) 
 
r   r   )typingrZ   	importlibr   r   typing_extensions_txflaskrm   
exceptionsr   	resourcesr   	_callbackr   TYPE_CHECKINGdashr   development.base_componentr	   TypeVarr
   Unionr   r\   r   Genericr   r'   r   r   r%   r   r   <module>r      s     5   ! # )5JJi@M-)??@JJMD {{>**CKK% *r rj 	" "r   