1(() => { 2 const list = document.querySelector(".trial_list"); 3 const text = document.querySelector(".trial_description"); 4 5 if (list) { 6 const dataBase = {}; 7 const dataTheme = {}; 8 9 function activeElement(array, elem, activeClass) { 10 array.forEach((arr) => { 11 if (arr !== elem) arr.classList.remove(activeClass); 12 }); 13 elem.classList.add(activeClass); 14 } 15 16 //ÑкÑÑÑÑ ÑемÑ, еÑли в ней Ð½ÐµÑ ÐºÐ¾Ð½ÑенÑа 17 function subtitleVisible(arrayTitle, id) { 18 let themeArray = []; 19 dataBase[id].forEach((elem) => { 20 if (elem.text) { 21 themeArray.push(elem.theme); 22 } 23 }); 24 arrayTitle.forEach((subtitle) => { 25 if (!themeArray.includes(subtitle.querySelector("p").textContent)) { 26 subtitle.style.display = "none"; 27 } else { 28 subtitle.style.display = ""; 29 } 30 }); 31 } 32 33 //ÑÑнкÑÐ¸Ñ Ð½Ð° изменение конÑенÑа 34 function changeContent(elem) { 35 //Ñдаление ÑекÑÑего ÑекÑÑа 36 text.querySelector(".trial_description-text").innerHTML = ""; 37 text.querySelector(".trial_text-wrap").innerHTML = ""; 38 39 let paragraphs = elem.text.split(" "); 40 41 //1 ваÑÐ¸Ð°Ð½Ñ 42 if (elem.audio && elem.text.length > 300 && paragraphs.length > 2) { 43 let firstText, lastText; 44 45 //делим обзаÑÑ Ð¿ÑимеÑно пополам и ÑÑбим его по пÑÐ¾Ð±ÐµÐ»Ñ 46 half_paragraphs = Math.floor(paragraphs.length / 2); 47 firstText = paragraphs.slice(0, half_paragraphs).join(" "); 48 lastText = paragraphs 49 .slice(half_paragraphs + 1, paragraphs.length) 50 .join(" "); 51 52 let firstArray = firstText.split(" "); 53 54 for (let i = 0; i < firstArray.length; i++) { 55 text.querySelector(".trial_description-text").innerHTML += ` 56 <p>${firstArray[i]}</p> 57 `; 58 } 59 60 let lastArray = lastText.split(" "); 61 62 for (let i = 0; i < lastArray.length; i++) { 63 text.querySelector(".trial_text-wrap").innerHTML += ` 64 <p class='trial_text ${i === 0 ? "trial_text-show" : ""}'>${lastArray[i] 65 }</p> 66 `; 67 } 68 } else { 69 let arrayText = elem.text.split(" "); 70 if (arrayText) { 71 for (let i = 0; i < arrayText.length; i++) { 72 text.querySelector(".trial_description-text").innerHTML += ` 73 <p>${arrayText[i]}</p> 74 `; 75 } 76 } else { 77 text.querySelector(".trial_description-text").innerHTML += ` 78 <p>${elem.text}</p> 79 `; 80 } 81 } 82 83 //Ñмена заголовка ÑÐµÐ¼Ñ 84 document.querySelector(".trial_description-title").innerText = elem.theme; 85 86 //Ñмена аÑдиоÑайла и его оÑÑановка 87 document.querySelector("audio").pause(); 88 if (document.querySelector(".pause")) { 89 document.querySelector(".pause").classList.replace("pause", "play"); 90 } 91 92 //ÑкÑÑваÑÑ Ð¿Ð»ÐµÐµÑ, еÑли аÑдиоÑайла Ð½ÐµÑ 93 // if (elem.audio) { 94 // document.querySelector(".trial_audio").style.display = ""; 95 // document.querySelector(".player_title_text").innerText = 96 // elem.audioTitle; 97 // document.querySelector( 98 // "audio" 99 // ).src = `wp-content/themes/my-theme/assets/audio/${elem.audio}.mp3`; 100 // document.querySelector(".info-tultip").classList.remove('active'); 101 // } else { 102 // document.querySelector(".trial_audio").style.display = "none"; 103 // } 104 105 //ÑкÑÑÑÑ Ð¿Ð»ÑÑ ÐµÑли Ð½ÐµÑ ÑкÑÑÑого ÑекÑÑа 106 if (document.querySelector('.trial_btn-show')) { 107 if (document.querySelectorAll('.trial_text-wrap .trial_text').length <= 1) { 108 document.querySelector('.trial_btn-show').style.display = 'none'; 109 } else { 110 document.querySelector('.trial_btn-show').style.display = ''; 111 } 112 } 113 } 114 115 $.ajax({ 116 url: "processing", 117 type: "POST", 118 dataType: "json",
119 data: { try_free: "try_free" }, 120 success: function (data) { 121 //опÑеделение колиÑеÑÑва Ñем и Ð¸Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ 122 for (let key in data) { 123 dataBase[data[key].title] = []; 124 dataTheme[data[key].title] = ""; 125 } 126 //ÑоÑмиÑование обÑекÑа Ñ Ð´Ð°Ð½Ð½Ñми из полÑÑеннÑÑ 127 for (let id in dataBase) { 128 for (let key in data) { 129 if (data[key].title == id) { 130 if (data[key].theme_title.length > 0) { 131 dataTheme[data[key].title] = data[key].theme_title; 132 } 133 dataBase[data[key].title].push({ 134 theme_title: data[key].theme_title, 135 title: data[key].title, 136 text: data[key].text, 137 audio: data[key].audio, 138 audioTitle: data[key].audio_title, 139 theme: data[key].trial_theme, 140 }); 141 } 142 } 143 } 144 }, 145 }) 146 .then(function () { 147 //оÑÑиÑовÑваем ÑÐµÐ¼Ñ Ð¿Ð¾Ñле полной обÑабоÑки полÑÑеннÑÑ Ð´Ð°Ð½Ð½ÑÑ 148 for (let key in dataBase) { 149 list.innerHTML += ` 150 <li class="trial_item" id=${key}> 151 <p data-key=${key} class="trial_title ${key == 1 ? "active" : ""}">${dataTheme[key] ? dataTheme[key] : key}</p> 152 <ul class="trial_nested-list ${key == 1 ? "active" : ""}"> 153 <li class="show-active"> 154 <p>ÐбÑее</p> 155 </li> 156 <li> 157 <p class="trial_list-reference">РекомендÑÐµÐ¼Ð°Ñ ÑиÑÑема</p> 158 </li> 159 <li> 160 <p class="trial_list-diary">Ðневник пиÑаниÑ</p> 161 </li> 162 </ul> 163 </li> 164 `; 165 } 166 //по ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑÑÑавлÑеÑÑÑ Ð¿ÐµÑÐ²Ð°Ñ Ñема "обÑее" 167 dataBase[1].forEach((elem) => { 168 if (elem.theme === "ÐбÑее") { 169 changeContent(elem); 170 } 171 }); 172 }) 173 .then(function () { 174 //веÑаем обÑабоÑÑики поÑле оÑÑиÑовки DOM 175 const $window = $(window); 176 177 //desktop 178 if ($window.width() >= 960) { 179 const desktopTitle = document.querySelectorAll(".trial_title"); 180 const desktopSubtitle = document.querySelectorAll( 181 ".trial_nested-list li" 182 ); 183 subtitleVisible(desktopSubtitle, 1) 184 185 desktopTitle.forEach((li) => { 186 li.addEventListener("click", function () { 187 //вÑделение акÑивного заголовка 188 li.closest(".trial_item") 189 .querySelector(".trial_nested-list") 190 .classList.toggle("active"); 191 li.classList.toggle("active"); 192 193 //ÑкÑÑÑие неакÑивного заголовка 194 desktopTitle.forEach((title) => { 195 if (title !== li && title.classList.contains("active")) { 196 title.classList.remove("active"); 197 title 198 .closest(".trial_item") 199 .querySelector(".trial_nested-list") 200 .classList.remove("active"); 201 } 202 }); 203 204 subtitleVisible( 205 li 206 .closest(".trial_item") 207 .querySelectorAll(".trial_nested-list li"), 208 li.closest(".trial_item").id 209 ); 210 //Ñмена конÑенÑа в завиÑимоÑÑи Ð¾Ñ Ð°ÐºÑивного подзаголовка 211 li.closest(".trial_item") 212 .querySelectorAll(".trial_nested-list li") 213 .forEach((item) => { 214 if (item.classList.contains("show-active")) { 215 dataBase[li.closest(".trial_item").id].forEach((elem) => { 216 if (elem.theme === item.querySelector("p").textContent) { 217 changeContent(elem); 218 } 219 }); 220 } 221 }); 222 }); 223 }); 224 desktopSubtitle.forEach((li) => { 225 li.addEventListener("click", function () { 226 //вÑделение акÑивного подзаголовка 227 activeElement( 228 li 229 .closest(".trial_item") 230 .querySelectorAll(".trial_nested-list li"), 231 li, 232 "show-active" 233 ); 234 //Ñмена ÑекÑÑа пÑи клике на подзаголовок
235 dataBase[li.closest(".trial_item").id].forEach((elem) => { 236 if (elem.theme === li.innerText) { 237 changeContent(elem); 238 } 239 }); 240 }); 241 }); 242 } else if ($window.width() < 960) { 243 //mobile 244 const mobileTitle = document.querySelectorAll(".trial_title"); 245 const mobileSubtitle = document.querySelectorAll( 246 ".trial_nested-list_mobile li" 247 ); 248 subtitleVisible(mobileSubtitle, 1) 249 250 mobileTitle.forEach((title) => { 251 title.addEventListener("click", function () { 252 //вÑделение акÑивного заголовка 253 activeElement(mobileTitle, title, "active"); 254 255 subtitleVisible(mobileSubtitle, title.getAttribute("data-key")); 256 let sub; 257 mobileSubtitle.forEach((subtitle) => { 258 //Ñмена конÑенÑа в завиÑимоÑÑи Ð¾Ñ Ð°ÐºÑивного подзаголовка 259 if (subtitle.querySelector("p").classList.contains("active")) { 260 sub = subtitle.querySelector("p"); 261 if (dataBase[title.getAttribute("data-key")].some((elem) => elem.theme === subtitle.querySelector("p").textContent)) { 262 dataBase[title.getAttribute("data-key")].forEach((elem) => { 263 if (elem.theme === subtitle.querySelector("p").textContent) { 264 changeContent(elem); 265 } 266 }); 267 } 268 } 269 }); 270 271 if (text.querySelector(".trial_description-text p").textContent.length === 0) { 272 sub.classList.remove('active'); 273 mobileSubtitle[0].querySelector('p').classList.add('active'); 274 dataBase[title.getAttribute("data-key")].forEach((elem) => { 275 if (elem.theme === mobileSubtitle[0].querySelector("p").textContent) { 276 changeContent(elem); 277 } 278 }); 279 } 280 }); 281 }); 282 283 mobileSubtitle.forEach((sub) => { 284 sub.addEventListener("click", function () { 285 // вÑделение акÑивного подзаголовка 286 mobileSubtitle.forEach((item) => { 287 if ( 288 item !== sub && 289 item.querySelector("p").classList.contains("active") 290 ) { 291 item.querySelector("p").classList.remove("active"); 292 } 293 }); 294 sub.querySelector("p").classList.add("active"); 295 296 // Ñмена конÑенÑа в завиÑимоÑÑи Ð¾Ñ Ð°ÐºÑивного заголовка 297 mobileTitle.forEach((title) => { 298 if (title.classList.contains("active")) { 299 dataBase[title.getAttribute("data-key")].forEach((elem) => { 300 if (elem.theme === sub.querySelector("p").textContent) { 301 changeContent(elem); 302 } 303 }); 304 } 305 }); 306 }); 307 }); 308 //ÑÐ»Ð°Ð¹Ð´ÐµÑ Ñем в мобилÑной веÑÑии 309 $('.themes_slider').flickity({ 310 draggable: true, 311 freeScroll: true, 312 prevNextButtons: false, 313 pageDots: false, 314 contain: true, 315 imagesLoaded: true, 316 watchCSS: true 317 }); 318 319 } 320 }); 321 } 322})();
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.