1/******/ (() => { // webpackBootstrap 2/*!*********************************!*\ 3 !*** ./src/assets/js/script.js ***! 4 \*********************************/ 5(function () { 6 // eslint-disable-next-line camelcase 7 function ajax_apply_filter(course_grid, filter) { 8 const data = { 9 action: 'ld_cg_apply_filter', 10 // eslint-disable-next-line camelcase, no-undef 11 nonce: LearnDash_Course_Grid.nonce.load_posts, 12 filter: prepare_filter(filter), 13 course_grid: { 14 // eslint-disable-next-line camelcase 15 ...course_grid.dataset 16 } 17 }; 18 data.filter = JSON.stringify(data.filter); 19 data.course_grid = JSON.stringify(data.course_grid); 20 21 // eslint-disable-next-line camelcase, no-undef 22 fetch(LearnDash_Course_Grid.ajaxurl, { 23 method: 'POST', 24 credentials: 'same-origin', 25 headers: { 26 'Content-Type': 'application/x-www-form-urlencoded' 27 }, 28 body: new URLSearchParams(data) 29 }).then(response => { 30 return response.json(); 31 }) 32 // eslint-disable-next-line no-shadow 33 .then(data => { 34 if (typeof data !== 'undefined') { 35 // eslint-disable-next-line eqeqeq 36 if (data.status == 'success') { 37 // eslint-disable-next-line camelcase 38 const items_wrapper = 39 // eslint-disable-next-line camelcase 40 course_grid.querySelector('.items-wrapper'); 41 42 // eslint-disable-next-line camelcase 43 items_wrapper.style.visibility = 'hidden'; 44 // eslint-disable-next-line camelcase 45 items_wrapper.innerHTML = data.html; 46 47 // eslint-disable-next-line camelcase 48 course_grid.dataset.page = data.page; 49 const pagination = 50 // eslint-disable-next-line camelcase 51 course_grid.querySelector('.pagination'); 52 if (!pagination) { 53 // eslint-disable-next-line camelcase 54 course_grid.insertAdjacentHTML('beforeend', data.html_pagination); 55 } 56 57 // eslint-disable-next-line eqeqeq 58 if (data.html_pagination == '') { 59 // eslint-disable-next-line no-shadow 60 const pagination = 61 // eslint-disable-next-line camelcase 62 course_grid.querySelector('.pagination'); 63 if (pagination) { 64 pagination.remove(); 65 } 66 } 67 68 // eslint-disable-next-line camelcase, eqeqeq 69 if (course_grid.dataset.skin == 'grid') { 70 setTimeout(function () { 71 // eslint-disable-next-line no-undef 72 learndash_course_grid_init_grid_responsive_design(); 73 }, 500); 74 // eslint-disable-next-line camelcase, eqeqeq 75 } else if (course_grid.dataset.skin == 'masonry') { 76 setTimeout(function () { 77 // eslint-disable-next-line no-undef 78 learndash_course_grid_init_masonry( 79 // eslint-disable-next-line camelcase 80 course_grid.querySelector('.masonry')); 81 }, 500); 82 } else { 83 setTimeout(function () { 84 // eslint-disable-next-line camelcase 85 items_wrapper.style.visibility = 'visible'; 86 }, 500); 87 } 88 } 89 } 90 }).catch(error => { 91 // eslint-disable-next-line no-console 92 console.log(error); 93 }); 94 } 95 96 // eslint-disable-next-line camelcase 97 function ajax_init_infinite_scrolling(el) { 98 const wrapper = el.closest('.learndash-course-grid'); 99 if (!wrapper) { 100 // eslint-disable-next-line camelcase 101 infinite_scroll_run = false; 102 return false; 103 } 104 const filter = document.querySelector('.learndash-course-grid-filter[data-course_grid_id="' + wrapper.id + '"]'); 105 const data = { 106 action: 'ld_cg_load_more', 107 // eslint-disable-next-line camelcase, no-undef 108 nonce: LearnDash_Course_Grid.nonce.load_posts, 109 course_grid: JSON.stringify(wrapper.dataset), 110 filter: JSON.stringify(prepare_filter(filter)) 111 }; 112 fetch( 113 // eslint-disable-next-line camelcase, no-undef 114 LearnDash_Course_Grid.ajaxurl + '?' + new URLSearchParams(data), { 115 method: 'GET', 116 headers: { 117 'Content-Type': 'application/json' 118 } 119 }).then(response => { 120 return response.json(); 121 }) 122 // eslint-disable-next-line no-shadow 123 .then(data => { 124 if (typeof data !== 'undefined') { 125 // eslint-disable-next-line eqeqeq 126 if (data.status == 'success') { 127 wrapper.querySelector('.items-wrapper').insertAdjacentHTML('beforeend', data.html); 128 if (data.page !== 'complete') { 129 wrapper.dataset.page = data.page; 130 } 131 132 // eslint-disable-next-line eqeqeq 133 if (wrapper.dataset.pagination == 'infinite') { 134 // eslint-disable-next-line camelcase 135 infinite_scroll_run = false;
136 } 137 138 // eslint-disable-next-line eqeqeq 139 if (data.page == 'complete') { 140 const pagination = wrapper.querySelector('.pagination'); 141 pagination.remove(); 142 } 143 144 // eslint-disable-next-line eqeqeq 145 if (wrapper.dataset.skin == 'grid') { 146 setTimeout(function () { 147 // eslint-disable-next-line no-undef 148 learndash_course_grid_init_grid_responsive_design(); 149 }, 500); 150 // eslint-disable-next-line eqeqeq 151 } else if (wrapper.dataset.skin == 'masonry') { 152 wrapper.style.visibility = 'hidden'; 153 setTimeout(function () { 154 // eslint-disable-next-line no-undef 155 learndash_course_grid_init_masonry(wrapper.querySelector('.masonry')); 156 wrapper.style.visibility = 'visible'; 157 }, 500); 158 } 159 } 160 } 161 }).catch(error => { 162 // eslint-disable-next-line no-console 163 console.log(error); 164 }); 165 } 166 167 // eslint-disable-next-line camelcase 168 function in_viewport(element) { 169 const pos = element.getBoundingClientRect(); 170 // eslint-disable-next-line no-undef 171 return !(pos.top > innerHeight || pos.bottom < 0); 172 } 173 174 // eslint-disable-next-line camelcase 175 function prepare_filter(filter) { 176 const data = {}; 177 if (!filter) { 178 return data; 179 } 180 const search = filter.querySelector('input[name="search"]'); 181 // eslint-disable-next-line camelcase 182 const price_min = filter.querySelector('[name="price_min"]'); 183 // eslint-disable-next-line camelcase 184 const price_max = filter.querySelector('[name="price_max"]'); 185 data.search = search ? search.value : null; 186 let taxonomies = filter.dataset.taxonomies; 187 taxonomies = taxonomies.split(',').map(function (value) { 188 return value.trim(); 189 }); 190 191 // eslint-disable-next-line camelcase 192 data.price_min = price_min ? price_min.value : null; 193 // eslint-disable-next-line camelcase 194 data.price_max = price_max ? price_max.value : null; 195 taxonomies.forEach(function (taxonomy) { 196 const inputs = filter.querySelectorAll('input[name="' + taxonomy + '[]"]:checked'); 197 const values = []; 198 inputs.forEach(function (input) { 199 values.push(input.value); 200 }); 201 data[taxonomy] = values; 202 }); 203 return data; 204 } 205 206 // Toggle filter display handler 207 document.addEventListener('click', function (e) { 208 const el = e.target; 209 if (el.matches('.learndash-course-grid .toggle-filter')) { 210 if (el.nextElementSibling.style.display === 'none' || el.nextElementSibling.style.display === '') { 211 el.classList.remove('closed'); 212 el.classList.add('opened'); 213 el.nextElementSibling.style.display = 'block'; 214 } else { 215 el.classList.remove('opened'); 216 el.classList.add('closed'); 217 el.nextElementSibling.style.display = 'none'; 218 } 219 } 220 }); 221 222 // Apply filter handler 223 // eslint-disable-next-line camelcase 224 const filter_submit = document.querySelectorAll('.learndash-course-grid-filter .button.apply'); 225 226 // eslint-disable-next-line camelcase 227 if (filter_submit) { 228 // eslint-disable-next-line camelcase 229 filter_submit.forEach(function (el) { 230 el.addEventListener('click', function (e) { 231 e.preventDefault(); 232 const filter = this.closest('.learndash-course-grid-filter'); 233 if (filter) { 234 // eslint-disable-next-line camelcase 235 const course_grid = document.getElementById(filter.dataset.course_grid_id); 236 ajax_apply_filter(course_grid, filter); 237 } 238 if (filter.previousElementSibling && filter.previousElementSibling.classList.contains('toggle-filter')) { 239 filter.previousElementSibling.classList.remove('opened'); 240 filter.previousElementSibling.classList.add('closed'); 241 filter.style.display = 'none'; 242 } 243 }); 244 }); 245 } 246 247 // Clear filter handler 248 // eslint-disable-next-line camelcase 249 const filter_clear = document.querySelectorAll('.learndash-course-grid-filter .button.clear'); 250 251 // eslint-disable-next-line camelcase 252 if (filter_clear) { 253 // eslint-disable-next-line camelcase 254 filter_clear.forEach(function (el) { 255 el.addEventListener('click', function (e) { 256 e.preventDefault(); 257 const filter = this.closest('.learndash-course-grid-filter'); 258 if (filter) { 259 const search = filter.querySelector('input[name="search"]'); 260 // eslint-disable-next-line camelcase 261 const price_min = filter.querySelector('input[name="price_min"]'); 262 // eslint-disable-next-line camelcase 263 const price_max = filter.querySelector('input[name="price_max"]'); 264 // eslint-disable-next-line camelcase 265 const price_min_range = filter.querySelector('input[name="price_min_range"]'); 266 // eslint-disable-next-line camelcase 267 const price_max_range = filter.querySelector('input[name="price_max_range"]'); 268 if (search) { 269 filter.querySelector('input[name="search"]').value = ''; 270 } 271 272 // eslint-disable-next-line camelcase 273 if (price_min) { 274 filter.querySelector('input[name="price_min"]').value = ''; 275 } 276 277 // eslint-disable-next-line camelcase 278 if (price_max) { 279 filter.querySelector('input[name="price_max"]').value = ''; 280 } 281 282 // eslint-disable-next-line camelcase 283 if (price_min_range) { 284 filter.querySelector('input[name="price_min_range"]').value = ''; 285 } 286 287 // eslint-disable-next-line camelcase 288 if (price_max_range) { 289 filter.querySelector('input[name="price_max_range"]').value = ''; 290 } 291 filter.dataset.taxonomies.split(',').forEach(function (taxonomy) { 292 taxonomy = taxonomy.trim(); 293 294 // eslint-disable-next-line eqeqeq 295 if (taxonomy != '') { 296 filter.querySelectorAll('input[name="' + taxonomy + '[]"]:not([disabled])').forEach(function (input) { 297 input.checked = false;
298 }); 299 } 300 }); 301 302 // eslint-disable-next-line camelcase 303 const course_grid = document.getElementById(filter.dataset.course_grid_id); 304 ajax_apply_filter(course_grid, filter); 305 if (filter.previousElementSibling && filter.previousElementSibling.classList.contains('toggle-filter')) { 306 filter.previousElementSibling.classList.remove('opened'); 307 filter.previousElementSibling.classList.add('closed'); 308 filter.style.display = 'none'; 309 } 310 } 311 }); 312 }); 313 } 314 315 // Dynamic input value update for price filter inputs 316 document.addEventListener('input', function (e) { 317 if (e.target.classList.contains('range')) { 318 const name = e.target.name, 319 value = e.target.value, 320 // eslint-disable-next-line camelcase 321 price_wrapper = e.target.closest('.filter'); 322 switch (name) { 323 case 'price_min_range': 324 // eslint-disable-next-line camelcase 325 price_wrapper.querySelector('[name="price_min"]').value = value; 326 break; 327 case 'price_max_range': 328 // eslint-disable-next-line camelcase 329 price_wrapper.querySelector('[name="price_max"]').value = value; 330 break; 331 } 332 } 333 if (e.target.closest('.number-wrapper') !== null && 334 // eslint-disable-next-line eqeqeq 335 e.target.type == 'number') { 336 const name = e.target.name, 337 value = e.target.value, 338 // eslint-disable-next-line camelcase 339 price_wrapper = e.target.closest('.filter'); 340 switch (name) { 341 case 'price_min': 342 // eslint-disable-next-line camelcase 343 price_wrapper.querySelector('[name="price_min_range"]').value = value; 344 break; 345 case 'price_max': 346 // eslint-disable-next-line camelcase 347 price_wrapper.querySelector('[name="price_max_range"]').value = value; 348 break; 349 } 350 } 351 }); 352 353 /** 354 * Pagination 355 */ 356 357 // Load more button pagination handler 358 document.addEventListener('click', function (e) { 359 const el = e.target; 360 if (!el.matches('.learndash-course-grid[data-pagination="button"] .pagination .load-more')) { 361 return; 362 } 363 e.preventDefault(); 364 const wrapper = el.closest('.learndash-course-grid'); 365 const filter = document.querySelector('.learndash-course-grid-filter[data-course_grid_id="' + wrapper.id + '"]'); 366 const data = { 367 action: 'ld_cg_load_more', 368 // eslint-disable-next-line camelcase, no-undef 369 nonce: LearnDash_Course_Grid.nonce.load_posts, 370 course_grid: JSON.stringify(wrapper.dataset), 371 filter: JSON.stringify(prepare_filter(filter)) 372 }; 373 374 // AJAX request 375 fetch( 376 // eslint-disable-next-line camelcase, no-undef 377 LearnDash_Course_Grid.ajaxurl + '?' + new URLSearchParams(data), { 378 method: 'GET', 379 headers: { 380 'Content-Type': 'application/json' 381 } 382 }).then(response => { 383 return response.json(); 384 }) 385 // eslint-disable-next-line no-shadow 386 .then(data => { 387 if (typeof data !== 'undefined') { 388 // eslint-disable-next-line eqeqeq 389 if (data.status == 'success') { 390 // eslint-disable-next-line camelcase 391 const items_wrapper = wrapper.querySelector('.items-wrapper'); 392 393 // eslint-disable-next-line camelcase 394 items_wrapper.insertAdjacentHTML('beforeend', data.html); 395 if (data.page !== 'complete') { 396 wrapper.dataset.page = data.page; 397 } 398 399 // eslint-disable-next-line eqeqeq 400 if (data.page == 'complete') { 401 const pagination = wrapper.querySelector('.pagination'); 402 if (pagination) { 403 pagination.remove(); 404 } 405 } 406 if ( 407 // eslint-disable-next-line eqeqeq 408 wrapper.dataset.skin == 'grid' && 409 // eslint-disable-next-line eqeqeq 410 data.html != '') { 411 setTimeout(function () { 412 // eslint-disable-next-line no-undef 413 learndash_course_grid_init_grid_responsive_design(); 414 }, 500); 415 } else if ( 416 // eslint-disable-next-line eqeqeq 417 wrapper.dataset.skin == 'masonry' && 418 // eslint-disable-next-line eqeqeq 419 data.html != '') { 420 wrapper.style.visibility = 'hidden'; 421 setTimeout(function () { 422 // eslint-disable-next-line no-undef 423 learndash_course_grid_init_masonry(wrapper.querySelector('.masonry')); 424 wrapper.style.visibility = 'visible'; 425 }, 500); 426 } 427 } 428 } 429 }).catch(error => { 430 // eslint-disable-next-line no-console 431 console.log(error); 432 }); 433 }); 434 435 // Infinite scrolling handler 436 // eslint-disable-next-line camelcase 437 let infinite_scroll_run = false;
438 document.addEventListener('scroll', function () { 439 // eslint-disable-next-line camelcase 440 const infinite_scroll_elements = document.querySelectorAll('.learndash-course-grid[data-pagination="infinite"] .pagination'); 441 442 // eslint-disable-next-line camelcase 443 if (infinite_scroll_elements) { 444 // eslint-disable-next-line camelcase 445 infinite_scroll_elements.forEach(function (infinite_scroll) { 446 // Make sure the function is called only once 447 // eslint-disable-next-line camelcase 448 if (in_viewport(infinite_scroll) && !infinite_scroll_run) { 449 // eslint-disable-next-line camelcase 450 infinite_scroll_run = true; 451 ajax_init_infinite_scrolling(infinite_scroll); 452 } 453 }); 454 } 455 }); 456})(); 457/******/ })() 458; 459//# sourceMappingURL=script.js.map
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.