
    vX                     (   d dl Z d dlmZmZmZ 	 d dlmZ d Zn# e$ r d ZY nw xY wddl	m
Z
 dZ e j        d	d
e          ZdZdZdZ G d de          Z G d de          Z G d de          Z G d de          ZddZ G d de          ZdS )    N)	Blueprintcurrent_appurl_for)HiddenFieldc                 ,    t          | t                    S N)
isinstancer   fields    ]/var/www/book.euthymeo.com/html/venv/lib/python3.11/site-packages/flask_bootstrap/__init__.pyis_hidden_field_filterr      s    %---    c                      t          d          )NzWTForms is not installed.)RuntimeErrorr
   s    r   r   r      s    6777r      )render_formz3.3.7.1.dev1z^(\d+\.\d+\.\d+).*z\1z1.12.4z3.7.3z1.4.2c                       e Zd ZdZd ZdS )CDNzBase class for CDN objects.c                     t           )z!Return resource url for filename.)NotImplementedErrorselffilenames     r   get_resource_urlzCDN.get_resource_url    s    !!r   N)__name__
__module____qualname____doc__r    r   r   r   r      s)        %%" " " " "r   r   c                        e Zd ZdZddZd ZdS )	StaticCDNzA CDN that serves content from the local application.

    :param static_endpoint: Endpoint to use.
    :param rev: If ``True``, honor ``BOOTSTRAP_QUERYSTRING_REVVING``.
    staticFc                 "    || _         || _        d S r   )static_endpointrev)r   r$   r%   s      r   __init__zStaticCDN.__init__,   s    .r   c                 t    i }| j         rt          j        d         r
t          |d<   t	          | j        fd|i|S )NBOOTSTRAP_QUERYSTRING_REVVING	bootstrapr   )r%   r   config__version__r   r$   )r   r   
extra_argss      r   r   zStaticCDN.get_resource_url0   sI    
8 	2*+JK 	2&1J{#t+MMhM*MMMr   N)r"   Fr   r   r   r   r&   r   r   r   r   r!   r!   %   sF            N N N N Nr   r!   c                       e Zd ZdZd Zd ZdS )WebCDNzlServes files from the Web.

    :param baseurl: The baseurl. Filenames are simply appended to this URL.
    c                     || _         d S r   baseurl)r   r2   s     r   r&   zWebCDN.__init__?   s    r   c                     | j         |z   S r   r1   r   s     r   r   zWebCDN.get_resource_urlB   s    |h&&r   Nr-   r   r   r   r/   r/   9   s<         
  ' ' ' ' 'r   r/   c                       e Zd ZdZd Zd ZdS )ConditionalCDNa
  Serves files from one CDN or another, depending on whether a
    configuration value is set.

    :param confvar: Configuration variable to use.
    :param primary: CDN to use if the configuration variable is ``True``.
    :param fallback: CDN to use otherwise.
    c                 0    || _         || _        || _        d S r   )confvarprimaryfallback)r   r7   r8   r9   s       r   r&   zConditionalCDN.__init__O   s     r   c                     t           j        | j                 r| j                            |          S | j                            |          S r   )r   r*   r7   r8   r   r9   r   s     r   r   zConditionalCDN.get_resource_urlT   s@    dl+ 	;<00:::}--h777r   Nr-   r   r   r   r5   r5   F   s<         ! ! !
8 8 8 8 8r   r5   Tc                 4   t           j        }d|k    r|d         }|r&dt          |                     dd                    z  } t           j        d         d         }||                             |           }|                    d          r|d	         rd
|z  }|S )as  Resource finding function, also available in templates.

    Tries to find a resource, will force SSL depending on
    ``BOOTSTRAP_CDN_FORCE_SSL`` settings.

    :param filename: File to find a URL for.
    :param cdn: Name of the CDN to use.
    :param use_minified': If set to ``True``/``False``, use/don't use
                          minified. If ``None``, honors
                          ``BOOTSTRAP_USE_MINIFIED``.
    :param local: If ``True``, uses the ``local``-CDN when
                  ``BOOTSTRAP_SERVE_LOCAL`` is enabled. If ``False``, uses
                  the ``static``-CDN instead.
    :return: A URL.
    NBOOTSTRAP_USE_MINIFIEDz	%s.min.%s.r   r)   cdnsz//BOOTSTRAP_CDN_FORCE_SSLzhttps:%s)r   r*   tuplersplit
extensionsr   
startswith)r   cdnuse_minifiedlocalr*   r>   resource_urls          r   bootstrap_find_resourcerH   Z   s      F|67 @xsA'>'>!?!??!+.v6D9--h77Lt$$ 10I)J 1!L0r   c                       e Zd ZddZd ZdS )	BootstrapNc                 8    ||                      |           d S d S r   )init_app)r   apps     r   r&   zBootstrap.__init__|   s&    ?MM# ?r   c           	      R   |j                             dd           |j                             dd           |j                             dd           |j                             dd           |j                             dd            t          dt          d	d
|j        dz   |j         d                   }|                    t                     |                    |           t          |j	        j
        d<   t          |j	        j
        d<   |j	                            d           t          |d          si |_        t          dd          }t                      }|fd} |t!          dt"          z            |          } |t!          dt$          z            |          } |t!          dt&          z                      } |t!          dt(          z                      }	d||||||	di|j        d<   |j                            di           }
t          dz   df}||
d<   ||
d <   d S )Nr<   Tr?   Fr(   BOOTSTRAP_SERVE_LOCALBOOTSTRAP_LOCAL_SUBDOMAINr)   	templatesr"   z
/bootstrap)template_folderstatic_folderstatic_url_path	subdomainbootstrap_is_hidden_fieldrH   zjinja2.ext.dorB   zbootstrap.static)r%   c                 $    t          d||           S )NrO   )r5   )rD   r8   s     r   lwrapz!Bootstrap.init_app.<locals>.lwrap   s    !"97CHHHr   z6//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/%s/z+//cdnjs.cloudflare.com/ajax/libs/jquery/%s/z.//cdnjs.cloudflare.com/ajax/libs/html5shiv/%s/z///cdnjs.cloudflare.com/ajax/libs/respond.js/%s/r>   )rF   r"   r)   jquery	html5shivz
respond.jsnav_renderersz.navBootstrapRenderer)r*   
setdefaultr   r   rT   add_app_template_filterr   register_blueprintr   	jinja_envglobalsrH   add_extensionhasattrrB   r!   r/   BOOTSTRAP_VERSIONJQUERY_VERSIONHTML5SHIV_VERSIONRESPONDJS_VERSION)r   rM   	blueprintrF   r"   rX   r)   rY   rZ   	respondjs	renderersrenderer_names               r   rL   zBootstrap.init_app   s   
6===
7???
=tDDD
5u===
94@@@'"/,>j!<=? ? ?	 	))+666y))) # 	9: $ 	78##O444sL)) 	 CN,$777% 	I 	I 	I 	I EK$% & &',. .	 @!" # #$)+ + EC$% & &' '	 ED$% & &' '	
  & &' 	'
{# N--orBB	!F*,?@!.	+ (	$r   r   )r   r   r   r&   rL   r   r   r   rJ   rJ   {   s<           F( F( F( F( F(r   rJ   )NT)reflaskr   r   r   wtforms.fieldsr   r   ImportErrorformsr   r+   subrd   re   rf   rg   objectr   r!   r/   r5   rH   rJ   r   r   r   <module>rs      s   
			 1 1 1 1 1 1 1 1 1 1	.******. . . .  8 8 88 8 8 8 88      BF0%EE   " " " " "& " " "N N N N N N N N(
' 
' 
' 
' 
'V 
' 
' 
'8 8 8 8 8V 8 8 8(   BK( K( K( K( K( K( K( K( K( K(s    %%