1/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 2(function(Drupal,$){var cfResourcesLoaded=false;const addLinkElement=(cssId,fileName)=>{if(document.getElementById(cssId))return;const head=document.querySelector('head');const link=document.createElement('link');link.id=cssId;link.rel='stylesheet';link.type='text/css';link.href=`${fileName}`;link.media='all';head.appendChild(link);};function addCfScripts(){var deferreds=[];for(let index=0;index<drupalSettings.cf.js.length;++index)deferreds.push($.getScript(drupalSettings.cf.js[index]));return deferreds;}function showLoadingScreen(){var modulePath='/modules/custom/esl_common/assets/image';var loaderHTML="<div id='cf-loader' class='modal'>"+"<div class='modal-content'>"+"<img class='icon' src='/sites/default/files/icons/CF%20icon_0.svg' alt='"+Drupal.t("Find a course")+"'>"+"<div class='message'>"+Drupal.t("We are getting ready...")+"</div>"+"<div><img id='cf-loading-bar' src='"+modulePath+"/loading-bar.gif' width='314' height='10'/><br/>"+Drupal.t("loading ...")+"</div></div></div>";var cfButton=document.querySelector('.btn-course-finder');cfButton.innerHTML+=loaderHTML;}function hideLoadingScreen(){var element=document.getElementById("cf-loader");if(element)element.parentNode.removeChild(element);}Drupal.behaviors.courseFinderModal={attach:function(context,settings){var initializeCourseFinderModal=function(){let queryString;const container=document.querySelector('#course-finder-modal');const cfElement=elementLoader.load('klg-course-finder',{mode:'popup'},{searchCourses:(searchParams)=>{queryString=Object.keys(searchParams.detail).map(function(key){return key+'='+searchParams.detail[key];}).join('&');window.location.href=settings.components.course_finder.global_url+'?'+queryString;}});container.appendChild(cfElement);};var downloadCourseFinderModal=function(e){e.preventDefault();if(cfResourcesLoaded||document.getElementsByClassName('paragraph-hero-banner-extended').length>0)openCourseFinderModal();else{showLoadingScreen();for(let index=0;index<drupalSettings.cf.css.length;++index)addLinkElement('klgCSS'+index,drupalSettings.cf.css[index]);var deferreds=addCfScripts();$.when.apply(null,deferreds).done(function(){cfResourcesLoaded=true;openCourseFinderModal();hideLoadingScreen();});}$(once('btn-course-finder','.btn-course-finder .paragraph-topbar-element a',context)).on('click',downloadCourseFinderModal);};var openCourseFinderModal=function(){let courseFinderButton=$('.btn-course-finder');let modalWrapper=courseFinderButton.find('.paragraph-course-finder__wrapper');$('body').toggleClass('open-modal');$('body div > iframe[title="chat widget"]').closest('div').toggle();$('#ccc').toggle();courseFinderButton.toggleClass('open');courseFinderButton.find('.paragraph-topbar-element a').toggleClass('active');courseFinderButton.find('.paragraph-course-finder').toggleClass('open');if(modalWrapper.children('.btn-close').length===0)modalWrapper.append('<div class="btn-close"> </div>');else $('.paragraph-course-finder').find('.btn-close').remove();$(once('btn-close','.btn-close',context)).on('click',function(){$('body').removeClass('open-modal');$('body div > iframe[title="chat widget"]').closest('div').show();$('#ccc').show();courseFinderButton.removeClass('open');$('.paragraph-course-finder').addClass('slideout');$('.btn-course-finder .paragraph-topbar-element a').removeClass('active');setTimeout(function(){$('.paragraph-course-finder').removeClass('slideout').removeClass('open');$('.paragraph-course-finder').find('.btn-close').remove();},400);});if(courseFinderButton.find('.paragraph-course-finder #course-finder-modal').children().length===0)initializeCourseFinderModal();};$(once('btn-course-finder','.btn-course-finder .paragraph-topbar-element a',context)).on('click',downloadCourseFinderModal);}};})(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.