# macro field_errors(field)
# for error in field.errors
{{error}}
# endfor
# endmacro
# macro field_description(field)
# if field.description
{{field.description}}
# endif
# endmacro
# macro field_optional(field)
# if not field.flags.required
(optional)
# endif
# endmacro
# macro input_field(field, prefix='', suffix='')
# endmacro
# macro text_field(field)
{{input_field(field, type='text', **kwargs)}}
# endmacro
# macro password_field(field)
{{input_field(field, type='password', **kwargs)}}
# endmacro
# macro password_visible_field(field, size='')
# endmacro
# macro number_field(field)
{{input_field(field, type='number', **kwargs)}}
# endmacro
# macro date_field(field)
{{input_field(field, type='date', **kwargs)}}
# endmacro
# macro datetime_field(field)
{{input_field(field, type='datetime-local', **kwargs)}}
# endmacro
# macro email_field(field)
{{input_field(field, type='email', **kwargs)}}
# endmacro
# macro select_field(field)
{{input_field(field, **kwargs)}}
# endmacro
# macro hidden_field(field)
{{field(type='hidden', **kwargs)}}
# endmacro
# macro textarea_field(field, rows=4)
{{field.label(class='control-label')}}
{{field_optional(field)}}
{{field(class='form-control', rows=rows, **kwargs)}}
{{field_errors(field)}}
{{field_description(field)}}
# endmacro
# macro checkbox_field(field)
{{field_errors(field)}}
{{field_description(field)}}
# endmacro
# macro list_input_field(field, type)
# endmacro
# macro multiple_checkbox_field(field)
{{list_input_field(field, 'checkbox')}}
# endmacro
# macro radio_field(field)
{{list_input_field(field, 'radio')}}
# endmacro
# macro recaptcha_field(field)
# if field
{{field.widget.server}}
{{field.widget.script_url}}
{{field.widget.frame_url}}
{{field}}
{{field_errors(field)}}
{{field_description(field)}}
# endif
# endmacro
# macro panel_fields(name, fields, help)
# for field in (fields if is_iterable(fields) else [fields]):
{{text_field(field)}}
# endfor
# if help
{{help|safe}}
# endif
# endmacro
# macro data_loading_text(text='Please wait..', icon='fa fa-spin fa-spinner')
# if icon
data-loading-text=" {{text}}"
# else
data-loading-text="{{text}}"
# endif
# endmacro