1(function(Drupal,once,drupalSettings){"use strict";Drupal.behaviors.print={attach:function(context,settings){function getLastChildContainingText(node){while(node.lastChild&&node.lastChild.nodeType!==1){node=node.lastChild} 2return node} 3once('yls_main_print','body',context).forEach(function(body){const content=body.querySelector('div.dialog-off-canvas-main-canvas'),heading=document.createElement('h2');heading.textContent=Drupal.t('Links');heading.classList.add('print-only');content.appendChild(heading);const ol=document.createElement('ol');ol.classList.add('print-only');content.appendChild(ol)});once('printLink','div.dialog-off-canvas-main-canvas > :not(.region-alerts, header, .footer) :not(.no-print, '+'.region-alerts, '+'.search-trigger, '+'.navbar-toggler, '+'.contextual, '+'.block-local-tasks-block, '+'.related-content, '+'.region-footer, '+'.clickable-wrapper):is([href^="http://"], [href^="https://"], [cite])',context).forEach(function(element){const list=document.querySelector('ol.print-only'),linkList=Array.prototype.slice.call(list.querySelectorAll('li')),linkAttribute=element.getAttribute('href')||element.getAttribute('cite'),note=document.createElement('sup'),usedLinks=linkList.map(function(elem){return elem.textContent}),index=usedLinks.indexOf(linkAttribute),num=usedLinks.length;note.classList.add('print-only');if(index!==-1){note.textContent=index+1}else{const li=document.createElement('li');li.textContent=linkAttribute;list.appendChild(li);usedLinks.push(linkAttribute);note.textContent=num+1} 4if(element.tagName.toLowerCase()==='blockquote'){const lastChild=getLastChildContainingText(element);lastChild.appendChild(note)}else{element.parentNode.insertBefore(note,element.nextSibling)}});once('entity_print','.page-node-type-program',context).forEach(function(body){const classes=body.classList;const printButton=body.querySelector('.a2a_button_print');let nid='';for(const attr_class of classes){if(attr_class.includes('page-node-')){nid=attr_class.split('-').pop();break}} 5window.addEventListener('keydown',(e)=>{if((e.ctrlKey||e.metaKey)&&e.key==='p'){e.preventDefault();window.open(`/print/pdf/node/${nid}`,'_blank')}});printButton.addEventListener('click',(e)=>{e.stopImmediatePropagation();e.preventDefault();window.open(`/print/pdf/node/${nid}`,'_blank')})})}}})(Drupal,once,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.