PageSourceSearch

https://www.gastrofribourg.ch/sites/default/files/js/js_ZRlgQVO3pS…3gu3MirtA7YUsJvcDmJj-Ie7vrLCrL2NR131BSM0ljo

js gastrofribourg.ch collected 2026-09-24 13:01:20 UTC 21,241 bytes, 13 lines download raw bytes

1/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
2(($,Drupal)=>{function doUpdateTokenElement(element){const $element=$(element);grecaptcha.ready(()=>{if(!element)return;grecaptcha.execute($element.data('recaptchaV3SiteKey'),{action:$element.data('recaptchaV3Action')}).then((token)=>{$element[0].value=token;$element.trigger('change');});});}function updateTokenElement(element){let timer;if(typeof grecaptcha==='undefined')timer=setInterval(()=>{if(typeof grecaptcha!=='undefined'||!element){clearInterval(timer);if(element)doUpdateTokenElement(element);}},500);else doUpdateTokenElement(element);}Drupal.behaviors.reCaptchaV3={attach:(context)=>{once('recaptcha-v3-token','.recaptcha-v3-token',context).forEach((element)=>{updateTokenElement(element);const interval=setInterval(()=>{if(!element)clearInterval(interval);else updateTokenElement(element);},90000);});}};})(jQuery,Drupal);;
3(($,Drupal,{isTabbable})=>{$.extend($.expr[':'],{tabbable(element){Drupal.deprecationError({message:'The :tabbable selector is deprecated in Drupal 9.2.0 and will be removed in Drupal 11.0.0. Use the core/tabbable library instead. See https://www.drupal.org/node/3183730'});return isTabbable(element);}});})(jQuery,Drupal,window.tabbable);;
4(($)=>{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===9)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===9;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(' ');
4if(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);;
5(($,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);;
6(($,Drupal)=>{Drupal.user={password:{css:{passwordParent:'password-parent',passwordsMatch:'ok',passwordsNotMatch:'error',passwordWeak:'is-weak',passwordFair:'is-fair',passwordGood:'is-good',passwordStrong:'is-strong',widgetInitial:'',passwordEmpty:'',passwordFilled:'',confirmEmpty:'',confirmFilled:''}}};Drupal.behaviors.password={attach(context,settings){const cssClasse
6s=Drupal.user.password.css;once('password','input.js-password-field',context).forEach((value)=>{const $mainInput=$(value);const $mainInputParent=$mainInput.parent().addClass(cssClasses.passwordParent);const $passwordWidget=$mainInput.closest('.js-form-type-password-confirm');const $confirmInput=$passwordWidget.find('input.js-password-confirm');const $passwordConfirmMessage=$(Drupal.theme('passwordConfirmMessage',settings.password));const $passwordMatchStatus=$passwordConfirmMessage.find('[data-drupal-selector="password-match-status-text"]').first();const $confirmInputParent=$confirmInput.parent().addClass('confirm-parent').append($passwordConfirmMessage);const passwordStrengthBarClassesToRemove=[cssClasses.passwordWeak||'',cssClasses.passwordFair||'',cssClasses.passwordGood||'',cssClasses.passwordStrong||''].join(' ').trim();const confirmTextWrapperClassesToRemove=[cssClasses.passwordsMatch||'',cssClasses.passwordsNotMatch||''].join(' ').trim();const widgetClassesToRemove=[cssClasses.widgetInitial||'',cssClasses.passwordEmpty||'',cssClasses.passwordFilled||'',cssClasses.confirmEmpty||'',cssClasses.confirmFilled||''].join(' ').trim();const password={};if(settings.password.showStrengthIndicator){const $passwordStrength=$(Drupal.theme('passwordStrength',settings.password));password.$strengthBar=$passwordStrength.find('[data-drupal-selector="password-strength-indicator"]').first();password.$strengthTextWrapper=$passwordStrength.find('[data-drupal-selector="password-strength-text"]').first();password.$suggestions=$(Drupal.theme('passwordSuggestions',settings.password,[]));password.$suggestions.hide();$mainInputParent.append($passwordStrength);$confirmInputParent.after(password.$suggestions);}const addWidgetClasses=()=>{$passwordWidget.addClass($mainInput[0].value?cssClasses.passwordFilled:cssClasses.passwordEmpty).addClass($confirmInput[0].value?cssClasses.confirmFilled:cssClasses.confirmEmpty);};const passwordCheckMatch=(confirmInputVal)=>{const passwordsAreMatching=$mainInput[0].value===confirmInputVal;const confirmClass=passwordsAreMatching?cssClasses.passwordsMatch:cssClasses.passwordsNotMatch;const confirmMessage=passwordsAreMatching?settings.password.confirmSuccess:settings.password.confirmFailure;if(!$passwordMatchStatus.hasClass(confirmClass)||!$passwordMatchStatus.html()===confirmMessage){if(confirmTextWrapperClassesToRemove)$passwordMatchStatus.removeClass(confirmTextWrapperClassesToRemove);$passwordMatchStatus.html(confirmMessage).addClass(confirmClass);}};const passwordCheck=()=>{if(settings.password.showStrengthIndicator){const result=Drupal.evaluatePasswordStrength($mainInput[0].value,settings.password);const $currentPasswordSuggestions=$(Drupal.theme('passwordSuggestions',settings.password,result.messageTips));if(password.$suggestions.html()!==$currentPasswordSuggestions.html()){password.$suggestions.replaceWith($currentPasswordSuggestions);password.$suggestions=$currentPasswordSuggestions.toggle(result.strength!==100);}if(passwordStrengthBarClassesToRemove)password.$strengthBar.removeClass(passwordStrengthBarClassesToRemove);password.$strengthBar[0].style.width=`${result.strength}%`;password.$strengthBar.addClass(result.indicatorClass);password.$strengthTextWrapper.html(result.indicatorText);}if($confirmInput[0].value){passwordCheckMatch($confirmInput[0].value);$passwordConfirmMessage[0].style.visibility='visible';}else $passwordConfirmMessage[0].style.visibility='hidden';if(widgetClassesToRemove){$passwordWidget.removeClass(widgetClassesToRemove);addWidgetClasses();}};if(widgetClassesToRemove)addWidgetClasses();$mainInput.on('input',passwordCheck);$confirmInput.on('input',passwordCheck);});}};Drupal.evaluatePasswordStrength=(password,passwordSettings)=>{password=password.trim();let indicatorText;let indicatorClass;let weaknesses=0;let strength=100;let msg=[];const hasLowercase=/[a-z]/.test(password);const hasUppercase=/[A-Z]/.test(password);const hasNumbers=/[0-9]/.test(password);const hasPunctuation=/[^a-zA-Z0-9]/.test(password);const $usernameBox=$('input.username');const username=$usernameBox.length>
60?$usernameBox[0].value:passwordSettings.username;if(password.length<12){msg.push(passwordSettings.tooShort);strength-=(12-password.length)*5+30;}if(!hasLowercase){msg.push(passwordSettings.addLowerCase);weaknesses+=1;}if(!hasUppercase){msg.push(passwordSettings.addUpperCase);weaknesses+=1;}if(!hasNumbers){msg.push(passwordSettings.addNumbers);weaknesses+=1;}if(!hasPunctuation){msg.push(passwordSettings.addPunctuation);weaknesses+=1;}switch(weaknesses){case 1:strength-=12.5;break;case 2:strength-=25;break;case 3:case 4:strength-=40;break;}if(password!==''&&password.toLowerCase()===username.toLowerCase()){msg.push(passwordSettings.sameAsUsername);strength=5;}const cssClasses=Drupal.user.password.css;if(strength<60){indicatorText=passwordSettings.weak;indicatorClass=cssClasses.passwordWeak;}else if(strength<70){indicatorText=passwordSettings.fair;indicatorClass=cssClasses.passwordFair;}else if(strength<80){indicatorText=passwordSettings.good;indicatorClass=cssClasses.passwordGood;}else{if(strength<=100){indicatorText=passwordSettings.strong;indicatorClass=cssClasses.passwordStrong;}}const messageTips=msg;msg=`${passwordSettings.hasWeaknesses}<ul><li>${msg.join('</li><li>')}</li></ul>`;return {strength,indicatorText,indicatorClass,messageTips};};})(jQuery,Drupal);;
7((Drupal)=>{Drupal.theme.passwordConfirmMessage=({confirmTitle})=>{const confirmTextWrapper='<span data-drupal-selector="password-match-status-text"></span>';return `<div aria-live="polite" aria-atomic="true" class="password-confirm-message" data-drupal-selector="password-confirm-message">${confirmTitle} ${confirmTextWrapper}</div>`;};Drupal.theme.passwordStrength=({strengthTitle})=>{const strengthIndicator='<div class="password-strength__indicator" data-drupal-selector="password-strength-indicator"></div>';const strengthText='<span class="password-strength__text" data-drupal-selector="password-strength-text"></span>';return `
8      <div class="password-strength">
9        <div class="password-strength__meter" data-drupal-selector="password-strength-meter">${strengthIndicator}</div>
10        <div aria-live="polite" aria-atomic="true" class="password-strength__title">${strengthTitle} ${strengthText}</div>
11      </div>
12    `;};Drupal.theme.passwordSuggestions=({hasWeaknesses},tips)=>`<div class="password-suggestions">${tips.length?`${hasWeaknesses}<ul><li>${tips.join('</li><li>')}</li></ul>`:''}</div>`;})(Drupal);;
13(function(Drupal){Drupal.theme.passwordConfirmMessage=function(translate){return "<div aria-live=\"polite\" aria-atomic=\"true\" class=\"password-confirm js-password-confirm js-password-confirm-message\" data-drupal-selector=\"password-confirm-message\">".concat(translate.confirmTitle," <span data-drupal-selector=\"password-match-status-text\"></span></div>");};Drupal.theme.passwordStrength=function(_ref){var strengthTitle=_ref.strengthTitle;var strengthIndicator='<div class="password-strength__indicator js-password-strength__indicator" data-drupal-selector="password-strength-indicator"></div>';var strengthText='<span class="password-strength__text js-password-strength__text" data-drupal-selector="password-strength-text"></span>';return "\n      <div class=\"password-strength\">\n        <div class=\"password-strength__meter\" data-drupal-selector=\"password-strength-meter\">".concat(strengthIndicator,"</div>\n        <div aria-live=\"polite\" aria-atomic=\"true\" class=\"password-strength__title\">").concat(strengthTitle," ").concat(strengthText,"</div>\n      </div>\n    ");};})(Drupal);;

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.