1var touchScrollingInUse = false; 2 3$(function () { 4 $('.service-card-content').not('.hover-overlay-content .service-card-content').dotdotdot({ 5 ellipsis: "\u2026 ", 6 height: null, 7 keep: null, 8 tolerance: 1, 9 truncate: "word", 10 watch: "window" 11 }); 12 // Reinstate dotdotdot on resize due to plugin bug with emptying content 13 $(window).resize(function () { 14 $('.service-card-content').not('.hover-overlay-content .service-card-content').dotdotdot({ 15 ellipsis: "\u2026 ", 16 height: null, 17 keep: null, 18 tolerance: 1, 19 truncate: "word", 20 watch: false 21 }); 22 if (window.matchMedia("(min-width: 992px)").matches) { 23 $('.container-services-overview .help-item .help-item-heading').dotdotdot({ 24 ellipsis: "\u2026 ", 25 height: null, 26 keep: null, 27 tolerance: 1, 28 truncate: "word", 29 watch: false 30 }); 31 } else { 32 $('.container-services-overview .help-item .help-item-heading').dotdotdot({ 33 height: "148px", 34 }); 35 } 36 }); 37}); 38 39const cards = document.querySelectorAll('.service-card, .help-item'); 40 41function setPosFromEvent(e) { 42 const card = e.currentTarget; 43 const rect = card.getBoundingClientRect(); 44 45 const cx = e.clientX - rect.left; 46 const cy = e.clientY - rect.top; 47 48 card.style.setProperty('--x', `${(cx / rect.width) * 100}%`); 49 card.style.setProperty('--y', `${(cy / rect.height) * 100}%`); 50} 51 52function clampLeave(e) { 53 const card = e.currentTarget; 54 const rect = card.getBoundingClientRect(); 55 56 const cx = Math.min(Math.max(e.clientX - rect.left, 0), rect.width); 57 const cy = Math.min(Math.max(e.clientY - rect.top, 0), rect.height); 58 59 card.style.setProperty('--x', `${(cx / rect.width) * 100}%`); 60 card.style.setProperty('--y', `${(cy / rect.height) * 100}%`); 61} 62 63cards.forEach(card => { 64 card.addEventListener('pointerenter', setPosFromEvent); 65 card.addEventListener('pointermove', setPosFromEvent); 66 card.addEventListener('pointerleave', clampLeave); 67 card.addEventListener('pointercancel', clampLeave); 68});
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.