PageSourceSearch

https://www.destinationveronagarda.it/kumbe/minified/js/main.min.js?v=1790255648

js destinationveronagarda.it collected 2026-09-24 13:14:23 UTC 33,384 bytes, 92 lines download raw bytes

1const ARRAY_TRIGGER=1;const ARRAY_ALWAYS_ADD=2;const ARRAY_ALWAYS_REMOVE=3;var delimiters=['${','}$'];Vue.component('recursive-filter',{template:'#recursive-filter',props:['depth','collapsetargetclass','filtergroup','line','category','mainparent'],delimiters:delimiters});Vue.component('search-filter-select',{data:function(){return{toSearch:'',isFocused:''}},watch:{'filtergroup.data'(newValue,oldValue){let availableValues=newValue.map(filter=>filter.value);if(!availableValues.includes(this.toSearch)){this.toSearch='';}},},computed:{search(){let self=this;let toSearch=this.toSearch.toLowerCase().split(' ');let result=this.filtergroup.data.clone().filter(f=>{f.score=0;toSearch.forEach(function(v){f.score+=(f.value&&f.value.toLowerCase().includes(v))?2:0;});return f.score>0;}).sort((a,b)=>b.score-a.score);return result;},},mounted:function(){let componentCategory=this.filtergroup.name;let componentActiveFilter=this.$root.activeFilters.data.def.find(filter=>filter.category===componentCategory);if(componentActiveFilter){this.toSearch=componentActiveFilter.label;}},template:'#search-filter-select',props:['filtergroup','isdef'],delimiters:delimiters});var itemsPerChunk=8;var timer=0;var lists=[];document.querySelectorAll("[id$='_list']").forEach(selector=>{let options=Object.assign({},selector.dataset);if(!options.contentType){options.contentType=selector.id.split('_')[0];}
2if(!options.endPoint){options.endPoint=options.contentType;}
3loadList('#'+selector.id,options);});function loadList(elementId,options){var list=new Vue({delimiters:delimiters,el:elementId,endPoint:ROOT_URL+language+'/getjson/list/'+options.endPoint,postParams:{},contentType:options.contentType,elements:{data:[],itemsPerChunk:8},mainFilterableElements:false,showMap:false,data:{filterableElements:[],groupedFilterableElements:{},filtereds:[],map:{markers:[]},toSearch:'',loading:{temp:false,def:false},loadedChunks:0,searchType:'',nextPage:0,forceUpdate:0,activeFilters:Vue.observable({data:{temp:[],def:[]},keys:{temp:[],def:[]},halfCheckedParents:{temp:[],def:[]},sortingType:{temp:'',def:''},availability:{occupancies:{number:1,data:[{roomsNumber:1,adultsNumber:2,childrenAges:[]}]},dateFrom:{temp:null,def:null},dateTo:{temp:null,def:null},isset:false,onlyAvailables:true,hashKey:0,accommodationType:''},filtersNumber:0,query:'',}),rangeSliders:{options:{dotSize:18,width:'auto',height:10,data:null,tooltip:'none',contained:false,enableCross:false},values:{}},isMapShown:false,isMapVisible:false,editmode:{}},beforeMount:function(){this.generalSettings();this.setData();},mounted:function(){let self=this;window.addEventListener('scriptsLoaded',()=>{inputDateRange('#'+self.getContentType()+'-date-range');self.applyDatepicker();})
4$(document).ready(()=>{$('.contentWindow').on("close",function(e){self.applyActiveFilters();});});},computed:{filtersRealTimeResults(){this.forceUpdate;let self=this;let dataResult=this.$options.elements.data;if(this.activeFilters.query!==''){dataResult=dataResult.filter(elem=>eval(self.activeFilters.query));}
5return{occurrences:dataResult.length>0,label:(dataResult.length>0)?labels['LBL_OK_APPLICA_FILTRI']+' ('+dataResult.length+' '+((dataResult.length>1)?labels['LBL_RISULTATI']:labels['LBL_RISULTATO'])+')':labels['LBL_NON_CI_SONO_RISULTATI_PER_FILTRI_SELEZIONATI'],data:dataResult};},currentLoadedChunks(){var result=[];let items=this.filtereds.clone();if(!items.length){items=this.getElements();}
6items=this.getSortedElements(items);if(this.getContentType()==='events'){items=this.getEventsWithFirstOfMonths(items);}
7let chunks=doChunks(items,this.$options.elements.itemsPerChunk);for(let i=0;i<=this.loadedChunks;i++){if(chunks[i]){result=result.concat(chunks[i]);}}
8if(this.$options.showMap){this.setMapMarkers();}
9if(this.filtereds.length===0){$('.print-btn').fadeOut();}else{$('.print-btn').fadeIn();}
10return result;},search(){let self=this;if(this.toSearch.length<3){return[];}
11let toSearch=this.toSearch.toLowerCase().split(' ').filter(a=>a.length>2);let result=this.$options.elements.data.filter(f=>{f.score=0;toSearch.forEach(function(v){f.score+=(f.title&&f.title.toLowerCase().includes(v))?2:0;
11f.score+=(f.shortDescription&&f.shortDescription.toLowerCase().includes(v))?1:0;});return f.score>0;}).sort((a,b)=>b.score-a.score).slice(0,10);if(this.getContentType()==='events'){result=Object.values(result.groupByField('id')).map(event=>event.first());}
12if(typeof tr!=='undefined'&&tr!==null){clearTimeout(timer);timer=setTimeout(function(){let type=self.getTrackingContentType();tr.track('K_filtro_'+type+'_testuale',{event_label:self.toSearch+' - '+result.length});},1500);}
13return result;},areAllElementsShown(){return this.loadedChunks+1>=this.filtereds.length / this.$options.elements.itemsPerChunk;},isDatesFilterValid(){let dateFrom=this.activeFilters.availability.dateFrom.temp;let dateTo=this.activeFilters.availability.dateTo.temp;return dateFrom&&dateTo;}},methods:{getContentType(){return this.$options.contentType;},getSortedElements(elements){switch(this.activeFilters.sortingType.def){case'prezzo_asc':elements=elements.sort((a,b)=>{if(!b.basePrice&&a.basePrice)return-1;if(!a.basePrice&&b.basePrice)return 1;return a.basePrice-b.basePrice;});break;case'prezzo_desc':elements=elements.sort((a,b)=>{if(!b.basePrice&&a.basePrice)return-1;if(!a.basePrice&&b.basePrice)return 1;return b.basePrice-a.basePrice;});break;case'titolo_asc':elements=elements.sort((a,b)=>a.title.localeCompare(b.title));break;case'titolo_desc':elements=elements.sort((a,b)=>b.title.localeCompare(a.title));break;case'review':elements=elements.sort((a,b)=>b.trustYou.score-a.trustYou.score);break;case'rate_time':elements=elements.sortByDateRate(true);break;default:break;}
14if(!this.activeFilters.availability.onlyAvailables){elements=elements.sort((a,b)=>b.available-a.available);}
15elements=elements.sort((a,b)=>b.partner-a.partner);return elements;},addOccupancy(){this.activeFilters.availability.occupancies.data.push({roomsNumber:1,adultsNumber:2,childrenAges:[]});this.activeFilters.availability.occupancies.number++;},removeOccupancy(index){if(typeof this.activeFilters.availability.occupancies.data[index]!=='undefined'){this.activeFilters.availability.occupancies.data.splice(index,1);}
16this.activeFilters.availability.occupancies.number--;},prepareOccupancyChildren(index,newChildrenNumber){index--;if(typeof this.activeFilters.availability.occupancies.data[index]==='undefined'){return;}
17let currentChildrenAges=this.activeFilters.availability.occupancies.data[index].childrenAges.length;if(newChildrenNumber<currentChildrenAges){this.activeFilters.availability.occupancies.data[index].childrenAges=this.activeFilters.availability.occupancies.data[index].childrenAges.slice(0,newChildrenNumber);}
18let newChildren=new Array(newChildrenNumber-this.activeFilters.availability.occupancies.data[index].childrenAges.length).fill(0);this.activeFilters.availability.occupancies.data[index].childrenAges=this.activeFilters.availability.occupancies.data[index].childrenAges.concat(newChildren);},getAvailability(applyData=true){switch(this.getContentType()){case'hotels':this.setHotelsAvailability(applyData);break;case'events':this.setEventsAvailability(applyData);break;case'services':case'experiences':this.setExperiencesAvailability(applyData);break;default:break;}},setHotelsAvailability(applyData=true){let tempDefValue=applyData?'def':'temp';this.loading[tempDefValue]=true;let self=this;let accommodationType='';if(this.activeFilters.availability.accommodationType){accommodationType=this.activeFilters.availability.accommodationType;}
19let availabilityData=this.activeFilters.availability;if(availabilityData.occupancies.number===0){this.loading.def=false;return;}
20let dateFrom=new Date(availabilityData.dateFrom.temp);let dateTo=new Date(availabilityData.dateTo.temp);this.activeFilters.availability.isset=true;this.forceUpdate++;let trackingEventParams={event_category:'Interazione',event_label:window.location.href,checkIn:dateFrom.getIsoFormat(),checkOut:dateTo.getIsoFormat(),nAdulti:0,nBambini:0,nCamere:0};let postParams={occupancies:[]};availabilityData.occupancies.data.forEach(occupancy=>
20{postParams.occupancies.push({"dateFrom":dateFrom.getIsoFormat(),"dateTo":dateTo.getIsoFormat(),'units':parseInt(occupancy.roomsNumber),"nAdults":parseInt(occupancy.adultsNumber),"children":occupancy.childrenAges,"accommodationType":accommodationType});trackingEventParams.nAdulti+=parseInt(occupancy.adultsNumber);trackingEventParams.nBambini+=occupancy.childrenAges.length;trackingEventParams.nCamere++;});let bookingWindow=diffInDays(new Date().startOfDay(),new Date(availabilityData.dateFrom.temp));trackingEventParams.bookingWindow=bookingWindow;if(typeof(tr)!=='undefined'&&tr!==null){tr.track('Verifica disponibilità ',trackingEventParams);}
21$.ajaxSetup({async:false});$.post(ROOT_URL+'/getHotelsAvailability',postParams,function(data){self.resetAllFilters();self.setRoomsDataInSession();self.setDatesInSession();data=JSON.parse(data);if(typeof(data.result.disponibilita)!=='undefined'){let availableIds=data.result.disponibilita.map(d=>d.id);let mealCodes=data.result.disponibilita.map(element=>element.mealCode).unique();let mealCodesFilter=self.generateMealCodeFilter(mealCodes);if(mealCodesFilter.data.length){self.filterableElements.trigger(mealCodesFilter,2);}
22self.$options.elements.data=self.$options.elements.data.map(element=>{if(availableIds.includes(element.importItemId)){let availableElement=data.result.disponibilita.find(availability=>availability.id===element.importItemId);element.available=true;element.basePrice=availableElement.totalPrice;element.basePrice=Math.round(element.basePrice);element.mealCode=availableElement.mealCode;}else{element.available=false;}
23return element;});self.forceUpdate++;self.applyFilters(applyData);}else{self.resetAllFilters();self.$options.elements.data=self.$options.elements.data.map(element=>{element.available=false;return element;});self.applyFilters(applyData);}
24this.loading[tempDefValue]=true;});},setEventsAvailability(applyData=true){let tempDefValue=applyData?'def':'temp';this.loading[tempDefValue]=true;this.activeFilters.availability.isset=false;this.forceUpdate++;let dateFrom=new Date(this.activeFilters.availability.dateFrom.temp?.replace(/-/g,"/")).startOfDay();let dateTo=new Date(this.activeFilters.availability.dateTo.temp?.replace(/-/g,"/")).startOfDay();if(!dateFrom.isValid(true)||!dateTo.isValid(true)){this.loading[tempDefValue]=false;return;}
25if(applyData){this.activeFilters.availability.dateFrom.def=this.activeFilters.availability.dateFrom.temp;this.activeFilters.availability.dateTo.def=this.activeFilters.availability.dateTo.temp;this.setDatesInSession();}
26this.activeFilters.availability.isset=true;this.$options.elements.data=this.$options.elements.data.map(element=>{element.available=element.eventDateObject.isBetween(dateFrom,dateTo);return element;});let bookingWindow=diffInDays(new Date().startOfDay(),dateFrom);let daysDifference=diffInDays(dateFrom,dateTo);if(typeof(tr)!=='undefined'&&tr!==null){tr.track('Periodo evento',{'event_category':'Interazione filtro','event_label':window.location.href,'checkIn':dateFrom.getIsoFormat(),'checkOut':dateTo.getIsoFormat(),'bookingWindow':bookingWindow});}
27this.applyFilters(applyData);},setExperiencesAvailability(applyData=true){let self=this;let tempDefValue=applyData?'def':'temp';this.loading[tempDefValue]=true;let availabilityData=this.activeFilters.availability;let dateFrom=new Date(availabilityData.dateFrom.temp);let dateTo=new Date(availabilityData.dateTo.temp);if(!dateFrom.isValid(true)||!dateTo.isValid(true)){return;}
28this.activeFilters.availability.isset=true;this.setDatesInSession();let datesRange=getDatesRange(dateFrom,dateTo);let datesDays=datesRange.map(d=>d.getDayName('en')).unique();dateFrom=dateFrom.getTime();dateTo=dateTo.getTime();this.$options.elements.data=this.$options.elements.data.map(element=>{let availabilities=element.availabilities;let available=availabilities.filter(availability=>(availability.data[0].isBetween(dateFrom,dateTo)||availability.data[1].isBetween(dateFrom,dateTo)||(availability.data[0]<=dateFrom&&availability.data[1]>=dateTo))&&(availability.days.length===0||availability.days.intersect(datesDays).length>0)).length>0;element.available=available;return element;});this.activeFilters.availability.isset=true;this.forceUpdate++;this.applyFilters(applyData);setTimeout(()=>{this.loading[tempDefValue]=false;},300);},generateMealCodeFilter(mealCodes){return{asParentChild:false,data:mealCodes.map(mealCode=>{return{fieldName:'mealCode',key:mealCode,type:'field',value:labels['LBL_MEALCODE_'+mealCode]??mealCode}}),group:'specific',name:'mealCode',operator:'OR',type:'tag',title:labels['LBL_MEALCODE']};},triggerFilter(category,filterObject,options={}){let mode=options.mode??1;let radio=options.radio??false;let categoryLabel=options.categoryLabel??'';let key=category+'-'+filterObject.key;let filter={category:category,type:filterObject.type,fieldName:filterObject.fieldName,data:filterObject.key,parent:filterObject.parent,label:filterObject.value,categoryLabel:categoryLabel};if(radio){this.unsetCategory(category);this.activeFilters.data.temp.push(filter);}else{this.activeFilters.data.temp.trigger(filter,mode);}
29this.activeFilters.halfCheckedParents.temp.trigger(category+'-'+filterObject.key,3);this.recalculateFiltersKeys();},triggerRecursiveFilter(category,filterObject,options={}){this.triggerFilter(category,filterObject,options);this.triggerChildrenHierarchy(category,filterObject,this.activeFilters.keys.temp.includes(category+'-'+filterObject.key)?2:3);},triggerChildrenHierarchy(category,filterObject,mode){let self=this;if(!filterObject.hasOwnProperty('nodes')){return;}
30filterObject.nodes.forEach(nodeElement=>{nodeElement.data.forEach(node=>{self.triggerFilter(category,node,{mode:mode});self.triggerChildrenHierarchy(category,node,mode);})});},checkAllHierarchy(category,filterObject){if(!filterObject.hasOwnProperty('nodes')){return;}
31let self=this;let totalNodes=0;let checkedNodes=0;filterObject.nodes.forEach(nodeElement=>{nodeElement.data.forEach(node=>{self.checkAllHierarchy(category,node);totalNodes++;if(self.activeFilters.keys.temp.includes(category+'-'+node.key)){checkedNodes++;}})});let halfCheckedMode=3;if(totalNodes===checkedNodes){this.triggerFilter(category,filterObject,{mode:ARRAY_ALWAYS_ADD});}else{this.triggerFilter(category,filterObject,{mode:ARRAY_ALWAYS_REMOVE});if(checkedNodes>0){halfCheckedMode=2;}}
32this.activeFilters.halfCheckedParents.temp.trigger(category+'-'+filterObject.key,halfCheckedMode);this.recalculateFiltersKeys();},triggerDatesFilter(category){let dateFrom=new Date(this.activeFilters.availability.dateFrom.temp);let dateTo=new Date(this.activeFilters.availability.dateTo.temp);if(!dateTo.isValid(true)||!dateTo.isValid(true)){return;}
33let filter={category:category,type:'dates',data:{from:dateFrom.getIsoFormat(),to:dateTo.getIsoFormat()}};let occurrence=this.activeFilters.data.temp.findIndex(a=>a.category===category);if(occurrence!==-1){this.activeFilters.data.temp.splice(occurrence,1);}
34this.activeFilters.data.temp.push(filter);},triggerSliderFilter(category){if(!this.rangeSliders.values[category]){return;}
35let values=this.rangeSliders.values[category].temp;if(values[0]<this.rangeSliders.values[category].default[0]){this.rangeSliders.values[category].temp[0]=values[0]=this.rangeSliders.values[category].default[0];}
36if(values[1]>this.rangeSliders.values[category].default[1]){this.rangeSliders.values[category].temp[1]=values[1]=this.rangeSliders.values[category].default[1];}
37let filter={category:category,type:'range',fieldName:category,data:{min:values[0],max:values[1]}};let occurrence=this.activeFilters.data.temp.findIndex(a=>a.category===category);if(occurrence!==-1){this.activeFilters.data.temp.splice(occurrence,1);}
38this.activeFilters.data.temp.push(filter);},recalculateFiltersKeys(){this.activeFilters.keys.temp=this.activeFilters.data.temp.map(filter=>filter.category+'-'+filter.data);},applyFilters(applyData=true){let self=this;let tempDefValue=applyData?'def':'temp';this.loading[tempDefValue]=true;this.setActiveFiltersQuery();if(applyData){this.applyData();}
39setTimeout(()=>{self.loading[tempDefValue]=false;},300)},applyData(firstLoading=false){let self=this;this.activeFilters.keys.def=this.activeFilters.keys.temp.clone();this.activeFilters.data.def=this.activeFilters.data.temp.clone();this.activeFilters.sortingType.def=this.activeFilters.sortingType.temp;this.rangeSliders.values=Object.fromEntries(Object.entries(this.rangeSliders.values).map(values=>{values[1].def=values[1].temp.clone();return values;}));if(!firstLoading){this.loadedChunks=0;}
40this.filtereds=this.filtersRealTimeResults.data.clone();this.activeFilters.filtersNumber=Object.keys(this.activeFilters.data.def.filter(f=>f.type!=='dates').groupByField('category')).length;if(!firstLoading){this.generateUrlFromActiveFilters();this.scrollIntoList();}
41if(this.$options.showMap&&this.isMapShown){this.currentLoadedChunks;}
42setTimeout(()=>{WB.loadAnimation();},300);},async trackFilters(all=false){let self=this;let filtersToTrack=this.activeFilters.data.def;if(!all){filtersToTrack=[filtersToTrack.last()];}
43if(filtersToTrack.empty()){return;}
44filtersToTrack=Object.entries(filtersToTrack.groupByField('fieldName'));let type=this.getTrackingContentType();let trackingData=[];filtersToTrack.forEach(value=>{let category=value[0];let filters=value[1];filters.forEach(filter=>{let trackingElement={label:filter.data};switch(filter.category){case'ES_':trackingElement.action='K_filtro_esperienze_tipologia';break;case'R_':trackingElement.action='K_filtro_'+type+'_localita';break;case'AC_':trackingElement.action='K_filtro_alloggi_tipologia';break;case'CL_':trackingElement.action='K_filtro_alloggi_stelle';break;case'R_':trackingElement.action='Località  '+type;break;default:break;}
45trackingElement.label+=' - '+self.filtereds.length;if(trackingElement.action){trackingData.push(trackingElement);}});});trackEvents(trackingData);},setData(){var self=this;this.loading.def=true;$.ajaxSetup({async:true});$.post(this.$options.endPoint,this.$options.postParams,function(data){if(typeof data['data']!=='undefined'){if(self.getContentType()==='events'){data['data']=data['data'].map(element=>
45{element.eventDateObject=new Date(element.eventDate);return element;});}
46self.$options.elements.data=data['data'];if(data['filterableElements']&&Object.keys(data['filterableElements']).length>0){self.filterableElements=data['filterableElements'];self.groupedFilterableElements=data['filterableElements'].groupByField('group');self.$options.mainFilterableElements=data['filterableElements'].find(a=>a.group=='main')??false;}
47self.prepareRangeSlidersValues(true);self.setDatesFromSession();self.generateActiveFiltersFromUrl();self.recalculateFiltersKeys();self.forceUpdate++;if(self.activeFilters.availability.dateFrom.temp&&self.activeFilters.availability.dateTo.temp){self.getAvailability();}else{self.applyFilters(false);self.applyData(true);}
48self.loading.def=false;self.$nextTick(function(){window.dispatchEvent(new CustomEvent('jsDataLoaded'));self.applyLoadMoreObserver();})}});},triggerValidFilters(category,filtersHierarchy,validKeys){let self=this;filtersHierarchy.data.forEach(filterObject=>{if(validKeys.includes(String(filterObject.key))){
48self.triggerRecursiveFilter(category,filterObject,{mode:ARRAY_ALWAYS_ADD,radio:filtersHierarchy.operator==='AND'});}
49if(filterObject.hasOwnProperty('nodes')){filterObject.nodes.forEach(node=>{self.triggerValidFilters(category,node,validKeys);})}
50self.checkAllHierarchy(category,filterObject);});},generateActiveFiltersFromUrl(){let self=this;Object.entries(getRequestParams(false)).forEach(filter=>{let category=filter[0];if(category==='loadedChunks'&&parseInt(filter[1])>0){self.loadedChunks=parseInt(filter[1]);return;}
51let values=filter[1].split('|');let categoryOccurrence=self.filterableElements.find(f=>f.name==category);if(!categoryOccurrence){return;}
52if(categoryOccurrence.type!=='dates'){values[0]=values[0].slice(values[0].lastIndexOf('-')+1);}
53if(categoryOccurrence.type==='dates'){if(new Date(values[0]).isValid(true)&&new Date(values[1]).isValid(true)){self.activeFilters.availability.dateFrom.temp=values[0];self.activeFilters.availability.dateTo.temp=values[1];self.triggerDatesFilter(category);}}else if(categoryOccurrence.type==='range'){if(values.length===2){values[0]=parseInt(values[0]);values[1]=parseInt(values[1]);if(self.rangeSliders.values[category]){Vue.set(self.rangeSliders.values[category].temp,0,parseInt(values[0]));Vue.set(self.rangeSliders.values[category].temp,1,parseInt(values[1]));self.triggerSliderFilter(category);}}}else{self.triggerValidFilters(category,categoryOccurrence,values);}});},generateUrlFromActiveFilters(){let result=[];let groupedFilters=this.activeFilters.data.def.filter(filter=>!this.activeFilters.keys.def.includes(filter.category+'-'+filter.parent));
53groupedFilters=groupedFilters.groupByField('category');Object.entries(groupedFilters).forEach(element=>{let category=element[0];let filters=element[1];let filterString='';if(filters[0].type==='dates'){filterString=category+'='+filters[0].data.from+'|'+filters[0].data.to;}else if(filters[0].type==='range'){filterString=category+'='+filters[0].data.min+'|'+filters[0].data.max;}else{filterString=category+'='+filters.map(f=>f.data).join('|');}
54result.push(filterString);})
55if(this.loadedChunks>0){result.push('loadedChunks='+this.loadedChunks);}
56if(this.getContentType()==='search'&&this.$options.postParams.searchText){result.push('searchText='+this.$options.postParams.searchText);}
57result=result.join('&');let currentURL=window.location.pathname;history.replaceState({},"",currentURL);if(result!==''){history.pushState({},'',currentURL+'?'+result);}
58return result;},prepareRangeSlidersValues(firstLoading=false){this.filterableElements.filter(a=>a.type==='range').forEach(element=>{let data=element.data[0];data.min=parseFloat(data.min);data.max=parseFloat(data.max);this.rangeSliders.values[data.fieldName]=Vue.observable({temp:[data.min,data.max],def:[data.min,data.max]});this.rangeSliders.values[data.fieldName].default=[data.min,data.max];});},setMapMarkers(){let self=this;let markers=[];let markerableElements=this.filtereds;switch(this.getContentType()){case'events':markerableElements=Object.values(markerableElements.groupByField('id')).map(events=>events[0]);break;default:break;}
59let priority='primary';if(this.getContentType()==='events'){priority='event';}
60markerableElements.forEach((element,index)=>{if(!element.latitude||!element.longitude){return;}
61let geoJSONMarker={type:"Feature",properties:{id:"places_"+index,title:element.title,description:this.getPopupDescription(element),urlDetail:element.url,urlIndications:'',priority:priority,mainImage:element.mainImage.url,basePrice:element.basePrice??''},geometry:{type:"Point",coordinates:[element.longitude,element.latitude]}}
62if(self.getContentType()==='experiences'){geoJSONMarker.properties.priority=element.typeTag.cssClass;}
63markers.push(geoJSONMarker);});if(typeof(map)!=='undefined'&&map!==null){updateMarkers(markers);}else if(typeof(markersOnLoad)!=='undefined'){markersOnLoad=markers;}
64this.isMapVisible=markers.length;},getPopupDescription(element){let result=[];switch(this.getContentType()){case'events':result.push(element.fullDescriptiveDate);break;default:break;}
65return result.filter(value=>value).join('<br />');},setActiveFiltersQuery(){let self=this;let result=[];let onlyAvailables=this.activeFilters.availability.isset&&this.activeFilters.availability.onlyAvailables;if(['hotels','events','experiences','services'].includes(this.getContentType())&&onlyAvailables){result.push('elem.available === true');}
66let groupedStandardFilters=this.activeFilters.data.temp.filter(f=>!f.type.startsWith('dynamic')).groupByField('category');buildCondition(groupedStandardFilters);this.setDynamicFilterableElements();let groupedDynamicFilters=this.activeFilters.data.temp.filter(f=>f.type.startsWith('dynamic')).groupByField('category');buildCondition(groupedDynamicFilters);function buildCondition(groupedFilters){Object.entries(groupedFilters).forEach(elem=>{let conditions=[];elem[1].forEach(e=>{switch(e.type){case'tag':case'dynamicTag':conditions.push("elem.tags.includes('"+e.data+"')");break;case'category':conditions.push("elem.parentId == "+e.data);break;case'field':if(Object.keys(self.$options.elements.data[0]).includes(e.fieldName)){if(typeof e.data==='boolean'){conditions.push("elem."+e.fieldName+" === "+e.data);}else{conditions.push("elem."+e.fieldName+" == '"+e.data+"'");}}
67break;case'range':conditions.push("parseInt(elem."+e.fieldName+") >= "+parseInt(e.data.min)+" && parseInt(elem."+e.fieldName+") <= "+parseInt(e.data.max));break;default:break;}});if(conditions.length>0){result.push('('+conditions.join(' || ')+')');}});self.activeFilters.query=result.join(' && ');}},unsetCategory(category){this.activeFilters.data.temp=this.activeFilters.data.temp.filter(a=>a.category!==category);this.recalculateFiltersKeys();},resetAllFilters(alsoAvailabilities=false){this.activeFilters.data={temp:[],def:[]};this.activeFilters.keys={temp:[],def:[]};this.activeFilters.query='';this.activeFilters.filtersNumber=0;this.activeFilters.sortingType.temp='';this.activeFilters.sortingType.def='';if(alsoAvailabilities){this.resetAllDates();}
68this.applyFilters();this.prepareRangeSlidersValues();},resetAllDates(applyData=true){localStorage.removeItem(this.getContentType()+'DateFrom');localStorage.removeItem(this.getContentType()+'DateTo');localStorage.removeItem('dateFrom');localStorage.removeItem('dateTo');localStorage.removeItem('adultsNumber');localStorage.removeItem('roomsNumber');
68localStorage.removeItem('childrenNumber');this.activeFilters.availability.dateFrom.temp=null;this.activeFilters.availability.dateTo.temp=null;if(applyData){this.activeFilters.availability.dateFrom.def=null;this.activeFilters.availability.dateTo.def=null;}
69this.activeFilters.availability.occupancies={number:1,data:[{roomsNumber:1,adultsNumber:2,childrenAges:[]}]};this.activeFilters.data.temp=this.activeFilters.data.temp.filter(filter=>filter.type!=='dates');let wrapper=document.querySelector('#'+this.getContentType()+'-date-range');if(wrapper){wrapper.querySelector('.range-start-date')?.datepicker.setDate({clear:true});wrapper.querySelector('.range-end-date')?.datepicker.setDate({clear:true});}
70this.activeFilters.availability.isset=false;this.applyFilters(applyData);},setRoomsDataInSession(){localStorage.setItem('occupancies',JSON.stringify(this.activeFilters.availability.occupancies.data));},setRoomsDataFromSession(){let occupancies=localStorage.getItem('occupancies');if(occupancies&&this.activeFilters.availability.dateFrom.temp&&this.activeFilters.availability.dateTo.temp){occupancies=JSON.parse(occupancies);this.activeFilters.availability.occupancies.data=occupancies;this.activeFilters.availability.occupancies.number=occupancies.length;}},setDatesInSession(){let dateFrom=this.activeFilters.availability.dateFrom.temp;let dateTo=this.activeFilters.availability.dateTo.temp;localStorage.setItem(this.getContentType()+'DateFrom',dateFrom);localStorage.setItem(this.getContentType()+'DateTo',dateTo);localStorage.setItem('dateFrom',dateFrom);localStorage.setItem('dateTo',dateTo);},setDatesFromSession(){let dateFrom=new Date(this.getContentType()+'DateFrom');let dateTo=new Date(this.getContentType()+'DateTo');if(!dateFrom.isValid(true)||!dateTo.isValid(true)){localStorage.removeItem(this.getContentType()+'DateFrom');localStorage.removeItem(this.getContentType()+'DateTo');return;}
71this.activeFilters.availability.dateFrom.temp=dateFrom.getIsoFormat();this.activeFilters.availability.dateTo.temp=dateTo.getIsoFormat();let datesFilterableElementOccurrence=this.filterableElements.find(filterableElement=>filterableElement.type==='dates');if(datesFilterableElementOccurrence){this.triggerDatesFilter(datesFilterableElementOccurrence.name);}},applyDatepicker(){let self=this;let dateFrom=this.activeFilters.availability.dateFrom.temp;let dateTo=this.activeFilters.availability.dateTo.temp;if(typeof dateFrom!=='Date'){dateFrom=new Date(dateFrom);}
72if(typeof dateTo!=='Date'){dateTo=new Date(dateTo);}
73if(!dateFrom.isValid(true)||!dateTo.isValid(true)){dateFrom=null;dateTo=null;}
74let wrapper=document.querySelector('#'+this.getContentType()+'-date-range');if(wrapper){if(dateFrom&&dateTo){wrapper.querySelector('.range-start-date')?.datepicker.setDate(dateFrom);wrapper.querySelector('.range-end-date')?.datepicker.setDate(dateTo);}else{wrapper.querySelector('.range-start-date')?.datepicker.setDate({clear:true});wrapper.querySelector('.range-end-date')?.datepicker.setDate({clear:true});}}},applyActiveFilters(){setTimeout(()=>{this.activeFilters.data.temp=this.activeFilters.data.def.clone();this.activeFilters.halfCheckedParents.temp=this.activeFilters.halfCheckedParents.def.clone();this.rangeSliders.values=Object.fromEntries(Object.entries(this.rangeSliders.values).map(values=>{values[1].temp=values[1].def.clone();return values;}));this.recalculateFiltersKeys();this.activeFilters.sortingType.temp=this.activeFilters.sortingType.def;this.activeFilters.availability.dateFrom.temp=this.activeFilters.availability.dateFrom.def;this.activeFilters.availability.dateTo.temp=this.activeFilters.availability.dateTo.def;this.applyDatepicker();this.applyFilters(false);},500)},getElements(){return this.$options.elements.data;},getTrackingContentType(){let type='';switch(this.getContentType()){case'hotels':type='alloggi';break;case'experiences':type='esperienze';break;case'itineraries':type='itinerari';break;case'services':type='servizi';break;case'events':type='eventi';break;default:break;}
75return type;},generalSettings(){if(options.itemsPerChunk){this.$options.elements.itemsPerChunk=parseInt(options.itemsPerChunk);}
76if(options.tags){this.$options.postParams.tags=options.tags.split('|');if(options.tagsOperator){this.$options.postParams.tagsOperator=options.tagsOperator;}}
77if(options.searchtext){this.$options.postParams.searchtext=options.searchtext;}
78if(options.showMap){this.$options.showMap=true;}
79if(options.relatedToId&&options.relatedToDataType){this.$options.postParams.relatedTo={id:options.relatedToId,dataType:options.relatedToDataType}
80if(options.relatedToFieldName){this.$options.postParams.relatedTo.fieldName=options.relatedToFieldName;}}
81if(options.exclude){this.$options.postParams.exclude=options.exclude;}
82if(options.firstchunk){}
83if(typeof options.asCalendar!=='undefined'){this.$options.postParams.asCalendar=options.asCalendar;}
84if(options.avoidCache){this.$options.postParams.avoidCache=true;}
85if(options.id){this.$options.postParams.id=options.id;}
86if(options.type){this.$options.postParams.type=options.type;}
87if(options.searchText){this.$options.postParams.searchText=options.searchText;}},toggleMap(event){this.isMapShown=!this.isMapShown;let button=$(event.currentTarget);if(!button.hasClass('active')){button.addClass('active');button.text(labels['LBL_ELENCO_'+this.getContentType().toUpperCase()]).attr('title',labels['LBL_ELENCO_'+this.getContentType().toUpperCase()]);this.scrollIntoList();}else{button.removeClass('active');button.text(labels['LBL_VEDI_'+this.getContentType().toUpperCase()+'_SU_MAPPA']).attr('title',labels['LBL_VEDI_'+this.getContentType().toUpperCase()+'_SU_MAPPA']);setTimeout(()=>{WB.loadAnimation();},200);}},scrollIntoList(){let selector=document.getElementById('list_start');if(selector){selector.style.top='-180px';selector.scrollIntoView({behavior:"smooth"});}},setDynamicFilterableElements(){let self=this;let activeCategories=this.activeFilters.data.temp.map(activeFilter=>activeFilter.category);let currentlyActiveTags=this.filtersRealTimeResults.data.map(a=>a.tags).flat().unique();
87this.filterableElements.forEach(filterableElement=>{if(!filterableElement.type.startsWith('dynamic')){return;}
88if(!filterableElement.originalData){filterableElement.originalData=filterableElement.data.clone();}
89if(!filterableElement.triggeredBy||activeCategories.intersect(filterableElement.triggeredBy)){filterableElement.data=[];filterableElement.originalData.clone().forEach(f=>{if(currentlyActiveTags.includes(f.key)){filterableElement.data.push(f);}else if(self.activeFilters.keys.temp.includes(filterableElement.name+'-'+f.key)){self.triggerFilter(filterableElement.name,f,{mode:3});}});}})},loadMore(){let self=this;this.loading.def=true;this.loadedChunks++;this.generateUrlFromActiveFilters();setTimeout(()=>{self.loading.def=false;if(self.getContentType()==='events'){WB.loadAnimation();}},300);},applyLoadMoreObserver(){let self=this;const endOfList=document.querySelector(".end-of-list");if(!endOfList){return;}
90let endOfListObserver=new IntersectionObserver((entries)=>{if(entries[0].intersectionRatio>0){if(!self.areAllElementsShown){self.loadMore();}}});endOfListObserver.observe(endOfList);},getEventsWithFirstOfMonths(events){if(!events.length){return events;}
91events[0].isFirstOfMonth=true;for(let i=1;i<events.length;i++){let previousEventDate=events[i-1].eventDateObject;let currentEventDate=events[i].eventDateObject;if(previousEventDate.getMonth()+previousEventDate.getFullYear()!==currentEventDate.getMonth()+currentEventDate.getFullYear()){events[i].isFirstOfMonth=true;}}
92return events;}},components:{'vueSlider':window['vue-slider-component'],}});lists.push(list);}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.