1const templateModalDownloadApp = ` 2<div class="modal-download-app modal hide" id="downloadAppModal" tabindex="-1" aria-labelledby="downloadAppModalLabel" aria-hidden="true"> 3 <div class="modal-close"> 4 <img src="/wp-content/themes/tekker-child/images/close.png" alt="Close" class="close-button" onclick="closeModal()"/> 5 </div> 6 <div class="modal-content"> 7 <div class="left-section"> 8 <h2>{{scanQRCodeText}}</h2> 9 <div class="store-badges"> 10 <a href="{{appStoreLink}}" target="_blank" rel="noopener"> 11 <img src="{{appStoreLogo}}" alt="Download on the App Store" class="store-badge"/> 12 </a> 13 <a href="{{googleStoreLink}}" target="_blank" rel="noopener"> 14 <img width="270" height="80" src="{{googleStoreLogo}}" alt="Get it on Google Play" class="store-badge"/> 15 </a> 16 </div> 17 </div> 18 <div class="right-section"> 19 <img src="/wp-content/themes/tekker-child/images/qr-code-apps.png" alt="QR Code" class="qr-code"/> 20 </div> 21 </div> 22</div>`; 23 24function isMobile() { 25 return /Mobi|Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( 26 navigator.userAgent 27 ); 28} 29 30function parseTemplate(template, data) { 31 return template.replace(/{{(.*?)}}/g, (_, key) => data[key.trim()] || ""); 32} 33 34function closeModal() { 35 $("#downloadAppModal").removeClass("show"); 36 $("body").removeClass("modal-open"); 37 $(document).off("keydown", onEscapeKey); 38 $(document).off("click", onClickOutside); 39} 40 41function onEscapeKey(event) { 42 if (event.key === "Escape") { 43 closeModal(); 44 } 45} 46 47function onClickOutside(event) { 48 if ( 49 $(event.target).closest(".modal-download-app .modal-content").length === 0 50 ) { 51 closeModal(); 52 } 53} 54 55function openModal() { 56 $("#downloadAppModal").addClass("show"); 57 $("body").removeClass("modal-open"); 58 // we close the modal then pressing escape or clicking outside the modal 59 $(document).on("keydown", onEscapeKey); 60 $(document).on("click", onClickOutside); 61} 62 63jQuery(document).ready(function ($) { 64 const parsedTemplate = parseTemplate(templateModalDownloadApp, templateText); 65 $("body").append(parsedTemplate); 66
67 $(document).on("click", 'a[href*="app.adjust.com"]', function (e) { 68 if (isMobile()) return; 69 e.preventDefault(); 70 openModal(); 71 }); 72 $(document).on("click", 'a[href*="rogervoice.go.link"]', function (e) { 73 if (isMobile()) return; 74 e.preventDefault(); 75 openModal(); 76 }); 77});
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.