PageSourceSearch

https://measuringu.com/wp-content/plugins/sfwd-lms/includes/course-grid/assets/js/script.js?ver=5.2.0

js measuringu.com collected 2026-09-24 08:32:27 UTC 16,659 bytes, 459 lines download raw bytes

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.