{%- set class_name = [
"f-range-slider",
"u-posr u-z-index-1 d-flex flex-column gap-1",
props.disabled ? "--disabled" : null,
props.extra_class ? props.extra_class : null,
]|join(' ')|trim -%}
{%- set attrs = [
'class="' ~ class_name ~ '"',
] -%}
{%- if props.id is defined %}
{%- set attrs = attrs|merge(['id="' ~ props.id ~ '"']) -%}
{%- endif -%}
{%- if props.disabled == true %}
{% set attrs = attrs|merge(['disabled']) %}
{%- endif -%}
{%- if props.data is defined -%}
{%- set data_attrs = [] -%}
{%- for key, attribute in props.data -%}
{%- set data_attrs = data_attrs|merge(['data-' ~ key ~ '="' ~ attribute ~ '"']) -%}
{%- endfor -%}
{%- set data_attrs = data_attrs|join(' ')|trim -%}
{%- set attrs = attrs|merge([data_attrs]) -%}
{%- endif -%}
{%- set attrs = attrs|join(' ')|trim -%}
{# Input attrs #}
{%- set class_name_range = [
"f-range-slider__range",
"u-posa"
]|join(' ')|trim -%}
{%- set attrs_input = [] -%}
{%- if props.required == true %}
{%- set attrs_input = attrs_input|merge(['required']) -%}
{%- endif -%}
{%- if props.disabled == true %}
{%- set attrs_input = attrs_input|merge(['disabled']) -%}
{%- endif -%}
{%- if props.readonly == true %}
{%- set attrs_input = attrs_input|merge(['readonly']) -%}
{%- endif -%}
{%- if props.min is defined %}
{%- set attrs_input = attrs_input|merge(['min="' ~ props.min ~ '"']) -%}
{%- endif -%}
{%- if props.max is defined %}
{%- set attrs_input = attrs_input|merge(['max="' ~ props.max ~ '"']) -%}
{%- endif -%}
{%- if props.step is defined %}
{%- set attrs_input = attrs_input|merge(['step="' ~ props.step ~ '"']) -%}
{%- endif -%}
{%- set attrs_from = [] -%}
{%- if props.from.full_name is defined %}
{%- set attrs_from = attrs_from|merge(['name="' ~ props.from.full_name ~ '"']) -%}
{%- endif -%}
{%- if props.from.value is defined %}
{%- set attrs_from = attrs_from|merge(['value="' ~ props.from.value ~ '"']) -%}
{%- endif -%}
{%- if props.from.id is defined %}
{%- set attrs_from = attrs_from|merge(['id="' ~ props.from.id ~ '"']) -%}
{%- endif -%}
{%- set attrs_to = [] -%}
{%- if props.to.full_name is defined %}
{%- set attrs_to = attrs_to|merge(['name="' ~ props.to.full_name ~ '"']) -%}
{%- endif -%}
{%- if props.to.value is defined %}
{%- set attrs_to = attrs_to|merge(['value="' ~ props.to.value ~ '"']) -%}
{%- endif -%}
{%- if props.to.id is defined %}
{%- set attrs_to = attrs_to|merge(['id="' ~ props.to.id ~ '"']) -%}
{%- endif -%}
{%- set attrs_from = attrs_from|merge(attrs_input) -%}
{%- set attrs_to = attrs_to|merge(attrs_input) -%}
{%- set attrs_range_from = [
'class="' ~ class_name_range ~ ' --from"',
'type="range"'
]|merge(attrs_from)|join(' ')|trim -%}
{%- set attrs_range_to = [
'class="' ~ class_name_range ~ ' --to"',
'type="range"'
]|merge(attrs_to)|join(' ')|trim -%}
<div {{ attrs|raw }}>
{% if props.label %}
{% include "@Components/fields/label-field/label-field.twig" with {props: {
title: props.label,
id: props.id,
required: props.required,
}} %}
{% endif %}
<div class="f-range-slider__ranges u-posr">
<div class="f-range-slider__range-wrap --from u-posr">
<input {{ attrs_range_from|raw }}>
</div>
<div class="f-range-slider__range-wrap --to u-posr">
<input {{ attrs_range_to|raw }}>
</div>
<div class="f-range-slider__label --from u-posa u-color-primary-500 u-fz-xs"></div>
<div class="f-range-slider__label --to u-posa u-color-primary-500 u-fz-xs"></div>
</div>
<div class="f-range-slider__inputs d-flex justify-content-between gap-2">
{% include "@Components/fields/text-field/text-field.twig" with {props: {
type: "number",
value: props.from.value,
extra_class: "f-range-slider__control w-100 --from"
}} %}
{% include "@Components/fields/text-field/text-field.twig" with {props: {
type: "number",
value: props.to.value,
extra_class: "f-range-slider__control w-100 --to"
}} %}
</div>
{% include "@Components/fields/error-field/error-field.twig" with {props: {}} %}
</div>