1(function ($) { 2 var sliderSelector = '.category_professor_slide'; 3 var readySelector = '.ncrdo-professor-slider-ready'; 4 var started = false; 5 6 function init(allowLegacyMarkup) { 7 if (started) { 8 return true; 9 } 10 11 var slider = document.querySelector(sliderSelector); 12 if (!slider || (!allowLegacyMarkup && !document.querySelector(readySelector))) { 13 return false; 14 } 15 16 if (!$.fn || typeof $.fn.slick !== 'function') { 17 if (typeof window.ensureNcrdoSlickAssets === 'function') { 18 window.ensureNcrdoSlickAssets().then(function () { 19 init(allowLegacyMarkup); 20 }).catch(console.warn); 21 } 22 return false; 23 } 24 25 started = true; 26 var $slider = $(slider); 27 var slick = $.fn.slick.__ncrdoOriginalSlick || $.fn.slick; 28 slick.call($slider, { 29 slidesToShow: 4, 30 slidesToScroll: 1, 31 arrows: true, 32 dots: false, 33 infinite: true, 34 autoplay: true, 35 autoplaySpeed: 4000, 36 lazyLoad: 'ondemand', 37 responsive: [ 38 { 39 breakpoint: 1200, 40 settings: { 41 slidesToShow: 3, 42 variableWidth: false 43 } 44 }, 45 { 46 breakpoint: 960, 47 settings: { 48 slidesToShow: 2, 49 variableWidth: false 50 } 51 }, 52 { 53 breakpoint: 600, 54 settings: { 55 slidesToShow: 1, 56 variableWidth: false 57 } 58 } 59 ] 60 }); 61 62 return true; 63 } 64 65 var markupObserver = null; 66 var viewportObserver = null; 67 var activationArmed = false; 68 69 70 function removeActivationListeners() { 71 window.removeEventListener('wheel', activateFromIntent); 72 window.removeEventListener('touchstart', activateFromIntent); 73 document.removeEventListener('keydown', activateFromKeyboard); 74 if (viewportObserver) { 75 viewportObserver.disconnect(); 76 viewportObserver = null; 77 } 78 } 79 80 function activate() { 81 if (init(true)) { 82 removeActivationListeners(); 83 } 84 } 85 86 function activateFromIntent() { 87 window.setTimeout(activate, 0); 88 } 89 90 function activateFromKeyboard(event) { 91 if (['PageDown', 'End', 'ArrowDown', ' '].indexOf(event.key) !== -1) { 92 activateFromIntent(); 93 } 94 } 95 96 function arm(allowLegacyMarkup) { 97 if (started || activationArmed) { 98 return true; 99 } 100 101 var slider = document.querySelector(sliderSelector); 102 if (!slider || (!allowLegacyMarkup && !document.querySelector(readySelector))) { 103 return false; 104 } 105 106 activationArmed = true; 107 if (!('IntersectionObserver' in window)) { 108 activate(); 109 return true; 110 } 111 112 viewportObserver = new IntersectionObserver(function (entries) { 113 if (entries.some(function (entry) { return entry.isIntersecting; })) { 114 activate(); 115 } 116 }, { rootMargin: '1600px 0px', threshold: 0.01 }); 117 viewportObserver.observe(slider); 118 window.addEventListener('wheel', activateFromIntent, { once: true, passive: true }); 119 window.addEventListener('touchstart', activateFromIntent, { once: true, passive: true }); 120 document.addEventListener('keydown', activateFromKeyboard); 121 return true; 122 } 123 124 if (arm(false)) { 125 return; 126 } 127 128 markupObserver = new MutationObserver(function () { 129 if (arm(false)) { 130 markupObserver.disconnect(); 131 } 132 }); 133 134 markupObserver.observe(document.documentElement, { childList: true, subtree: true }); 135 document.addEventListener('DOMContentLoaded', function () { 136 if (arm(true) && markupObserver) { 137 markupObserver.disconnect(); 138 } 139 }, { once: true }); 140})(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.