
    FUgs                         d dl mZmZmZmZmZmZ 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mZ dZd	 Zd
 Zd ZddZd ZddZ	 	 	 	 	 	 	 	 	 ddZddZefdZd ZdS )    )
EmailInputNumberInputPasswordInputTextarea	TextInputURLInput)	mark_safe   )get_bootstrap_settingget_field_rendererget_form_rendererget_formset_renderer)BootstrapError)
text_value)add_css_class
render_tagzmb-3c                 P    t          di |} || fi |                                S )z'Render a formset to a Bootstrap layout. )r   renderformsetkwargsrenderer_clss      O/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/bootstrap5/forms.pyrender_formsetr      s9    '11&11L<**6**11333    c                 P    t          di |} || fi |                                S )z,Render formset errors to a Bootstrap layout.r   )r   render_errorsr   s      r   render_formset_errorsr      s9    '11&11L<**6**88:::r   c                 P    t          di |} || fi |                                S )z$Render a form to a Bootstrap layout.r   )r   r   )formr   r   s      r   render_formr"      s9    $..v..L<''''..000r   allc                 R    t          di |} || fi |                    |          S )z)Render form errors to a Bootstrap layout.r   )r   r   )r!   typer   r   s       r   render_form_errorsr&      s;    $..v..L<''''55d;;;r   c                 P    t          di |} || fi |                                S )z%Render a field to a Bootstrap layout.r   )r   r   )fieldr   r   s      r   render_fieldr)   $   s9    %////L<((((//111r   N
form-label c                 T    i }|r||d<   |r||d<   |r||d<   t          d||           S )zRender a label with content.forclasstitlelabelattrscontent)r   )r3   	label_forlabel_classlabel_titler2   s        r   render_labelr7   *   sO    E ! e %$g %$ggUG<<<<r   btn-primaryc
                 4   i }
t          d|          }t          |                                                                          }|dk    rt          |d          }nl|dk    s|dk    rt          |d          }nO|dk    s|dk    rt          |d	          }n2|d
k    s|dk    rn%|r#t	          d                    |                    |r2|dvr#t	          d                    |                    |dk    r||
d<   t          ||          }||
d<   |rId}|r)|dk    r#t	          d                    |                    ||
d<   |
                    dd           nd}|	r|	|
d<   |r||
d<   |r||
d<   |r||
d<   t          ||
t          |                     S )zRender a button with content.btnxszbtn-xssmsmallzbtn-smlglargezbtn-lgmdmediumzFParameter "size" should be "xs", "sm", "lg" or empty ("{size}" given).)size)submitresetbuttonlinkzgParameter "button_type" should be "submit", "reset", "button", "link" or empty ("{button_type}" given).)button_typerF   r%   r.   azAButton of type "{button_type}" is not allowed a "href" parameter.hrefrolerE   idnamevaluer/   r1   )	r   r   lowerstripr   format
setdefaultr   r	   )r3   rG   button_classrB   rI   rL   rM   r/   extra_classesrK   r2   classestags                r   render_buttonrV   6   s    EE<00Gd!!##))++Dt||22	22	22	))	 yellrvlwwxxx 	(CCC /&[&11	   &  'E&MG]33GE'N 
 	;&00 SZZgrZss   f****	 d f g gc	'0B0BCCCCr   c                     |dk    rC|st          d          }|st          d          }|st          d          }t          |d          }| }|rd                    ||          }|rt	          |||          |z   }|S )	zRender a field with its label.
horizontalhorizontal_label_classhorizontal_field_classz&#160;zcontrol-labelz'<div class="{field_class}">{html}</div>)field_classhtml)r4   r5   )r   r	   r   rP   r7   )r(   r0   r[   r4   r5   layoutr   r\   s           r   render_field_and_labelr^   v   s     	J/0HIIK 	J/0HIIK 	(h''E#KAAD d8??K^b?cc XEYKPPPSWWKr   c                 0    d                     ||           S )zRender a Bootstrap form group.z(<div class="{css_class}">{content}</div>)	css_classr3   )rP   )r3   r`   s     r   render_form_groupra      s    5<<yZa<bbbr   c           	      j    t          | t          t          t          t          t
          t          f          S )z
    Return whether this widget should have a placeholder.

    Only text, text area, number, e-mail, url, password, number and derived inputs have placeholders.
    )
isinstancer   r   r   r   r   r   )widgets    r   is_widget_with_placeholderre      s"     fy(KXWdefffr   )r#   )Nr*   r+   )	Nr8   r+   r+   NNNr+   r+   )r+   Nr+   r+   ) django.formsr   r   r   r   r   r   django.utils.safestringr	   	bootstrapr   r   r   r   
exceptionsr   textr   utilsr   r   FORM_GROUP_CLASSr   r   r"   r&   r)   r7   rV   r^   ra   re   r   r   r   <module>rm      s   ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ - - - - - - i i i i i i i i i i i i & & & & & &       , , , , , , , , 4 4 4; ; ;1 1 1< < < <2 2 2	= 	= 	= 	= 			

	=D =D =D =D@   $ *: c c c c
g g g g gr   