1(function () { 2 'use strict'; 3 4 var LANGUAGE_FALLBACK_ORDER = [ 5 'en', 'ar', 'zh-CN', 'nl', 'fr', 'de', 'it', 'ja', 'ko', 'no', 'es', 'eo' 6 ]; 7 8 function resolveValue(map, targetLang) { 9 if (!map) { 10 return ''; 11 } 12 if (targetLang && map[targetLang] && map[targetLang].trim()) { 13 return map[targetLang].trim(); 14 } 15 if (map['en'] && map['en'].trim()) { 16 return map['en'].trim(); 17 } 18 if (map['pt-br'] && map['pt-br'].trim()) { 19 return map['pt-br'].trim(); 20 } 21 for (var i = 0; i < LANGUAGE_FALLBACK_ORDER.length; i++) { 22 var lang = LANGUAGE_FALLBACK_ORDER[i]; 23 if (map[lang] && map[lang].trim()) { 24 return map[lang].trim(); 25 } 26 } 27 return ''; 28 } 29 30 function applyBanner(scriptEl) { 31 var nid = scriptEl.getAttribute('data-banner-nid'); 32 var bannerEl = document.querySelector('.main-banner-item[data-banner-nid="' + nid + '"]'); 33 if (!bannerEl) { 34 return; 35 } 36 37 var data; 38 try { 39 data = JSON.parse(scriptEl.textContent); 40 } catch (e) { 41 return; 42 } 43 44 var targetLang = document.documentElement.lang; 45 46 var image = resolveValue(data.image, targetLang); 47 var linkUrl = resolveValue(data.linkUrl, targetLang); 48 var linkLabel = resolveValue(data.linkLabel, targetLang); 49 var videoUrl = resolveValue(data.videoUrl, targetLang); 50 51 var imageEl = bannerEl.querySelector('img.image'); 52 if (imageEl && image) { 53 imageEl.setAttribute('src', image); 54 } 55 56 var knowMoreEl = bannerEl.querySelector('a.button-know-more'); 57 if (knowMoreEl) { 58 if (linkUrl) { 59 knowMoreEl.setAttribute('href', linkUrl); 60 knowMoreEl.style.display = ''; 61 } else { 62 knowMoreEl.style.display = 'none'; 63 } 64 if (linkLabel) { 65 knowMoreEl.textContent = linkLabel; 66 } 67 } else { 68 var wrapperLinkEl = bannerEl.querySelector(':scope > a'); 69 if (wrapperLinkEl && linkUrl) { 70 wrapperLinkEl.setAttribute('href', linkUrl); 71 } 72 } 73 74 var playEl = bannerEl.querySelector('a.main-banner-button-play'); 75 if (playEl) { 76 if (videoUrl) { 77 playEl.setAttribute('href', videoUrl); 78 playEl.style.display = ''; 79 } else { 80 playEl.style.display = 'none'; 81 } 82 } 83 } 84 85 document.addEventListener('DOMContentLoaded', function () { 86 document.querySelectorAll('script.banner-language-data').forEach(applyBanner); 87 document.querySelectorAll('.main-banner-item').forEach((item) => { 88 item.classList.remove('hide'); 89 }); 90 }); 91})();
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.