1/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 2(($)=>{let cachedScrollbarWidth=null;const {max,abs}=Math;const regexHorizontal=/left|center|right/;const regexVertical=/top|center|bottom/;const regexOffset=/[+-]\d+(\.[\d]+)?%?/;const regexPosition=/^\w+/;const _position=$.fn.position;function getOffsets(offsets,width,height){return [parseFloat(offsets[0])*(typeof offsets[0]==='string'&&offsets[0].endsWith('%')?width/100:1),parseFloat(offsets[1])*(typeof offsets[1]==='string'&&offsets[1].endsWith('%')?height/100:1)];}function parseCss(element,property){return parseInt(window.getComputedStyle(element)[property],10)||0;}function getDimensions(elem){const raw=elem[0];if(raw.nodeType===Node.DOCUMENT_NODE)return {width:elem.width(),height:elem.height(),offset:{top:0,left:0}};if(!!raw&&raw===raw.window)return {width:elem.width(),height:elem.height(),offset:{top:elem.scrollTop(),left:elem.scrollLeft()}};if(raw.preventDefault)return {width:0,height:0,offset:{top:raw.pageY,left:raw.pageX}};return {width:elem.outerWidth(),height:elem.outerHeight(),offset:elem.offset()};}const collisions={fit:{left(position,data){const {within}=data;const withinOffset=within.isWindow?within.scrollLeft:within.offset.left;const outerWidth=within.width;const collisionPosLeft=position.left-data.collisionPosition.marginLeft;const overLeft=withinOffset-collisionPosLeft;const overRight=collisionPosLeft+data.collisionWidth-outerWidth-withinOffset;let newOverRight;if(data.collisionWidth>outerWidth)if(overLeft>0&&overRight<=0){newOverRight=position.left+overLeft+data.collisionWidth-outerWidth-withinOffset;position.left+=overLeft-newOverRight;}else if(overRight>0&&overLeft<=0)position.left=withinOffset;else if(overLeft>overRight)position.left=withinOffset+outerWidth-data.collisionWidth;else position.left=withinOffset;else if(overLeft>0)position.left+=overLeft;else if(overRight>0)position.left-=overRight;else position.left=max(position.left-collisionPosLeft,position.left);},top(position,data){const {within}=data;const withinOffset=within.isWindow?within.scrollTop:within.offset.top;const outerHeight=data.within.height;const collisionPosTop=position.top-data.collisionPosition.marginTop;const overTop=withinOffset-collisionPosTop;const overBottom=collisionPosTop+data.collisionHeight-outerHeight-withinOffset;let newOverBottom;if(data.collisionHeight>outerHeight)if(overTop>0&&overBottom<=0){newOverBottom=position.top+overTop+data.collisionHeight-outerHeight-withinOffset;position.top+=overTop-newOverBottom;}else if(overBottom>0&&overTop<=0)position.top=withinOffset;else if(overTop>overBottom)position.top=withinOffset+outerHeight-data.collisionHeight;else position.top=withinOffset;else if(overTop>0)position.top+=overTop;else if(overBottom>0)position.top-=overBottom;else position.top=max(position.top-collisionPosTop,position.top);}},flip:{left(position,data){const {within}=data;const withinOffset=within.offset.left+within.scrollLeft;const outerWidth=within.width;const offsetLeft=within.isWindow?within.scrollLeft:within.offset.left;const collisionPosLeft=position.left-data.collisionPosition.marginLeft;const overLeft=collisionPosLeft-offsetLeft;const overRight=collisionPosLeft+data.collisionWidth-outerWidth-offsetLeft;const myOffset=data.my[0]==='left'?-data.elemWidth:data.my[0]==='right'?data.elemWidth:0;const atOffset=data.at[0]==='left'?data.targetWidth:data.at[0]==='right'?-data.targetWidth:0;const offset=-2*data.offset[0];let newOverRight;let newOverLeft;if(overLeft<0){newOverRight=position.left+myOffset+atOffset+offset+data.collisionWidth-outerWidth-withinOffset;if(newOverRight<0||newOverRight<abs(overLeft))position.left+=myOffset+atOffset+offset;}else{if(overRight>0){newOverLeft=position.left-data.collisionPosition.marginLeft+myOffset+atOffset+offset-offsetLeft;if(newOverLeft>0||abs(newOverLeft)<overRight)position.left+=myOffset+atOffset+offset;}}},top(position,data){const {within}=data;const withinOffset=within.offset.top+within.scrollTop;const outerHeight=within.height;const offsetTop=within.isWindow?within.scrollTop:within.offset.top;const collisionPosTop=position.top-data.collisionPosition.marginTop;const overTop=collisionPosTop-offsetTop;const overBottom=collisionPosTop+data.collisionHeight-outerHeight-offsetTop;const top=data.my[1]==='top';const myOffset=top?-data.elemHeight:data.my[1]==='bottom'?data.elemHeight:0;const atOffset=data.at[1]==='top'?data.targetHeight:data.at[1]==='bottom'?-data.targetHeight:0;const offset=-2*data.offset[1];let newOverTop;let newOverBottom;if(overTop<0){newOverBottom=position.top+myOffset+atOffset+offset+data.collisionHeight-outerHeight-withinOffset;if(newOverBottom<0||newOverBottom<abs(overTop))position.top+=myOffset+atOffset+offset;}else{if(overBottom>0){newOverTop=position.top-data.collisionPosition.marginTop+myOffset+atOffset+offset-offsetTop;if(newOverTop>0||abs(newOverTop)<overBottom)position.top+=myOffset+atOffset+offset;}}}},flipfit:{left(...args){collisions.flip.left.apply(this,args);collisions.fit.left.apply(this,args);},top(...args){collisions.flip.top.apply(this,args);collisions.fit.top.apply(this,args);}}};$.position={scrollbarWidth(){if(cachedScrollbarWidth!==undefined)return cachedScrollbarWidth;const div=$('<div '+"style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>"+"<div style='height:100px;width:auto;'></div></div>");const innerDiv=div.children()[0];$('body').append(div);const w1=innerDiv.offsetWidth;div[0].style.overflow='scroll';let w2=innerDiv.offsetWidth;if(w1===w2)w2=div[0].clientWidth;div.remove();cachedScrollbarWidth=w1-w2;return cachedScrollbarWidth;},getScrollInfo(within){const overflowX=within.isWindow||within.isDocument?'':window.getComputedStyle(within.element[0])['overflow-x'];const overflowY=within.isWindow||within.isDocument?'':window.getComputedStyle(within.element[0])['overflow-y'];const hasOverflowX=overflowX==='scroll'||(overflowX==='auto'&&within.width<within.element[0].scrollWidth);const hasOverflowY=overflowY==='scroll'||(overflowY==='auto'&&within.height<within.element[0].scrollHeight);return {width:hasOverflowY?$.position.scrollbarWidth():0,height:hasOverflowX?$.position.scrollbarWidth():0};},getWithinInfo(element){const withinElement=$(element||window);const isWindow=!!withinElement[0]&&withinElement[0]===withinElement[0].window;const isDocument=!!withinElement[0]&&withinElement[0].nodeType===Node.DOCUMENT_NODE;const hasOffset=!isWindow&&!isDocument;return {element:withinElement,isWindow,isDocument,offset:hasOffset?$(element).offset():{left:0,top:0},scrollLeft:withinElement.scrollLeft(),scrollTop:withinElement.scrollTop(),width:withinElement.outerWidth(),height:withinElement.outerHeight()};}};$.fn.position=function(options){if(!options||!options.of)return _position.apply(this,arguments);options=$.extend({},options);const within=$.position.getWithinInfo(options.within);const scrollInfo=$.position.getScrollInfo(within);const collision=(options.collision||'flip').split(' ');const offsets={};const target=typeof options.of==='string'?$(document).find(options.of):$(options.of);const dimensions=getDimensions(target);const targetWidth=dimensions.width;const targetHeight=dimensions.height;const targetOffset=dimensions.offset;if(target[0].preventDefault)options.at='left top';const basePosition=$.extend({},targetOffset);$.each(['my','at'],function(){let pos=(options[this]||'').split(' ');
2if(pos.length===1)pos=regexHorizontal.test(pos[0])?pos.concat(['center']):regexVertical.test(pos[0])?['center'].concat(pos):['center','center'];pos[0]=regexHorizontal.test(pos[0])?pos[0]:'center';pos[1]=regexVertical.test(pos[1])?pos[1]:'center';const horizontalOffset=regexOffset.exec(pos[0]);const verticalOffset=regexOffset.exec(pos[1]);offsets[this]=[horizontalOffset?horizontalOffset[0]:0,verticalOffset?verticalOffset[0]:0];options[this]=[regexPosition.exec(pos[0])[0],regexPosition.exec(pos[1])[0]];});if(collision.length===1)collision[1]=collision[0];if(options.at[0]==='right')basePosition.left+=targetWidth;else{if(options.at[0]==='center')basePosition.left+=targetWidth/2;}if(options.at[1]==='bottom')basePosition.top+=targetHeight;else{if(options.at[1]==='center')basePosition.top+=targetHeight/2;}const atOffset=getOffsets(offsets.at,targetWidth,targetHeight);basePosition.left+=atOffset[0];basePosition.top+=atOffset[1];return this.each(function(){let using;const elem=$(this);const elemWidth=elem.outerWidth();const elemHeight=elem.outerHeight();const marginLeft=parseCss(this,'marginLeft');const marginTop=parseCss(this,'marginTop');const collisionWidth=elemWidth+marginLeft+parseCss(this,'marginRight')+scrollInfo.width;const collisionHeight=elemHeight+marginTop+parseCss(this,'marginBottom')+scrollInfo.height;const position=$.extend({},basePosition);const myOffset=getOffsets(offsets.my,elem.outerWidth(),elem.outerHeight());if(options.my[0]==='right')position.left-=elemWidth;else{if(options.my[0]==='center')position.left-=elemWidth/2;}if(options.my[1]==='bottom')position.top-=elemHeight;else{if(options.my[1]==='center')position.top-=elemHeight/2;}position.left+=myOffset[0];position.top+=myOffset[1];const collisionPosition={marginLeft,marginTop};$.each(['left','top'],function(i,dir){if(collisions[collision[i]])collisions[collision[i]][dir](position,{targetWidth,targetHeight,elemWidth,elemHeight,collisionPosition,collisionWidth,collisionHeight,offset:[atOffset[0]+myOffset[0],atOffset[1]+myOffset[1]],my:options.my,at:options.at,within,elem});});if(options.using)using=function(props){const left=targetOffset.left-position.left;const right=left+targetWidth-elemWidth;const top=targetOffset.top-position.top;const bottom=top+targetHeight-elemHeight;const feedback={target:{element:target,left:targetOffset.left,top:targetOffset.top,width:targetWidth,height:targetHeight},element:{element:elem,left:position.left,top:position.top,width:elemWidth,height:elemHeight},horizontal:right<0?'left':left>0?'right':'center',vertical:bottom<0?'top':top>0?'bottom':'middle'};if(targetWidth<elemWidth&&abs(left+right)<targetWidth)feedback.horizontal='center';if(targetHeight<elemHeight&&abs(top+bottom)<targetHeight)feedback.vertical='middle';if(max(abs(left),abs(right))>max(abs(top),abs(bottom)))feedback.important='horizontal';else feedback.important='vertical';options.using.call(this,props,feedback);};elem.offset($.extend(position,{using}));});};if(!$.hasOwnProperty('ui'))$.ui={};$.ui.position=collisions;})(jQuery);; 3(($,Drupal,drupalSettings,once)=>{if(!Drupal.autocomplete)return;const autocomplete={};autocomplete.getSettings=(input,globalSettings)=>{globalSettings=globalSettings||drupalSettings||{};const settings={auto_submit:false,delay:0,min_length:1,selector:':submit'};const search=$(input).data('search-api-autocomplete-search');if(search&&globalSettings.search_api_autocomplete&&globalSettings.search_api_autocomplete[search])$.extend(settings,globalSettings.search_api_autocomplete[search]);return settings;};Drupal.behaviors.searchApiAutocomplete={attach(context,settings){const s='.ui-autocomplete-input[data-search-api-autocomplete-search]';$(once('search-api-autocomplete',s,context)).each(function foreach(){const uiAutocomplete=$(this).data('ui-autocomplete');if(!uiAutocomplete)return;const $element=uiAutocomplete.menu.element;$element.data('search-api-autocomplete-input-id',this.id);$element.addClass('search-api-autocomplete-search');$element.attr('tabindex','-1');const elementSettings=autocomplete.getSettings(this,settings);if(elementSettings.delay)uiAutocomplete.options.delay=elementSettings.delay;if(elementSettings.min_length)uiAutocomplete.options.minLength=elementSettings.min_length;const oldSelect=uiAutocomplete.options.select;uiAutocomplete.options.select=function select(event,ui,...args){if(ui.item.url){if(event.keyCode===9)return false;window.location.href=ui.item.url;return false;}const ret=oldSelect.apply(this,[event,ui,...args]);if(elementSettings.auto_submit&&elementSettings.selector)$(elementSettings.selector,this.form).trigger('click');return ret;};});}};Drupal.SearchApiAutocomplete=autocomplete;})(jQuery,Drupal,drupalSettings,once);; 4(function($,Drupal){Drupal.behaviors.lp_facets={attached:false,attach:function(context,settings){if(!this.attached){const $body=$('body');const $facetFilters=$('.facet-filters');const $facetFilterContainer=$('.facet-filter-container');const $drawerOverlay=$('.facet-drawer-overlay');const $closeFilter=$('.close-filter');function closeDrawer(){$body.removeClass('overflow-hidden');$facetFilters.addClass('-translate-x-full');$facetFilterContainer.removeClass('open');$drawerOverlay.removeClass('opacity-100');$drawerOverlay.addClass('opacity-0');$drawerOverlay.addClass('invisible');}$('.mobile-filters').on('click','.toggle-filter',function(){$body.addClass('overflow-hidden');$facetFilters.removeClass('-translate-x-full');$facetFilterContainer.addClass('open');$drawerOverlay.removeClass('opacity-0').addClass('opacity-100').removeClass('invisible');});$drawerOverlay.on('click',closeDrawer);$closeFilter.on('click',closeDrawer);const $facetSummaryCount=$('.facet-summary-count');function updateActiveFacetsCount(){setTimeout(()=>{const activeFacetsCount=$('.facet-item a.is-active').length;$('#active-facets-count').text(activeFacetsCount);$facetSummaryCount.toggleClass('hidden',activeFacetsCount<1);},300);}$(document).on('click','.facet-item, .facet-summary-item--facet a, .facet-summary-item--clear a',()=>{updateActiveFacetsCount();});updateActiveFacetsCount();this.attached=true;}}};})(jQuery,Drupal);; 5(function($,Drupal){if(!Drupal.autocomplete)return;
5Drupal.behaviors.lp_search={attached:false,attach:function(context,settings){if(!this.attached){const $main_search=$('#main-search').find('input[type="text"]');const uiAutocomplete=$main_search.data('ui-autocomplete');if(!uiAutocomplete)return;const $page_search=$('#block-main-search').find('input[type="text"]');if($page_search.length&&$page_search.data('ui-autocomplete')){$page_search.autocomplete("destroy");$page_search.removeData("ui-autocomplete");$page_search.removeData("data-once");$page_search.removeClass('form-autocomplete');}const $closeBtn=$('<span class="cursor-pointer" @click="showSearch = !showSearch" class=""><i class="ri-close-line text-2xl"></i></span>');const $element=uiAutocomplete.menu.element;const $searchAll=$('<span class="search-all" />').attr('aria-label',Drupal.t('Search all'));$('.navigation-search input').addClass('bg-gray-100 border-0').removeClass('bg-white border-b');var keyword='';$closeBtn.on('click',function(e){window.setTimeout(function(){$main_search.val('');uiAutocomplete._close(e);},500);});$('.mobile-autocomplete button').on('click',function(){$('#open-search').click();});$main_search.after($closeBtn);$element.appendTo($('#main-search-autocomplete-results'));uiAutocomplete.options['open']=function(){$('.autocomplete--default-content-wrapper').hide();$("#main-search-autocomplete-results").height('38rem');};uiAutocomplete.options['close']=function(){$('.autocomplete--default-content-wrapper').show();$("#main-search-autocomplete-results").height('0px');};uiAutocomplete._close=function(event){if(event){event.preventDefault();$target=$(event.target);if($target.val().trim().length==0){this.menu.element.hide();this.menu.blur();this.isNewMenu=true;this._trigger("close",event);}}};uiAutocomplete._renderMenu=function(ul,items){var that=this;var groupedItems={};var nodeTypeLabels={};$.each(items,function(index,item){var $parsedHTML=$($.parseHTML(item.label));var $item=$parsedHTML.filter('.autocomplete-result');var node_type=$item.attr('data-type');var node_type_label=$item.attr('aria-label');if(!groupedItems[node_type])groupedItems[node_type]=[];nodeTypeLabels[node_type]=node_type_label;groupedItems[node_type].push(item);});var order=['destination','travel_guides','article'];$.each(order,function(index,dataType){if(groupedItems[dataType]){var header=$("<li>").addClass("ui-autocomplete-group-header gap-2 text-md font-bold text-base cursor-auto px-8 font-freightsans flex flex-row-reverse justify-end items-center").attr('data-type',dataType).attr('aria-label',nodeTypeLabels[dataType]).append($('<span>').text(nodeTypeLabels[dataType])).appendTo(ul);$.each(groupedItems[dataType],function(index,item){that._renderItemData(ul,item);});if(nodeTypeLabels[dataType]==="Destinos")header.append('<i class="ri-map-2-line text-primary font-normal"></i>');else if(nodeTypeLabels[dataType]==="GuÃas de viaje")header.append('<i class="ri-book-read-fill text-primary font-normal"></i>');else{if(nodeTypeLabels[dataType]===Drupal.t("ArtÃculo"))header.append('<i class="ri-article-line text-primary font-normal"></i>');}}});$searchAll.appendTo($('#main-search-autocomplete-results'));};$main_search.on("autocompletesearch",function(event,ui){keyword=$(this).val();var $searchIcon=$('<i class="ri-search-line mr-2"></i>');var $search_link=$('<a class="search-all-link font-bentonsans" />');$search_link.attr('href','/search?search_api_fulltext='+keyword.replace(/\s+/ig,'+'));$search_link.append($searchIcon);$search_link.append(Drupal.t('Search all of LonelyPlanet for !keyword',{'!keyword':'<span class="inline-block ml-1 keyword font-bentonsans">"'+keyword+'"</span'}));if(keyword.trim().length>0)$searchAll.html($search_link);});uiAutocomplete.options.position={"my":"left top+10","at":"left top","of":"#main-search-autocomplete-results","collision":"none"};}this.attached=true;}};})(jQuery,Drupal);; 6(function(Drupal,$){Drupal.behaviors.lp_sorts={attached:false,closeSortDrawer:function(){document.body.classList.remove('overflow-hidden');document.querySelector('.sort-drawer-overlay').classList.remove('opacity-100');document.querySelector('.sort-drawer-overlay').classList.add('opacity-0','invisible');document.querySelector('.exposed-sort').classList.add('translate-y-full');},openSortDrawer:function(){document.body.classList.add('overflow-hidden');document.querySelector('.exposed-sort').classList.remove('translate-y-full');document.querySelector('.sort-drawer-overlay').classList.remove('opacity-0','invisible');document.querySelector('.sort-drawer-overlay').classList.add('opacity-100');},generateSortList:function(){let sortDrawer=document.querySelector('#sort-drawer .exposed-sort__body');if(sortDrawer){const ul=document.createElement('ul');ul.className='mobile-sort-list p-4 flex flex-col gap-4 lg:hidden text-center';const options=document.querySelectorAll('select[data-drupal-selector="edit-sort-bef-combine"] option');options.forEach(function(option){const liClass=option.selected?'selected-option':'';const li=document.createElement('li');li.className='text-base font-medium relative '+liClass;li.textContent=option.textContent;li.dataset.value=option.value;if(liClass==='selected-option'){const icon=document.createElement('i');icon.className='ri-check-line';li.appendChild(icon);}ul.appendChild(li);});sortDrawer.appendChild(ul);}},attach:function(context,settings){if(!this.attached){const options=document.querySelectorAll('select[data-drupal-selector="edit-sort-bef-combine"] option');if(options.length==0)return;const that=this;this.generateSortList();this.attachEvents();$(document).ajaxComplete(function(event,xhr,settings){if(settings.url.includes('/views/ajax')&&xhr.responseText.includes('views-view--search')){const oldList=document.querySelector('.mobile-sort-list');if(oldList)oldList.remove();that.generateSortList();that.closeSortDrawer();that.attachEvents();}});this.attached=true;}},attachEvents:function(){const that=this;const openSort=document.querySelector('.mobile-filters .open-sort');if(openSort){document.addEventListener('click',function(event){if(event.target.closest('.mobile-sort-list li')){const value=event.target.closest('.mobile-sort-list li').dataset.value;const select=document.querySelector('select[data-drupal-selector="edit-sort-bef-combine"]');select.value=value;jQuery(select).trigger('change');that.closeSortDrawer();}});openSort.addEventListener('click',that.openSortDrawer);}document.querySelectorAll('.sort-drawer-overlay, .close-sort').forEach(function(element){element.addEventListener('click',that.closeSortDrawer);});}};})(Drupal,jQuery);;
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.