1var trackElements ; 2 3if(!trackElements){ 4 trackElements = [".vs-carousel-container .vs-btn", ".vs-carousel-container .vs-link-cta", ".vs-carousel-container .vs-bundle-play-white"]; 5} 6 7trackElements.forEach(elem => { 8 $(document).on("click", elem, function (event) { 9 var hasVideo = $(event.currentTarget).attr("data-modaltype"); 10 var node = getParentByTagName(event.target, "vs-content-bundle") 11 var heading = $(node).find(".vs-content-bundle-header").text(); 12 var text = hasVideo == "video" ? $(event.currentTarget.parentElement).attr("video-title") : $(event.target).text(); 13 var href = hasVideo == "video" ? $(event.currentTarget.parentElement).attr("video-url") : $(event.target).attr("href"); 14 let click_event = new CustomEvent('track_pns_link', { 15 detail: { 16 'event': 'content-bundle-link-click', 17 'component_type': 'content-bundle', 18 'link_heading': heading, 19 'link_text': text, 20 "link_url": href 21 } 22 }); 23 document.dispatchEvent(click_event) 24 }); 25}) 26 27function getParentByTagName(node, tagname) { 28 var parent; 29 if (node === null || tagname === '') return; 30 parent = node.parentNode; 31 tagname = tagname.toUpperCase(); 32 while (parent.tagName !== "HTML") { 33 if (parent.tagName === tagname) { 34 return parent; 35 } 36 parent = parent.parentNode; 37 } 38 return parent; 39}
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.