1(function () { 2 var tries = 0; 3 function run() { 4 try { 5 var raw = localStorage.getItem('neofireFilterLast'); 6 if (!raw) { 7 return; 8 } 9 var last = JSON.parse(raw) || {}; 10 var groups = document.querySelectorAll('.variant-group'); 11 var sig = []; 12 for (var q = 0; q < groups.length; q++) { 13 groups[q].querySelectorAll('.variant-option').forEach(function (t) { 14 sig.push( 15 (t.getAttribute('onclick') || t.getAttribute('data-article-uuid') || '').replace(/\s/g, '') 16 ); 17 }); 18 } 19 sig = sig.join('|'); 20 if (!sig || window.__neofireVarPre === sig) { 21 return; 22 } 23 window.__neofireVarPre = sig; 24 for (var i = 0; i < groups.length; i++) { 25 var g = groups[i]; 26 var te = g.querySelector('.property-title'); 27 var title = (te ? te.textContent : '').replace(/:\s*$/, '').trim(); 28 var texts = last[title]; 29 if (!texts) { 30 continue; 31 } 32 var tabs = g.querySelectorAll('.variant-option'), 33 active = null, 34 hit = null; 35 for (var k = 0; k < tabs.length; k++) { 36 var t = tabs[k]; 37 var txt = t.textContent.trim(); 38 if (t.classList.contains('active')) { 39 active = t; 40 } 41 if (!hit && texts.indexOf(txt) >= 0 && !t.classList.contains('variant-out')) { 42 hit = t; 43 } 44 } 45 if (!hit || hit === active) { 46 continue; 47 } 48 var oc = hit.getAttribute('onclick') || '', 49 m = oc.match(/loadProduct\(\s*['"]([^'"]+)['"]/); 50 var u = m ? m[1] : hit.getAttribute('data-article-uuid') || ''; 51 if (u) { 52 setTimeout(function () { 53 window.loadProduct(u, 'replace'); 54 }, 0); 55 return; 56 } 57 } 58 } catch (e) {} 59 } 60 (function wait() { 61 if (typeof window.loadProduct === 'function') { 62 run(); 63 } else if (tries++ < 60) { 64 setTimeout(wait, 100); 65 } 66 })(); 67})();
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.