You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.6 KiB
106 lines
3.6 KiB
{# |
|
/** |
|
* @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> element. |
|
* - 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. |
|
* - title_display: Title display setting. |
|
* - inline_items: Boolean indicating whether the <fieldset> items are inline. |
|
* |
|
* @see template_preprocess_fieldset() |
|
* @see olives_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 inline_items %} |
|
<div class="container-inline"> |
|
{% endif %} |
|
|
|
{% if description_display == 'before' and description.content %} |
|
<div{{ description.attributes.addClass(description_classes) }}>{{ description.content }}</div> |
|
{% 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>
|
|
|