{#
component: filter bar
research: { (Présente à la page recherche)
searchItem {string}: Intitulé de l'élément recherché (Hôtel seul, Thalasso avec hébergement, Thalasso & SPA ou Idées cadeaux)
searchResults {string}: Nombre d'éléments trouvés pendant la recherche
}
#}
{% set jsComponentId = "filter-bar" %}
{% if selected_params is defined %}
{% if selected_params.date_start is defined %}
{% set selected_date = selected_params.date_start|replace({'/': '-'})|date("m/d/Y") %}
{% else %}
{% set selected_date = "now"|date("m/d/Y") %}
{% endif %}
{% set data = getFilterBarParams(app.request.getLocale() ,selected_params) %}
{% else %}
{% set data = getFilterBarParams( app.request.getLocale() ) %}
{% set selected_date = "now"|date("m/d/Y") %}
{% endif %}
{% set props = {
bookingtitle:null,
research:{
searchItem: null,
searchItemId: null,
searchResults: null,
selected_date: selected_date,
}
}|merge(props|default({})) %}
{% if app.request.getLocale() == "en" %}
{% set route_search = "render_mlc_recherche_en" %}
{% else %}
{% set route_search = "render_mlc_recherche" %}
{% endif %}
<form action="{{ path('' ~ route_search ,{_locale:app.request.getLocale()}) }}" method="POST" class="l-container FilterBar-component FilterBar" data-component="{{ jsComponentId }}" data-lang="{{ app.request.getLocale() }}" data-research="{{ props.research|json_encode() }}" data-selected="{{ data.selected|json_encode() }}" data-setsitems="{{ data.setsitems|json_encode() }}" data-bookingtitle="{{ props.bookingtitle|json_encode() }}">
<div class="FilterBar-searchResults" v-if="research.searchResults">
<p v-html="research.searchResults"></p>
</div>
<div class="FilterBar-container">
<div class="FilterBar-items">
<div class="FilterBar-selected" :class="{research: research.searchResults}">
<v-select :options="options" value='id' label="label" item-value="id" item-text="label" v-model="selected_option" class="FilterBar-select" :searchable="false" :clearable="false" @input="onChange"></v-select>
<input type="hidden" :value="selected_option.id" name="type_bar"/>
</div>
<div class="FilterBar-ItemContainer" v-for="setItem in set">
<div class="FilterBar-Item">
<div class="FilterBar-CalendarItem" v-if="setItem.item === 'calendar'">
<div data-component="svg" class="Svg-component" v-bind:class="setItem.icon">
<svg>
<use v-bind="{ 'xlink:href': '#' + setItem.icon }"/>
</svg>
</div>
<div class="FilterBar-SelectItem-details">
<span class="FilterBar-ItemTitle" v-if="setItem">${ setItem.text }</span>
<datepicker name="date_start" class="FilterBar-datepicker" :monday-first="true" :disabled-dates="disabledDates" :format="customFormatter" :language="datePickerLang" ref="datepicker" v-model="datepicker_value"></datepicker>
<div class="vs__actions">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="10" role="presentation" class="vs__open-indicator">
<path d="M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"></path>
</svg>
</div>
</div>
</div>
<div class="FilterBar-SelectItem" v-else>
<div data-component="svg" class="Svg-component" v-bind:class="setItem.icon">
<svg>
<use v-bind="{ 'xlink:href': '#' + setItem.icon }"/>
</svg>
</div>
<div class="FilterBar-SelectItem-details">
<span class="FilterBar-ItemTitle" v-if="setItem">${ setItem.text }</span>
<v-select :options="setItem.values" value='id' label="text" item-value="id" item-text="text" v-model="setItem.value" class="FilterBar-select" :searchable="false" :clearable="false"></v-select>
<input type="hidden" :value="setItem.value.id" :name="setItem.item"/>
</div>
</div>
</div>
</div>
</div>
{# Submit button #}
{% include "component/button.html.twig" with {
class: 'BookingSearch-submitButton',
props: {
text: "filtre_bar.search.libelle"|trans,
title: '',
type:"sumbit"
}
} %}
</div>
<div class="FilterBarMobile-container">
<div class="FilterBarMobile-openContainer">
<div class="FilterBarMobile-open" @click="openSlide(0)">
<p>${ bookingtitle }</p>
{% include "component/svg.html.twig" with {
props: {
name: 'arrow-simple-right'
}
} %}
</div>
</div>
<div class="FilterBarMobile-slideContainer">
<div class="FilterBarMobileheader">
<div class="FilterBarMobile-closeContainer" @click="closeSlide(0)">
<span class="FilterMobile-closeContainer-cross"></span>
</div>
<p>${ bookingtitle }</p>
</div>
<div class="FilterBarMobile-slides">
<div class="FilterBarMobile-slide">
<div class="FilterBarMobile-items">
<div class="FilterBarMobile-selected" :class="{research: research.searchResults}">
<v-select disable :options="options" value='id' label="label" item-value="id" item-text="label" v-model="selected_option" class="FilterBar-select" :searchable="false" :clearable="false" @input="onChange"></v-select>
<input type="hidden" :value="selected_option.id" name="type_bar"/>
</div>
<div class="FilterBarMobile-ItemContainer" v-for="setItem in set">
<div class="FilterBarMobile-Item">
<div class="FilterBarMobile-CalendarItem" v-if="setItem.item === 'calendar'">
<div class="FilterBarMobile-SelectItem-details" @click="openSlide(1, setItem)">
<div data-component="svg" class="Svg-component" v-bind:class="setItem.icon">
<svg>
<use v-bind="{ 'xlink:href': '#' + setItem.icon }"/>
</svg>
</div>
<span class="FilterBarMobile-ItemTitle" v-if="setItem">${ setItem.text }</span>
<datepicker name="date_start" disabled class="FilterBar-datepicker" :monday-first="true" :disabled-dates="disabledDates" :format="customFormatter" :language="datePickerLang" ref="datepicker" v-model="datepicker_value"></datepicker>
<div class="BaseIcon-container">
{% include "component/svg.html.twig" with {
props: {
name: 'arrow-simple-right'
}
} %}
</div>
</div>
</div>
<div class="FilterBarMobile-SelectItem" v-else>
<div class="FilterBarMobile-SelectItem-details" @click="openSlide(1, setItem)">
<div data-component="svg" class="Svg-component" v-bind:class="setItem.icon">
<svg>
<use v-bind="{ 'xlink:href': '#' + setItem.icon }"/>
</svg>
</div>
<span class="FilterBarMobile-ItemTitle" v-if="setItem">${ setItem.text }</span>
<v-select disable :options="setItem.values" value='id' label="text" item-value="id" item-text="text" v-model="setItem.value" class="FilterBar-select" :searchable="false" :clearable="false"></v-select>
<input type="hidden" :value="setItem.value.id" :name="setItem.item"/>
<div class="BaseIcon-container">
{% include "component/svg.html.twig" with {
props: {
name: 'arrow-simple-right'
}
} %}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="FilterBarMobile-slide">
<div class="FilterBarMobile-SelectItem">
<div class="FilterBarMobile-SelectItemHeader" @click="closeSlide(1)">
{% include "component/svg.html.twig" with {
props: {
name: 'arrow-simple-right'
}
} %}
<div data-component="svg" class="Svg-component" v-if="selectedItem" v-bind:class="selectedItem.icon">
<svg>
<use v-bind="{ 'xlink:href': '#' + selectedItem.icon }"/>
</svg>
</div>
<p class="FilterBarMobile-ItemTitle" v-if="selectedItem">${ selectedItem.text }</p>
</div>
<div v-if="selectedItem">
<div class="FilterBarMobile-CalendarItem" v-if="selectedItem.item === 'calendar'">
<datepicker class="FilterBar-datepicker" :monday-first="true" :disabled-dates="disabledDates" :format="customFormatter" @selected="closeSlide(1)" :inline="true" :language="datePickerLang" ref="datepicker" v-model="datepicker_value"></datepicker>
</div>
<div class="FilterBarMobile-SelectItemOptionsContainer" v-else>
<div class="FilterBarMobile-SelectItemOptions" :class="{'selected': selectedItem.value == selectedItemOption }" v-for="selectedItemOption in selectedItem.values" @click="selectOption(selectedItemOption, 1)">
<p class="FilterBarMobile-SelectItemOption">${ selectedItemOption.text }</p>
</div>
<input type="hidden" :value="selectedItem.value.id" :name="selectedItem.item"/>
</div>
</div>
</div>
</div>
</div>
{# Submit button #}
{% include "component/button.html.twig" with {
class: 'BookingSearch-submitButton',
props: {
text: "filtre_bar.search.libelle"|trans,
title: '',
type:"sumbit"
}
} %}
</div>
</div>
</form>