1/* @license GNU-GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 2(function($){'use strict';var time=4000;var isRunning=false;var bar,breakpoint,$wrapper=null,$slick,$nav,isPause,tick,timeTime=20,percentTime;$(window).resize(function(){if($nav===undefined)return;$nav.slick('unslick');});$(window).scroll(function(){if($wrapper==null)return;var scrollTop=$(window).scrollTop();breakpoint=$wrapper.offset().top+$wrapper.height();if(scrollTop>breakpoint&&isRunning===true)resetProgressbar();if(scrollTop<breakpoint&&isRunning===false)startProgressbar();});$(document).ready(function(){initSlick();});function initSlick(){$wrapper=$(".slick-header-a");$slick=$('.slick-header-a__for');$nav=$('.slick-header-a__nav');if($nav.length==0)return;var navConfig={slidesToShow:3,slidesToScroll:1,asNavFor:'.slick-header-a__for',dots:false,arrows:false,focusOnSelect:true,mobileFirst:true,responsive:[{breakpoint:1040,settings:{slidesToShow:5}},{breakpoint:704,settings:{slidesToShow:4}}]};$slick.slick({slidesToShow:1,arrows:false,dots:false,fade:true,asNavFor:'.slick-header-a__nav'});$nav.slick(navConfig);$nav.click(function(){startProgressbar();});$nav.on('destroy',function(){$nav.slick(navConfig);});$slick.on('beforeChange',function(){startProgressbar();});bar=document.getElementById("slick-header-a__progress");startProgressbar();}function startProgressbar(){resetProgressbar();isRunning=true;percentTime=0;isPause=false;tick=setInterval(frame,timeTime);}function frame(){if(isPause===false){percentTime+=(timeTime/time)*100;bar.style.width=percentTime+'%';if(percentTime>=100){resetProgressbar();$slick.slick("slickNext");}}}function resetProgressbar(){isRunning=false;bar.style.width=0+'%';clearTimeout(tick);}})(jQuery);; 3(function($,Drupal,drupalSettings){'use strict';Drupal.behaviors.algoliaNoResultSearch={attach:function(context,settings){console.log('Algolia no result search script loaded');$(once('no-result-search','.no-result-search-form',context)).each(function(){console.log('Algolia no result search form found');const primaryIndex=(settings.algolia&&settings.algolia.indexName)?settings.algolia.indexName:'stage_index';const indexes=['stage_index','place_index','event_index','travelm_articles_idx','travelm_places_idx','travelm_events_idx'];const broadstreetIds=(settings.algolia&&settings.algolia.broadstreetIds)?settings.algolia.broadstreetIds.split(',').map((id)=>id.trim()).filter((id)=>id!==''):[];const redirectUrl=(settings.algolia&&settings.algolia.redirectUrl)?settings.algolia.redirectUrl:'/ai-search';console.log('Using Algolia indexes:',indexes);console.log('Broadstreet IDs:',broadstreetIds);console.log('Redirect URL:',redirectUrl);const searchForm=$(this);const searchInput=searchForm.find('#no-result-search-input');const searchButton=searchForm.find('#no-result-search-button');const autosuggestContainer=$('#no-result-autosuggest-container');console.log('DOM elements found:',{searchForm:searchForm.length>0,searchInput:searchInput.length>0,searchButton:searchButton.length>0,autosuggestContainer:autosuggestContainer.length>0});searchForm.on('submit',function(e){console.log('Form submission prevented');e.preventDefault();return false;});const getContentTypeIcon=function(type){if(type==='place')return ` 4 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="24" height="24"> 5 <path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/> 6 <circle cx="12" cy="18" r="2" fill="currentColor"/> 7 </svg> 8 `;else if(type==='event')return ` 9 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="24" height="24"> 10 <path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z"/> 11 <circle cx="16" cy="14" r="2" fill="currentColor"/> 12 <rect x="7" y="10" width="4" height="4" fill="currentColor"/> 13 <rect x="7" y="16" width="4" height="2" fill="currentColor"/> 14 </svg> 15 `;else return ` 16 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="24" height="24"> 17 <path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/> 18 <path d="M14 17H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"/> 19 </svg> 20 `;};let debounceTimer;let lastQuery='';const fetchAutosuggestResults=function(query){if(!query||query.trim()===''){autosuggestContainer.empty().hide();return;}if(query===lastQuery)return;lastQuery=query;console.log(`Fetching autosuggest results for: "${query}"`);const appId='CH8XA5ZH8H';const apiKey='cc8e6095e2e73bb38f9a39ba69caf42e';
20const requests=indexes.map((indexName)=>{const request={indexName,analytics:false,attributesToRetrieve:["title","type","nid","website","slug"],clickAnalytics:false,hitsPerPage:3,query};if(indexName.startsWith('travelm_'))request.filters='locale:"de"';return request;});const requestBody={requests};fetch(`https://${appId.toLowerCase()}-dsn.algolia.net/1/indexes/*/queries`,{method:'POST',headers:{'Content-Type':'application/json','X-Algolia-API-Key':apiKey,'X-Algolia-Application-Id':appId},body:JSON.stringify(requestBody)}).then((response)=>response.json()).then((data)=>{console.log('Algolia autosuggest response:',data);let allHits=[];data.results.forEach((result)=>{if(result.hits&&result.hits.length>0){result.hits.forEach((hit)=>{hit._sourceIndex=result.index;});allHits=allHits.concat(result.hits);}});allHits=allHits.slice(0,10);renderAutosuggestResults(allHits,query);}).catch((error)=>{console.error('Error fetching autosuggest results:',error);autosuggestContainer.empty().hide();});};const renderAutosuggestResults=function(hits,query){if(!hits||hits.length===0){autosuggestContainer.empty().hide();return;}hits=hits.filter((hit)=>{const title=hit.title||hit['article-title']||'';return title!=='No title'&&title.trim()!=='';});if(hits.length===0){autosuggestContainer.empty().hide();return;}const autosuggestList=$('<ul class="no-result-autosuggest-list"></ul>');hits.forEach((hit)=>{const title=hit.title||hit['article-title']||'';const type=hit.type||'';const website=hit.website||'schwulissimo';let nodeUrl='#';if(website==='travelm'){const slug=hit.slug||'';let contentTypePath='';if(type==='article')contentTypePath='article';else if(type==='place')contentTypePath='place';else{if(type==='event')contentTypePath='event';}nodeUrl=`https://travelm.de/de-DE/${contentTypePath}/${slug}`;}else nodeUrl=hit.nid?`/node/${hit.nid}`:'#';const icon=getContentTypeIcon(type);const listItem=$(` 21 <li class="no-result-autosuggest-item" data-type="${type}" data-website="${website}"> 22 <a href="${nodeUrl}" target="_blank" rel="noopener noreferrer" class="no-result-autosuggest-link"> 23 <span class="no-result-autosuggest-icon">${icon}</span> 24 <span class="no-result-autosuggest-title">${title}</span> 25 </a> 26 </li> 27 `);listItem.on('click',function(e){searchInput.val(title);autosuggestContainer.empty().hide();});
27autosuggestList.append(listItem);});const viewAllItem=$(` 28 <li class="no-result-autosuggest-item no-result-autosuggest-view-all"> 29 <a href="#" class="no-result-autosuggest-link"> 30 <span class="no-result-autosuggest-title">Alle Ergebnisse anzeigen</span> 31 </a> 32 </li> 33 `);viewAllItem.on('click',function(e){e.preventDefault();autosuggestContainer.empty().hide();redirectToAiSearch(query);});autosuggestList.append(viewAllItem);autosuggestContainer.empty().append(autosuggestList).show();};const redirectToAiSearch=function(query){if(!query||query.trim()==='')return;const url=`${redirectUrl}?page=0&query=${encodeURIComponent(query.trim())}`;window.location.href=url;};searchInput.on('input',function(){const query=$(this).val().trim();clearTimeout(debounceTimer);debounceTimer=setTimeout(()=>{fetchAutosuggestResults(query);},300);});$(document).on('click',function(e){if(!$(e.target).closest('.no-result-search-form, #no-result-autosuggest-container').length)autosuggestContainer.empty().hide();});searchInput.on('focus',function(){const query=$(this).val().trim();if(query)fetchAutosuggestResults(query);});searchButton.on('click',function(e){e.preventDefault();console.log('Search button clicked');autosuggestContainer.empty().hide();const query=searchInput.val().trim();console.log('Search query:',query);redirectToAiSearch(query);});});}};})(jQuery,Drupal,drupalSettings);;
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.