104 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Twig
		
	
	
	
	
	
		
		
			
		
	
	
			104 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Twig
		
	
	
	
	
	
| 
								 | 
							
								{#
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @file
							 | 
						||
| 
								 | 
							
								 * Theme override for a fieldset element and its children.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Available variables:
							 | 
						||
| 
								 | 
							
								 * - attributes: HTML attributes for the fieldset element.
							 | 
						||
| 
								 | 
							
								 * - errors: (optional) Any errors for this fieldset element, may not be set.
							 | 
						||
| 
								 | 
							
								 * - required: Boolean indicating whether the fieldset element is required.
							 | 
						||
| 
								 | 
							
								 * - legend: The legend element containing the following properties:
							 | 
						||
| 
								 | 
							
								 *   - title: Title of the fieldset, intended for use as the text of the legend.
							 | 
						||
| 
								 | 
							
								 *   - attributes: HTML attributes to apply to the legend.
							 | 
						||
| 
								 | 
							
								 * - description: The description element containing the following properties:
							 | 
						||
| 
								 | 
							
								 *   - content: The description content of the fieldset.
							 | 
						||
| 
								 | 
							
								 *   - attributes: HTML attributes to apply to the description container.
							 | 
						||
| 
								 | 
							
								 * - description_display: Description display setting. It can have these values:
							 | 
						||
| 
								 | 
							
								 *   - before: The description is output before the element.
							 | 
						||
| 
								 | 
							
								 *   - after: The description is output after the element (default).
							 | 
						||
| 
								 | 
							
								 *   - invisible: The description is output after the element, hidden visually
							 | 
						||
| 
								 | 
							
								 *     but available to screen readers.
							 | 
						||
| 
								 | 
							
								 * - children: The rendered child elements of the fieldset.
							 | 
						||
| 
								 | 
							
								 * - prefix: The content to add before the fieldset children.
							 | 
						||
| 
								 | 
							
								 * - suffix: The content to add after the fieldset children.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @see template_preprocess_fieldset()
							 | 
						||
| 
								 | 
							
								 * @see claro_preprocess_fieldset()
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#}
							 | 
						||
| 
								 | 
							
								{%
							 | 
						||
| 
								 | 
							
								  set classes = [
							 | 
						||
| 
								 | 
							
								    'fieldset',
							 | 
						||
| 
								 | 
							
								    attributes.hasClass('fieldgroup') ? 'fieldset--group',
							 | 
						||
| 
								 | 
							
								    'js-form-item',
							 | 
						||
| 
								 | 
							
								    'form-item',
							 | 
						||
| 
								 | 
							
								    'js-form-wrapper',
							 | 
						||
| 
								 | 
							
								    'form-wrapper',
							 | 
						||
| 
								 | 
							
								  ]
							 | 
						||
| 
								 | 
							
								%}
							 | 
						||
| 
								 | 
							
								{%
							 | 
						||
| 
								 | 
							
								  set wrapper_classes = [
							 | 
						||
| 
								 | 
							
								    'fieldset__wrapper',
							 | 
						||
| 
								 | 
							
								    attributes.hasClass('fieldgroup') ? 'fieldset__wrapper--group',
							 | 
						||
| 
								 | 
							
								  ]
							 | 
						||
| 
								 | 
							
								%}
							 | 
						||
| 
								 | 
							
								{%
							 | 
						||
| 
								 | 
							
								  set legend_span_classes = [
							 | 
						||
| 
								 | 
							
								    'fieldset__label',
							 | 
						||
| 
								 | 
							
								    attributes.hasClass('fieldgroup') ? 'fieldset__label--group',
							 | 
						||
| 
								 | 
							
								    required ? 'js-form-required',
							 | 
						||
| 
								 | 
							
								    required ? 'form-required',
							 | 
						||
| 
								 | 
							
								  ]
							 | 
						||
| 
								 | 
							
								%}
							 | 
						||
| 
								 | 
							
								{%
							 | 
						||
| 
								 | 
							
								  set legend_classes = [
							 | 
						||
| 
								 | 
							
								    'fieldset__legend',
							 | 
						||
| 
								 | 
							
								    attributes.hasClass('fieldgroup') and not attributes.hasClass('form-composite') ? 'fieldset__legend--group',
							 | 
						||
| 
								 | 
							
								    attributes.hasClass('form-composite') ? 'fieldset__legend--composite',
							 | 
						||
| 
								 | 
							
								    title_display == 'invisible' ? 'fieldset__legend--invisible' : 'fieldset__legend--visible',
							 | 
						||
| 
								 | 
							
								  ]
							 | 
						||
| 
								 | 
							
								%}
							 | 
						||
| 
								 | 
							
								{%
							 | 
						||
| 
								 | 
							
								  set description_classes = [
							 | 
						||
| 
								 | 
							
								   'fieldset__description',
							 | 
						||
| 
								 | 
							
								  ]
							 | 
						||
| 
								 | 
							
								%}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<fieldset{{ attributes.addClass(classes) }}>
							 | 
						||
| 
								 | 
							
								  {# Always wrap fieldset legends in a <span> for CSS positioning. #}
							 | 
						||
| 
								 | 
							
								  {% if legend.title %}
							 | 
						||
| 
								 | 
							
								  <legend{{ legend.attributes.addClass(legend_classes) }}>
							 | 
						||
| 
								 | 
							
								    <span{{ legend_span.attributes.addClass(legend_span_classes) }}>{{ legend.title }}</span>
							 | 
						||
| 
								 | 
							
								  </legend>
							 | 
						||
| 
								 | 
							
								  {% endif %}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <div{{ content_attributes.addClass(wrapper_classes) }}>
							 | 
						||
| 
								 | 
							
								    {% if description_display == 'before' and description.content %}
							 | 
						||
| 
								 | 
							
								      <div{{ description.attributes.addClass(description_classes) }}>{{ description.content }}</div>
							 | 
						||
| 
								 | 
							
								    {% endif %}
							 | 
						||
| 
								 | 
							
								    {% if inline_items %}
							 | 
						||
| 
								 | 
							
								      <div class="container-inline">
							 | 
						||
| 
								 | 
							
								    {% endif %}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    {% if prefix %}
							 | 
						||
| 
								 | 
							
								      <span class="fieldset__prefix">{{ prefix }}</span>
							 | 
						||
| 
								 | 
							
								    {% endif %}
							 | 
						||
| 
								 | 
							
								    {{ children }}
							 | 
						||
| 
								 | 
							
								    {% if suffix %}
							 | 
						||
| 
								 | 
							
								      <span class="fieldset__suffix">{{ suffix }}</span>
							 | 
						||
| 
								 | 
							
								    {% endif %}
							 | 
						||
| 
								 | 
							
								    {% if errors %}
							 | 
						||
| 
								 | 
							
								      <div class="fieldset__error-message">
							 | 
						||
| 
								 | 
							
								        {{ errors }}
							 | 
						||
| 
								 | 
							
								      </div>
							 | 
						||
| 
								 | 
							
								    {% endif %}
							 | 
						||
| 
								 | 
							
								    {% if description_display in ['after', 'invisible'] and description.content %}
							 | 
						||
| 
								 | 
							
								      <div{{ description.attributes.addClass(description_classes) }}>{{ description.content }}</div>
							 | 
						||
| 
								 | 
							
								    {% endif %}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    {% if inline_items %}
							 | 
						||
| 
								 | 
							
								      </div>
							 | 
						||
| 
								 | 
							
								    {% endif %}
							 | 
						||
| 
								 | 
							
								  </div>
							 | 
						||
| 
								 | 
							
								</fieldset>
							 |