{% set id = id|default('') %}
{% set name = name|default('') %}
{% set label = label|default('') %}
{% set styleModifier = styleModifier|default('') %}
{% set className = className|default('') %}
{% set classNames = {
input: inputModifier|default(''),
inputWrapper: inputWrapperModifier|default(''),
label: labelModifier|default(''),
error: errorModifier|default(''),
helpText: ''
}|merge(classNames|default({})) %}
{% set required = required|default(false) %}
{% set type = type|default('text') %}
{% set disabled = disabled|default(false) %}
{% set readonly = readonly|default(false) %}
{% set inputAttributes = inputAttributes|default({}) %}
{% if errors[name]|default(false) %}
{% set errors = [errors[name]] %}
{% else %}
{% set errors = [] %}
{% endif %}
{% set inputAttributes = inputAttributes
|merge(id is defined ? {id: id} : {})
|merge({type: type})
|merge(name is defined ? {name: name} : {})
|merge(placeholder is defined ? {placeholder: placeholder} : {})
|merge(value is defined ? {value: value} : {})
|merge(required ? {required: ''} : {})
|merge(disabled ? {disabled: ''} : {})
|merge(readonly ? {readonly: ''} : {})
|merge(helpText is defined ? {'aria-describedby': id ~ '-help-block'} : {}) %}
<div class="js-form-validation__group {{ (errors|length > 0) ? 'has-error' : '' }} {{ type == "file" ? 'form-file' : '' }} {{ styleModifier }} {{ className }}">
<div class="form-group {{ attribute(classNames, 'inputWrapper') }} ">
{% if type != "file" %}
{% block label %}
{{ include('includes/form_elements/includes/form-control-label.html.twig', {
className: 'form-label ' ~ classNames.label
}) }}
{% endblock %}
{% block input %}
<input class=" form-control {{ (errors|length > 0) ? 'is-invalid' : '' }} {{ attribute(classNames, 'input') }}"
{% for key, value in inputAttributes %}
{{ key }}="{{ value }}"
{% endfor %}
>
{% endblock %}
{% else %}
<input class=" form-control border-0 {{ (errors|length > 0) ? 'is-invalid' : '' }} {{ attribute(classNames, 'input') }}"
{% for key, value in inputAttributes %}
{{ key }}="{{ value }}"
{% endfor %}
>
{{ include('includes/form_elements/includes/form-control-label.html.twig', {
className: 'visually-hidden form-label ' ~ classNames.label
}) }}
<div class="form-file__add"><span class="icon icon-download icon-rotate-180" aria-hidden="true"></span>
{{ 'form.file-select'|trans }}</div>
{% endif %}
</div>
{% block erros %}
{{ include('includes/form_elements/includes/form-errors.html.twig', {
className: classNames.error
}) }}
{% endblock %}
{% block help %}
{{ include('includes/form_elements/includes/form-control-help-text.html.twig', {
className: classNames.helpText
}) }}
{% endblock %}
</div>