1var widgetPopupModalEl = document.querySelector('#widgetPopupModal'); 2 3if (widgetPopupModalEl) { 4 var timestamp = widgetPopupModalEl.getAttribute('data-timestamp'); 5 const currentDate = `${new Date().toDateString()}_${timestamp}`; 6 const lastShownDate = localStorage.getItem('lastShownDate'); 7 console.log('popup', currentDate, lastShownDate) 8 if (!lastShownDate || lastShownDate !== currentDate) { 9 10 11 const widgetPopupModal = new bootstrap.Modal(widgetPopupModalEl) 12 setTimeout(() => { 13 14 widgetPopupModal.show(); 15 // Update the last shown date in localStorage 16 localStorage.setItem('lastShownDate', currentDate); 17 18 }, 8000); 19 20 } 21} 22 23const popupMessage = document.getElementById('popupMessageModal'); 24if (popupMessage) { 25 26 27 console.log('show popupMessageModal'); 28 setTimeout(function () { 29 const popupMessageModal = new bootstrap.Modal(popupMessage) 30 popupMessageModal.show(); 31 }, 100); 32} 33 34 35const stickyElement = document.getElementById('page-header'); 36if (stickyElement) { 37 const stickyOffset = stickyElement.offsetTop; 38 window.addEventListener('scroll', () => { 39 if (window.scrollY > stickyOffset) { 40 stickyElement.classList.add('sticky'); 41 } else { 42 stickyElement.classList.remove('sticky'); 43 } 44 }); 45} 46 47const chinaSourceSearch = document.getElementById('header-search'); 48if (chinaSourceSearch) { 49 const input = chinaSourceSearch.querySelector('input[name="source"]'); 50 const inputBtn = chinaSourceSearch.querySelector('.btn-source span'); 51 const items = chinaSourceSearch.querySelectorAll('.dropdown-item'); 52 console.log('text', items.length) 53 items.forEach(item => { 54 item.addEventListener('click', () => { 55 56 items.forEach(item2 => { 57 item2.classList.remove('active') 58 }) 59 const text = item.textContent.trim(); 60 item.classList.add('active'); 61 input.value = text; 62 inputBtn.textContent = text; 63 64 }); 65 }); 66} 67 68if (AOS) { 69 AOS.init(); 70} 71 72const homeBlock6 = document.getElementById('home-block-6'); 73if (homeBlock6) { 74 75 var swiperProcessNumber = new Swiper(".home-item-6 .swiper-number", { 76 speed: 1200, 77 slidesPerView: "auto", 78 // slidesPerGroup: 2, 79 initialSlide: 0, 80 centeredSlides: true, 81 loop: false, 82 spaceBetween: 0, 83 slideToClickedSlide: true, 84 direction: "vertical", 85 effect: "slide", 86 }); 87 88 var swiperProcess = new Swiper(".home-item-6 .swiper", { 89 speed: 1200, 90 slidesPerView: "auto", 91 // slidesPerGroup: 2, 92 initialSlide: 0, 93 centeredSlides: false, 94 loop: false, 95 spaceBetween: 0, 96 effect: "fade", 97 navigation: { 98 prevEl: ".home-item-6 .swiper-prev", 99 nextEl: ".home-item-6 .swiper-next", 100 }, 101 pagination: { 102 el: ".home-item-6 .swiper-pagination", 103 clickable: true 104 } 105 }); 106 swiperProcessNumber.controller.control = swiperProcess; 107 swiperProcess.controller.control = swiperProcessNumber; 108} 109 110 111function initSwiper(element, customizeOption) { 112 const swiperSlider = document.querySelectorAll(element); 113 if (swiperSlider) { 114 swiperSlider.forEach((item) => { 115 const swiper = item.querySelector(".swiper"); 116 const pagi = item.querySelector(".swiper-pagination"); 117 const next = item.querySelector(".swiper-next"); 118 const prev = item.querySelector(".swiper-prev"); 119 120 var slide = new Swiper(swiper, { 121 watchSlidesProgress: true, 122 pagination: { 123 el: pagi, 124 clickable: true, 125 }, 126 navigation: { 127 nextEl: next, 128 prevEl: prev, 129 }, 130 fadeEffect: { 131 crossFade: true, 132 }, 133 ...customizeOption, 134 }); 135 }); 136 } 137} 138 139 140initSwiper(".home-news", { 141 speed: 1200, 142 slidesPerView: "auto", 143 // slidesPerGroup: 2, 144 spaceBetween: 30, 145 initialSlide: 0, 146 centeredSlides: false, 147 loop: false, 148 spaceBetween: 0, 149 effect: "slide", 150});
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.