| 1 |
import API from"../api";import{lpAddQueryArgs,lpFetchAPI,lpGetCurrentURLNoParam}from"../utils";import Cookies from"../utils/cookies";const elListCoursesIdNewDefault=".lp-list-courses-default";"undefined"!=typeof lpData&&"undefined"!=typeof lpSettingCourses||console.log("lpData || lpSettingCourses is undefined"),window.lpArchiveRequestCourse=e=>{window.lpCourseList.updateEventTypeBeforeFetch("filter"),window.lpCourseList.triggerFetchAPI(e)},document.addEventListener("change",(function(e){const t=e.target;window.lpCourseList.checkIsNewListCourses()||(window.lpCourseList.onChangeSortBy(e,t),window.lpCourseList.onChangeTypeLayout(e,t))})),document.addEventListener("click",(function(e){const t=e.target;window.lpCourseList.checkIsNewListCourses()||(window.lpCourseList.clickLoadMore(e,t),window.lpCourseList.clickNumberPage(e,t))})),document.addEventListener("scroll",(function(e){const t=e.target;window.lpCourseList.checkIsNewListCourses()||window.lpCourseList.scrollInfinite(e,t)})),document.addEventListener("keyup",(function(e){const t=e.target;window.lpCourseList.checkIsNewListCourses()||window.lpCourseList.searchCourse(e,t)})),document.addEventListener("submit",(function(e){const t=e.target;window.lpCourseList.checkIsNewListCourses()||window.lpCourseList.searchCourse(e,t)})),window.lpCourseList=(()=>{const e="lp-archive-courses",t="learn-press-courses",r="lp-archive-course-skeleton",s="courses-page-result",o=parseInt(lpSettingCourses.lpArchiveLoadAjax||0),n=1===parseInt(lpSettingCourses.lpArchiveNoLoadAjaxFirst),i=lpData.urlParams||[],a=lpGetCurrentURLNoParam();let c={};const l=lpSettingCourses.lpArchivePaginationType||"number";let u,d,p=!1;const f=(e,t={})=>{const r=lpAddQueryArgs(API.frontend.apiCourses,e);let s={};0!==parseInt(lpData.user_id)&&(s={headers:{"X-WP-Nonce":lpData.nonce}}),lpFetchAPI(r,s,t)};return{init:()=>{const e={},t=window.location.search,r=new URLSearchParams(t);for(const[t,s]of r.entries())e[t]=s;c={...i,...e},c.paged=parseInt(c.paged||1),isNaN(c.paged)&&(c.paged=1),n&&"number"!==l&&(c.paged=1),window.localStorage.setItem("lp_filter_courses",JSON.stringify(c))},updateEventTypeBeforeFetch:e=>{u=e},onChangeSortBy:(e,t)=>{if(!t.classList.contains("courses-order-by"))return;e.preventDefault();const r=JSON.parse(window.localStorage.getItem("lp_filter_courses"))||{};r.order_by=t.value||"","undefined"!=typeof lpSettingCourses&&lpData.is_course_archive&&lpSettingCourses.lpArchiveLoadAjax?window.lpCourseList.triggerFetchAPI(r):window.location.href=lpAddQueryArgs(a,r)},onChangeTypeLayout:(r,s)=>{if("lp-switch-layout-btn"!==s.getAttribute("name"))return;const o=s.closest(`.${e}`);if(!o)return;const n=o.querySelector(`.${t}`);if(!n)return;r.preventDefault();const i=s.value;i&&(n.dataset.layout=i,Cookies.set("courses-layout",i))},clickNumberPage:(t,r)=>{if(!o||parseInt(lpSettingCourses.noLoadCoursesJs))return;if(r.classList.contains("page-numbers")){if(!r.closest(`.${e}`))return;t.preventDefault();const s=c.paged;return r.classList.contains("prev")?c.paged=s-1:r.classList.contains("next")?c.paged=s+1:c.paged=parseInt(r.textContent),u="number",void window.lpCourseList.triggerFetchAPI(c)}const s=r.closest(".page-numbers");s&&(t.preventDefault(),s.click())},clickLoadMore:(r,s)=>{if(!s.classList.contains("courses-btn-load-more"))return;const o=s.closest(`.${e}`);if(!o)return;o.querySelector(`.${t}`)&&(r.preventDefault(),++c.paged,u="load-more",window.lpCourseList.triggerFetchAPI(c))},scrollInfinite:(t,r)=>{const s=document.querySelector(`.${e}`);if(!s)return;const o=s.querySelector(".courses-load-infinite");if(!o)return;new IntersectionObserver((function(e){for(const t of e)if(t.isIntersecting){if(p)return;++c.paged,u="infinite",window.lpCourseList.triggerFetchAPI(c)}})).observe(o)},triggerFetchAPI:r=>{const s=document.querySelector(`.${e}`);if(!s)return;const o=s.querySelector(`.${t}`);if(!o)return;let n;switch(c=r,u){case"load-more":n=window.lpCourseList.callBackPaginationTypeLoadMore(s,o);break;case"infinite":n=window.lpCourseList.callBackPaginationTypeInfinite(s,o);break;case"custom":n=r.customCallBack||!1;break;default:n=window.lpCourseList.callBackFilter(r,s,o)}n&&f(r,n)},callBackFilter:(t,o,n)=>{if(!n)return;const i=n.querySelector(`.${r}`);return{before:()=>{window.history.pushState("","",lpAddQueryArgs(a,t)),window.localStorage.setItem("lp_filter_courses",JSON.stringify(t)),i&&(i.style.display="block")},success:e=>{n.querySelectorAll(`:not(.${r})`).forEach((e=>{e.closest(`.${r}`)||e.remove()})),n.insertAdjacentHTML("afterbegin",e.data.content||"");const t=document.querySelector(".learn-press-pagination");t&&t.remove();const o=e.data.pagination||"";n.insertAdjacentHTML("afterend",o);const i=document.querySelector(`.${s}`);i&&(i.innerHTML=e.data.from_to||"")},error:e=>{n.innerHTML+=`<div class="lp-ajax-message error" style="display:block">${e.message||"Error"}</div>`},completed:()=>{i&&(i.style.display="none");n.closest(`.${e}`).scrollIntoView({behavior:"smooth"})}}},callBackPaginationTypeLoadMore:(e,t)=>{if(!t||!e)return!1;const r=e.querySelector(".courses-btn-load-more");let o;return r&&(o=r.querySelector(".lp-loading-circle")),{before:()=>{r&&(o.classList.remove("hide"),r.setAttribute("disabled","disabled"))},success:e=>{t.insertAdjacentHTML("beforeend",e.data.content||""),t.insertAdjacentHTML("afterend",e.data.pagination||"");const r=document.querySelector(`.${s}`);r&&(r.innerHTML=e.data.from_to||"")},error:e=>{t.innerHTML+=`<div class="lp-ajax-message error" style="display:block">${e.message||"Error"}</div>`},completed:()=>{r&&(o.classList.add("hide"),r.remove())}}},callBackPaginationTypeInfinite:(e,t)=>{if(!t||!t)return;const r=e.querySelector(".courses-load-infinite");if(!r)return;const o=r.querySelector(".lp-loading-circle");return p=!0,r.classList.remove("courses-load-infinite"),{before:()=>{o.classList.remove("hide")},success:e=>{t.insertAdjacentHTML("beforeend",e.data.content||""),e.data.pagination&&t.insertAdjacentHTML("afterend",e.data.pagination||"");const r=document.querySelector(`.${s}`);r&&(r.innerHTML=e.data.from_to||"")},error:e=>{t.innerHTML+=`<div class="lp-ajax-message error" style="display:block">${e.message||"Error"}</div>`},completed:()=>{r.remove(),p=!1}}},searchCourse:(r,s)=>{if("c_search"===s.name){r.preventDefault();const e=s.closest("form.search-courses");if(!e)return;return void e.querySelector('button[type="submit"]').click()}if(!s.classList.contains("search-courses"))return;const o=s;r.preventDefault();const n=o.closest(`.${e}`);if(!n)return;if(!n.querySelector(`.${t}`))return;const i=o.querySelector("input[name=c_search]").value;(!i||i&&i.length>2)&&(void 0!==d&&clearTimeout(d),d=setTimeout((function(){u="filter",c.c_search=i,c.paged=1,window.lpCourseList.triggerFetchAPI(c)}),800))},ajaxEnableLoadPage:()=>{let o=0;if(!n){let n;const i={success:i=>{n=setInterval((function(){const a=document.querySelector(`.${r}`),c=document.querySelector(`.${e}`);let l;if(c&&(l=c.querySelector(`.${t}`)),++o,o>5e3&&clearInterval(n),l&&a){clearInterval(n),l.insertAdjacentHTML("afterbegin",i.data.content||""),a.style.display="none";const e=i.data.pagination||"";l.insertAdjacentHTML("afterend",e);const t=document.querySelector(`.${s}`);t&&(t.innerHTML=i.data.from_to||"")}}),1)}};"number"!==l&&(c.paged=1),f(c,i)}},getFilterParams:()=>c,checkIsNewListCourses:()=>!!document.querySelector(elListCoursesIdNewDefault)}})(),document.addEventListener("DOMContentLoaded",(function(){window.lpCourseList.checkIsNewListCourses()||(window.lpCourseList.init(),window.lpCourseList.ajaxEnableLoadPage())})); |