PageSourceSearch

https://langmobile.com/wp-content/themes/langmobile/dist/assets/modules-online-course-archives-BYASkfJU.js

js langmobile.com collected 2026-10-04 02:16:19 UTC 4,693 bytes, 1 lines download raw bytes

1import{$ as i,n as h,F as c,j as r,k as l}from"./app-shared.bundle-BP6fmk7e.js";class u{constructor(e,t){this.el=e,this.emitter=t,this.search=null,this.elements={hits:i(".hits",this.el),pagination:i(".pagination",this.el),count:i(".count",this.el),empty:i(".empty",this.el),"in-language":i(".facet[data-facet='in-language']",this.el),"language-level":i(".facet[data-facet='language-level']",this.el),duration:i(".facet[data-facet='duration']",this.el),"age-group":i(".facet[data-facet='age-group']",this.el),interests:i(".facet[data-facet='interests']",this.el),search:i("input[type='search']",this.el)},this.filtersWrap=i(".online-course-archives__filtersWrap",this.el),this.filtersBtn=i(".online-course-archives__filtersBtn",this.el),this.filters=[...h(".online-course-archives__filtersGroup",this.el)].map(s=>new o(s,this.emitter)),this._filtersExpanded=!1,this._onFiltersBtnClick=this._onFiltersBtnClick.bind(this)}init(){const e=window.MILL3WP||{};if(!e.meilisearch_enabled){console.warn("[online-course-archives] Meilisearch not enabled — skipping.");return}this.search=new c({client:{host:e.meilisearch_host,apiKey:e.meilisearch_public_key,index:e.meilisearch_index},refs:{root:this.el,hits:this.elements.hits,pagination:this.elements.pagination,count:this.elements.count,empty:this.elements.empty,search:this.elements.search},facetOrder:"alpha",facets:[{key:"in-language",attribute:"terms.in-language.name",label:"Language",widget:"checkbox",element:this.elements["in-language"],urlKey:"in-language"},{key:"language-level",attribute:"terms.language-level.name",label:"Level",widget:"checkbox",element:this.elements["language-level"],urlKey:"language-level",prepareData:t=>t.sort((s,n)=>(s.term?.order??1/0)-(n.term?.order??1/0))},{key:"age-group",attribute:"terms.age-group.name",label:"Age group",widget:"checkbox",element:this.elements["age-group"],urlKey:"age-group",prepareData:t=>t.sort((s,n)=>
1parseInt(s.value,10)-parseInt(n.value,10))},{key:"interests",attribute:"terms.interests.name",label:"Interests",widget:"checkbox",element:this.elements.interests,urlKey:"interests",matchAll:!0}],sort:["RAND"],hitTemplate:i("template",this.el),mapHit:t=>({id:t.id,title:t.title,short_intro:t.acf.short_intro??"",link:t.permalink,thumbnail:t.thumbnail&&t.thumbnail!=="false"?t.thumbnail:""}),staticFilter:'acf.course_type = "private_lesson"',hitsPerPage:999}),this.search.mount(),this._openURLParamFilters(),this.bindEvents()}destroy(){this.search&&this.search.destroy(),this.filters&&this.filters.forEach(e=>e.destroy()),this.search=null,this.el=null,this.emitter=null,this.elements=null,this.filters=null,this.filtersWrap=null,this.filtersBtn=null,this._filtersExpanded=null,this._onFiltersBtnClick=null}bindEvents(){this.search&&(this.search.on("search:done",({total:e})=>{console.log(`[online-course-archives] ${e} hits`)}),this.search.on("search:error",({error:e})=>{console.error("[online-course-archives] search error:",e)}),this.search.on("render:hits",()=>this.emitter.emit("SiteScroll.update"))),this.filtersBtn&&this.filtersWrap&&r(this.filtersBtn,"click",this._onFiltersBtnClick)}unbindEvents(){this.search&&(this.search.off("search:done"),this.search.off("search:error"),this.search.off("render:hits")),this.filtersBtn&&this.filtersWrap&&l(this.filtersBtn,"click",this._onFiltersBtnClick)}_onFiltersBtnClick(){this.filterExpanded=!this.filterExpanded}_openURLParamFilters(){const e=window.location.search,t=new URLSearchParams(e);this.filters.forEach(s=>{if(s.type)for(const[n]of t)n.includes(s.type)&&(s.expanded=!0)}),this.emitter.emit("SiteScroll.update")}set filterExpanded(e){this._filterExpanded!=e&&(this._filterExpanded=e,this.filtersWrap.classList[this._filterExpanded?"add":"remove"]("--js-expanded"),this.emitter.emit("SiteScroll.update"))}get filterExpanded(){return this._filterExpanded}}class o{constructor(e,t){this.el=e,this.emitter=t,this.filters=i(".online-course-archives__filters",this.el),this.btn=i(".online-course-archives__filtersTitleWrap",this.el),this.type=this.filters.dataset.facet,this._expanded=!!this.el.classList.contains("--js-expanded"),this._onBtnClick=this._onBtnClick.bind(this),this.init()}init(){this._bindEvents()}destroy(){this._unbindEvents(),this.el=null,this.emitter=null,this.type=null,this.filters=null,this.btn=null,this._onBtnClick=null}_bindEvents(){this.btn&&r(this.btn,"click",this._onBtnClick)}_unbindEvents(){this.btn&&l(this.btn,"click",this._onBtnClick)}_onBtnClick(){this.expanded=!this._expanded,this.emitter.emit("SiteScroll.update")}set expanded(e){this._expanded!=e&&(this._expanded=e,this.el.classList[this._expanded?"add":"remove"]("--js-expanded"))}get expanded(){return this._expanded}}export{u as default};

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.