1document.addEventListener('DOMContentLoaded',function(){const renders=Array.prototype.slice.call(document.querySelectorAll('[data-sm-filter]'));renders.forEach(render=>{if(render.dataset.smFilter!=='23509SmSn1p3T53')return;const smFilter=new SM_Filter(render,{designMode:!0,loadmore:'auto',});smFilter.on("change",e=>{const event=new Event('filterbarchanged');window.dispatchEvent(event)});smFilter.init()})});document.addEventListener('DOMContentLoaded',e=>{const formNodes=Array.prototype.slice.call(document.querySelectorAll('[data-form]'));formNodes.forEach(formNode=>{if(formNode.dataset.form==='smC16908SmSn1p3T5i339i336i153-style'){const smForm=new SM_Form(formNode,{designMode:!0,showSpecificErrors:!0,});smForm.mount()}})});document.addEventListener('DOMContentLoaded',e=>{const formNodes=Array.prototype.slice.call(document.querySelectorAll('[data-form]'));formNodes.forEach(formNode=>{if(formNode.dataset.form==='smC16908SmSn1p3T5i339i336i153-style'){const form=formNode.SM_Form;if(form){form.initDatepicker({})}}})});class SM_Filter{constructor(el,options={}){this._defaults={loadmore:"auto",designMode:!1,rendersettings:"rendersettings",filters:"selectedfilters",categories:"categories",errorMessageText:"",submitRerender:!1,defaultExternalLimit:30,forceInit:!1,logic:"AND"};this._statics={structurePrefix:"s-structure-layout-",loadmoreWrapper:"load-more",loadmoreButtonCls:"s-btn",loadmoreText:"",hidden:"s-hidden",paginationCls:"db-pagination",scrollViewPrefix:"scrollView",errorMessageCls:"s-error",};this._options=options?this._deepMerge(this._defaults,options):this._defaults;this._events={};this.initialParams=new URLSearchParams(location.search);this.render=el;this.renderID=this.render.dataset.filter} 2_deepMerge(arr){const argl=arguments.length;let retObj;if(Object.prototype.toString.call(arr)==="[object Array]"){retObj=[];for(let p in arr){retObj.push(arr[p])}}else{retObj={};for(let p in arr){retObj[p]=arr[p]}} 3for(let i=1;i<argl;i++){for(let p in arguments[i]){if(retObj[p]&&typeof retObj[p]==="object"){retObj[p]=this._deepMerge(retObj[p],arguments[i][p])}else{retObj[p]=arguments[i][p]}}} 4return retObj} 5_isArray(variable){return Array.isArray(variable)} 6_detectEnvironment(){const url=new URL(window.location.href);const page=url.searchParams.get("page");const layID=url.searchParams.get("layID");const isCMS=page!==null&&page==="vcmspage.php";
6const isDesign=url.pathname.includes("preview.php")&&layID!==null;const isLocal=isCMS||isDesign;const isPreview=isLocal?!1:url.hostname.includes("sitemn.gr");const projectPath=typeof cleanURL_path!=="undefined"?cleanURL_path:url.searchParams.get("SM_User")?`/users/${url.searchParams.get("SM_User")}`:url.pathname.split("/").filter((path,i)=>i<=2).join("/");return{local:isLocal,env:isCMS?"cms":isDesign?"design":isPreview?"preview":"live",baseUrl:`${url.hostname}${projectPath}`,}} 7_warnMsg(type){switch(type){case "el":{console.warn("SiteManager Filter: No render overview found.");return} 8case "object":{console.warn("SiteManager Filter: Error parsing render. Add the data attributes.");return} 9case "generic":{console.warn("SiteManager Filter: An error has occured.");return}}} 10_objectToUrl(obj){if(!obj)return obj;switch(this.type){case "external":return JSON.stringify(obj);case "dynamic":default:return Object.keys(obj).map((key)=>`${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`).join("&")}} 11_fetchData(url,data,type="POST"){return new Promise((resolve,reject)=>{const xhr=new XMLHttpRequest();xhr.open(type,url,!0);this.type==="external"?xhr.setRequestHeader("Content-Type","application/json"):xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xhr.onload=()=>{if(xhr.status===200){resolve(xhr.responseText)}else{reject({status:xhr.status,statusText:xhr.statusText,responseText:xhr.responseText,})}};xhr.onerror=function(){reject(Error("There was a network error."))};xhr.send(data)})} 12_buildErrorWindow(){const template=`<div class="s-error__window" style="position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: 99999; background: #f55442; opacity: .9; padding: 3em; color: #fff; overflow: auto;"> 13 <header style="margin-bottom: 3em;"> 14 <h3 style="font-family: Arial, Helvetica, sans-serif, sans-serif; color: #fff; font-size: 2em; text-align: center; margin-bottom: .3em;">Some errors have been detected in your dynamic list.</h3> 15 <h4 style="font-family: Arial, Helvetica, sans-serif, sans-serif; color: #fff; font-size: 1.5em; text-align: center;">Please fix these errors before publishing your project!</h4> 16 </header> 17 <ul class="s-body__section" style="padding: 0; margin: 0; list-style-type: disc;"></ul> 18 </div>`;this.render.insertAdjacentHTML("afterbegin",template);this.render.style.minHeight="400px";this.errorWindow=this.render.querySelector(".s-error__window")} 19_setError(error){if(!this.errorWindow)this._buildErrorWindow();const body=this.errorWindow.querySelector(".s-body__section");const errorItem=`<li style="font-family: Arial, Helvetica, sans-serif, sans-serif;"> 20 ${error} 21 </li>`;body.insertAdjacentHTML("beforeend",errorItem)} 22_createErrorMessage(){const{hidden,errorMessageCls}=this._statics;let{errorMessageText}=this._options;if(errorMessageText==="")errorMessageText=this.filterbar?.dataset?.errorMessageText||"";this.error=document.createElement("div");this.error.textContent=errorMessageText;this.error.classList.add(errorMessageCls,hidden);this.renderContainer.append(this.error)} 23_setErrorMessage(){const{hidden}=this._statics;if(this.error){this.error.classList.remove(hidden);return}} 24_hideErrorMessage(){const{hidden}=this._statics;if(!this.error)return;this.error.classList.add(hidden)} 25_setURLParams(){const newParams=new URLSearchParams(window.location.search);const filters=this.getFilters();for(const[alias,params]of Object.entries(this.params)){newParams.delete(alias);for(const[key,value]of params.entries()){newParams.append(key,value)}} 26window.history.replaceState("","","?"+newParams.toString())} 27_clearRender(isTemplate=!1){const entries=isTemplate?[...this.renderContainer.content.children]:[...this.renderContainer.children];entries.forEach((entry)=>{if(entry===this.loadmore||entry===this.error)return;entry.remove()})} 28_detectErrors(){const{paginationCls}=this._statics;const hasPagination=this.render.querySelector(`.${paginationCls}`);if(hasPagination){this._setError("<b>Pagination Error:</b> As of now, pagination is not supported with dynamic filters.")} 29if(!this.loadmoreCheck){const rendersettings=JSON.parse(this.rendersettingsStart);switch(this.type){case "external":rendersettings.options.limit=1;break;case "dynamic":default:rendersettings.list_nr=1;break} 30this._fetchData(this.loadmoreUrl,this._objectToUrl(rendersettings)).then((response)=>{if(response==="no results"){this._setError("<b>Open Data Error:</b> Open data is not enabled. Please enable this option in the configuration of the collection.");return}}).catch((err)=>console.error(err))}} 31_detectLoadmore(){const{scrollViewPrefix}=this._statics;const loadmore=this.render.querySelector(`.${this._statics.loadmoreWrapper}`);if(loadmore){const nestedScript=loadmore.querySelector("script");
31if(nestedScript)nestedScript.remove();const id=loadmore.lastElementChild.id;this._statics.loadmoreText=loadmore.innerText;loadmore.remove();const script=this.render.querySelector("script");if(script)script.remove();if(id.startsWith(scrollViewPrefix)){this.onScroll=!0} 32return!0} 33return!1} 34_getPropertyBounds(property){return[]} 35_createDynamicFilterstring(logic){if(Object.keys(this._filters).length>0){const filterstring="("+Object.values(this._filters).join(`) ${logic} (`)+")";this.rendersettings.list_cat=`(${this.rendersettings.list_cat}) AND (${filterstring})`} 36if(Object.keys(this._fieldFilters).length>0){const fieldFilterstring="("+Object.values(this._fieldFilters).join(`) ${logic} (`)+")";this.rendersettings.list_filters+=`(${fieldFilterstring}) AND `} 37if(Object.keys(this._orderFilters).length>0){this.rendersettings.order_filters=Object.values(this._orderFilters).join(", ")} 38if(Object.keys(this._connectedFilters).length>0){this.rendersettings.connected=JSON.stringify(this._connectedFilters)} 39if(this._limit||this._limit===0){this.rendersettings.list_nr=this._limit} 40if(this._searchFilter?.value!==""&&this._searchFilter?.properties?.length>0){const searchFilterstring="("+this._searchFilter.properties.map(property=>'LOWER('+property+') LIKE `%'+this._searchFilter.value.toLowerCase()+'%`').join(" OR ")+")";this.rendersettings.list_filters+=`(${searchFilterstring}) AND `}} 41_createExternalFilterstring(logic){if(Object.keys(this._filters).length>0||Object.keys(this._fieldFilters).length>0){if(!this.rendersettings.options.hasOwnProperty("filter")||(!this.rendersettings.options.filter.hasOwnProperty("and")&&!this.rendersettings.options.filter.hasOwnProperty("or"))){this.rendersettings.options.filter={}} 42if(!this.rendersettings.options.filter.hasOwnProperty(logic)){const filters=JSON.parse(JSON.stringify(this.rendersettings.options.filter));this.rendersettings.options.filter[logic]=[];if(logic==="and"&&this.rendersettings.options.filter?.or){this.rendersettings.options.filter.and.push(filters);delete this.rendersettings.options.filter.or}} 43if(Object.keys(this._filters).length>0){if(logic==="or"&&this.rendersettings.options.filter?.and?.length===0){delete this.rendersettings.options.filter.and} 44if(logic==="or"&&this.rendersettings.options.filter?.and?.length>0){this.rendersettings.options.filter.and.push({or:Object.values(this._filters).flat(),});delete this.rendersettings.options.filter.or}else{this.rendersettings.options.filter[logic].push(...Object.values(this._filters).flat())}} 45if(Object.keys(this._fieldFilters).length>0){this.rendersettings.options.filter[logic].push(...Object.values(this._fieldFilters))}} 46if(Object.keys(this._orderFilters).length>0){if(!this.rendersettings.options.sorts) 47this.rendersettings.options.sorts=[];this.rendersettings.options.sorts.push(...Object.values(this._orderFilters))} 48if(this._searchFilter?.value!=="") 49this.rendersettings.options.search=this._searchFilter;if(this._limit||this._limit===0){this.rendersettings.options.limit=this._limit}} 50_createFilterstring(logic="AND",id=null,replaceOnEmpty=!0){this.rendersettings=JSON.parse(this.rendersettingsStart);if(this._events["change.before"]){this.emit("change.before","replace","filter")} 51switch(this.type){case "external":this._createExternalFilterstring(logic.toLowerCase());break;case "dynamic":default:this._createDynamicFilterstring(logic);break} 52this.loadEntries("replace","filter",id,replaceOnEmpty)} 53_getEndpoint(){switch(this.type){case "external":return this._environment.local?"https://s1.sitemn.gr/cmsfiles/ec_loadmore.php":`//${this._environment.baseUrl}swfiles/lib/external_content/loadmore.php`;case "dynamic":default:return this._environment.local?"https://s1.sitemn.gr/cmsfiles/loadmore.php":`//${this._environment.baseUrl}swfiles/lib/loadmore.php`}} 54_parseFetchResponse(response){switch(this.type){case "external":if(!response.success){throw new Error(response.message)} 55return{html:response.data?.reduce((acc,val)=>acc+val,"")||"",empty:!response.has_more,total:response.total,};case "dynamic":default:return response}} 56checkLoadmore(){this.rendersettings=JSON.parse(this.rendersettingsStart);let rendersettings={};let showAll=!1;switch(this.type){case "external":this._createExternalFilterstring(this.logic.toLowerCase());rendersettings=JSON.parse(JSON.stringify(this.rendersettings));showAll=rendersettings.options.limit===0;rendersettings.options.offset=rendersettings.options.limit;rendersettings.options.limit=1;break;case "dynamic":default:this._createDynamicFilterstring(this.logic);rendersettings=JSON.parse(JSON.stringify(this.rendersettings));showAll=parseInt(rendersettings.list_nr)===0;
56rendersettings.pageno=parseInt(rendersettings.list_nr)+1;rendersettings.list_nr=1;break} 57if(showAll&&this.loadmore){this.loadmore.classList.add(this._statics.hidden)} 58this._fetchData(this.loadmoreUrl,this._objectToUrl(rendersettings)).then((response)=>{if(response==="no results"){this._setError("<b>Open Data Error:</b> Open data is not enabled. Please enable this option in the configuration of the collection.");return} 59const data=this._parseFetchResponse(JSON.parse(response));const html=data.html;if(html!==""){if(this.loadmore) 60this.loadmore.classList.remove(this._statics.hidden);if(this.onScroll)this.initScroll();}else if(this.loadmore){this.loadmore.classList.add(this._statics.hidden)} 61if(this._events.total){this._total=data.total;this.emit("total",data.total)}}).catch((err)=>console.error(err))} 62initLoadmore(){const{loadmoreWrapper,loadmoreButtonCls,loadmoreText}=this._statics;this.loadmore=document.createElement("div");this.loadmore.classList.add(loadmoreWrapper);const button=document.createElement("button");button.classList.add(loadmoreButtonCls);button.textContent=loadmoreText;this.loadmore.append(button);this.renderContainer.append(this.loadmore);this.checkLoadmore()} 63initScroll(){const lastItem=[...this.renderContainer.children].reverse().find((item)=>!item.classList.contains(this._statics.errorMessageCls)&&item!==this.loadmore);if(!lastItem)return;const observer=new IntersectionObserver((entries,observer)=>{if(!entries[0].isIntersecting)return;observer.disconnect();if(this._events["change.before"]){this.emit("change.before","add","scroll")} 64switch(this.type){case "external":this.rendersettings.options.offset=this.rendersettings.options.offset+this.rendersettings.options.limit;break;case "dynamic":default:this.rendersettings.pageno=parseInt(this.rendersettings.pageno)+1;break} 65this.loadEntries("add","scroll")});observer.observe(lastItem)} 66initEvents(){if(this.loadmore){this.loadmore.addEventListener("click",(e)=>{if(!this.dynamicLoadmore){const button=e.target.closest(`.${this._statics.loadmoreButtonCls}`);if(!button)return} 67if(this._events["change.before"]){this.emit("change.before","add","loadmore")} 68switch(this.type){case "external":this.rendersettings.options.offset=this.rendersettings.options.offset+this.rendersettings.options.limit;break;case "dynamic":default:this.rendersettings.pageno=parseInt(this.rendersettings.pageno)+1;break} 69this.loadEntries("add","loadmore")})} 70if(this.resetButton){this.resetButton.addEventListener("click",()=>{this.reset()})}} 71loadFilter(filter){return new Promise((res,rej)=>{const filtersRenderSettings=this._deepMerge(this.rendersettings,{});filtersRenderSettings.returnType="filter";filtersRenderSettings.returnProperty=filter;this._fetchData(this.loadmoreUrl,this._objectToUrl(filtersRenderSettings)).then((response)=>{const data=JSON.parse(response);if(!data.success){throw new Error(data.message)} 72res(data.data)}).catch((err)=>{console.error(err);rej(err)})})} 73loadFilters(id){const filtersRenderSettings=this._deepMerge(this.rendersettings,{});filtersRenderSettings.returnType="filters";this._fetchData(this.loadmoreUrl,this._objectToUrl(filtersRenderSettings)).then((response)=>{const data=JSON.parse(response);if(!data.success){throw new Error(data.message)} 74this.categories=data.data;this.emit("rerender",this.categories,id)}).catch((err)=>console.error(err))} 75loadEntries(type,filter,id=null,replaceOnEmpty=!0){this.requests++;const addEntries=type==="add";const{hidden}=this._statics;if(this._environment.local&&this.type==="dynamic") 76this.rendersettings.list_nr_add=this.rendersettings.list_nr;this._fetchData(this.loadmoreUrl,this._objectToUrl(this.rendersettings)).then((response)=>{if(--this.requests>0)return;const data=JSON.parse(response);const formattedData=this._parseFetchResponse(data);const{html,empty,total}=formattedData;if(this._options.submitRerender&&this.type==="external"){this.loadFilters(id)} 77const isTemplate=this.renderContainer.nodeName==="TEMPLATE";if(html!==""){if(addEntries){if(this.loadmore&&!this.dynamicLoadmore){this.loadmore.insertAdjacentHTML("beforebegin",html)}else{if(isTemplate){const fragment=document.createRange().createContextualFragment(html);this.renderContainer.content.append(fragment)}else{this.renderContainer.insertAdjacentHTML("beforeend",html)}}}else{this._clearRender(isTemplate);
77if(this.loadmore&&!this.dynamicLoadmore){this.loadmore.insertAdjacentHTML("beforebegin",html)}else{if(isTemplate){const fragment=document.createRange().createContextualFragment(html);this.renderContainer.content.append(fragment)}else{this.renderContainer.insertAdjacentHTML("afterbegin",html)}}} 78if(typeof AOS!=="undefined"&&AOS){AOS.refreshHard()} 79if(this._events.total){this._total=data.total;this.emit("total",total)} 80if(this._events.change){this.emit("change",type,formattedData,filter);this.emit("change.after",type,formattedData,filter)} 81if(this.loadmore){if(empty){this.loadmore.classList.add(hidden)}else{this.loadmore.classList.remove(hidden)}} 82if(this.onScroll){if(!empty){this.initScroll()}} 83this._hideErrorMessage()}else{if(replaceOnEmpty){this._clearRender(isTemplate);if(this.loadmore)this.loadmore.classList.add(hidden);if(this._events.total){this._total=data.total;this.emit("total",total)} 84if(this._events.change){this.emit("change","empty",data,filter);this.emit("change.after","empty",data,filter)} 85this._setErrorMessage()}else{if(this._events.change){this.emit("change","empty",data,filter);this.emit("change.after","empty",data,filter)}}}}).catch((err)=>console.error(err))} 86on(name,listener){if(!this._events[name]){this._events[name]=[]} 87this._events[name].push(listener)} 88removeListener(name,listenerToRemove){if(!this._events[name]){throw new Error(`Can't remove a listener. Event "${name}" doesn't exists.`)} 89const filterListeners=(listener)=>listener!==listenerToRemove;this._events[name]=this._events[name].filter(filterListeners)} 90emit(name,...data){if(!this._events[name]){console.info(`Event "${name}" has no listeners.`);return} 91const fireCallbacks=(callback)=>{callback.call(this,...data)};this._events[name].forEach(fireCallbacks)} 92init(){const{structurePrefix}=this._statics;if(!this.render){this._warnMsg("el");return} 93this.connector=document.querySelector(`[data-render="${this.render.dataset.filter}"]`);if(!this.connector){const loadmore=this.render.querySelector(".load-more");if(!loadmore&&!this._options.forceInit)return} 94this.filterbar=document.querySelector(`[data-sm-filterbar][data-render="${this.render.dataset.filter}"]`);this.logic=this.filterbar?.dataset?.logic||this._options.logic;this.renderContainer=this.render.querySelector(`:scope > [class^="${structurePrefix}"]`)||this.render;try{this.rendersettings=JSON.parse(this.render.dataset[this._options.rendersettings]);this.categories=JSON.parse(this.render.dataset[this._options.categories])}catch(e){this._warnMsg("object");return} 95try{this.selectedfilters=JSON.parse(this.render.dataset[this._options.filters])}catch(e){this.selectedfilters=[]} 96this.type=this.rendersettings.hasOwnProperty("type")?this.rendersettings.type:"dynamic";switch(this.type){case "external":if(!this.rendersettings.hasOwnProperty("options")){this.rendersettings.options={limit:0,offset:0,sorts:[],}} 97if(!this.rendersettings.options.hasOwnProperty("limit")) 98this.rendersettings.options.limit=0;if(!this.rendersettings.options.hasOwnProperty("offset")) 99this.rendersettings.options.offset=0;if(!this.rendersettings.options.hasOwnProperty("sorts")) 100this.rendersettings.options.sorts=[];if(this.rendersettings.options.limit===0) 101this.rendersettings.options.limit=this._options.defaultExternalLimit;this.rendersettings.page_id=sw_var_pid;if(typeof sw_var_extcon_id!=="undefined") 102this.rendersettings.page_entry_id=sw_var_extcon_id;break;case "dynamic":default:this.rendersettings.list_filters=this.rendersettings.list_filters||this.selectedfilters.map((filter)=>"filter_"+filter.id+" = `"+filter.value+"` AND ").join("");this.rendersettings.sw_var_lid=this.rendersettings.sw_var_lid||sw_var_lid;this.rendersettings.session=!1;break} 103this.rendersettingsStart=JSON.stringify(this.rendersettings);this._environment=this._detectEnvironment();this.isLoading=!1;this.requests=0;this.params={};this._filters={};this._fieldFilters={};this._searchFilter={};this._orderFilters={};this._connectedFilters={};this._activeFilters={};this._total=null;this._limit=null;this.loadmoreUrl=this._getEndpoint();this.loadmore=document.querySelector(`[data-loadmore][data-render="${this.renderID}"]`);this.loadmoreCheck=!1;this.onScroll=!1;this.resetButton=document.querySelector(`[data-reset][data-render="${this.renderID}"]`);if(this.loadmore){this.dynamicLoadmore=!0;this.loadmoreCheck=!0;this._detectLoadmore();this.checkLoadmore()}else if(this._options.loadmore){if(this._detectLoadmore()){this.loadmoreCheck=!0;if(this.onScroll)this.checkLoadmore();else this.initLoadmore()}} 104if(this._environment.local){this._detectErrors()} 105this.error=document.querySelector(`[data-error][data-render="${this.renderID}"]`);if(!this.error)this._createErrorMessage();if(this._options.designMode&&this._environment.local) 106this.error.style.setProperty("display","block","important");this.initEvents();this.render.SM_Filter=this;
106const initEvent=new Event("init");this.render.dispatchEvent(initEvent);if(this._events.init){this.emit("init")}} 107isSubmitRerenderEnabled(){return this._options.submitRerender&&this.type==="external"} 108fetchData(object){return new Promise((resolve,reject)=>{this._fetchData(this.loadmoreUrl,this._objectToUrl(object)).then((response)=>{try{const data=JSON.parse(response);resolve({success:!0,data:data,})}catch(e){resolve({success:!1,data:response,})}}).catch((err)=>reject(err))})} 109getCategories(){if(!this.categories)return null;return this.categories} 110getType(){if(!this.type)return null;return this.type} 111getFilters(){return{filters:JSON.parse(JSON.stringify(this._filters)),fields:JSON.parse(JSON.stringify(this._fieldFilters)),search:JSON.parse(JSON.stringify(this._searchFilter)),orders:JSON.parse(JSON.stringify(this._orderFilters)),connected:JSON.parse(JSON.stringify(this._connectedFilters)),}} 112getPropertyBounds(property){return this._getPropertyBounds(property)} 113getRendersettings(){return this.rendersettings} 114getTotal(){return this._total} 115getActiveFilters(){return this._activeFilters} 116setParameters(alias,params){this.params[alias]=params;this._setURLParams()} 117deleteParameters(alias){this.params[alias]=new URLSearchParams();this._setURLParams()} 118updateParameters(){this._setURLParams()} 119setFilter(id,filterstring,submit=!0,activeFilters=[]){this._activeFilters[id]=activeFilters;if(filterstring===""||filterstring.length===0) 120delete this._filters[id];else this._filters[id]=filterstring;if(this._events["filter.set"]){this.emit("filter.set",id,activeFilters)} 121if(submit)this.submit(id);} 122clearInitialFilters(){this.rendersettingsStart=JSON.parse(this.rendersettingsStart);this.rendersettingsStart.list_cat="";this.rendersettingsStart=JSON.stringify(this.rendersettingsStart)} 123clearInitialFieldFilters(){this.rendersettingsStart=JSON.parse(this.rendersettingsStart);this.rendersettingsStart.list_filters="";this.rendersettingsStart=JSON.stringify(this.rendersettingsStart)} 124setFieldFilter(id,filterstring,submit=!0,replaceOnEmpty=!0){if(filterstring==="")delete this._fieldFilters[id];else this._fieldFilters[id]=filterstring;if(submit)this.submit(id,replaceOnEmpty);} 125setSubmitType(type){if(!["auto","change","submit"].includes(type))return;this.submitType=type} 126setLimit(limit,submit=!1){this._limit=limit;if(submit)this.submit();} 127resetLimit(submit=!1){this._limit=null;if(submit)this.submit();} 128setSearchFilter(value,properties,submit=!0){if(value==="")this._searchFilter={};else this._searchFilter={value:value,properties:properties,};if(submit)this.submit("search");} 129setOrderFilter(id,filterstring,submit=!0){if(filterstring==="")delete this._orderFilters[id];else this._orderFilters[id]=filterstring;if(submit)this.submit(id);} 130setConnectedFilter(filterobject,submit=!0){if(Object.keys(filterobject)===0)delete this._connectedFilters;else this._connectedFilters=filterobject;if(submit)this.submit();} 131setPage(page,type="replace",event="pagination"){this.rendersettings=JSON.parse(this.rendersettingsStart);switch(this.type){case "external":this._createExternalFilterstring(this.logic.toLowerCase());this.rendersettings.options.offset=Math.floor(this.rendersettings.options.limit*(page-1));break;case "dynamic":default:this._createDynamicFilterstring(this.logic);this.rendersettings.pageno=page;break} 132if(this._events["change.before"]){this.emit("change.before",type,event,page)} 133this.loadEntries(type,event)} 134setView(quantity){let activePage=1;let activeLimit=0;switch(this.type){case "external":activeLimit=this.rendersettings.options.limit;activePage=Math.floor(this.rendersettings.options.offset/activeLimit)+1;this.rendersettings.options.limit=quantity;break;case "dynamic":default:activeLimit=this.rendersettings.list_nr;activePage=this.rendersettings.pageno;this.rendersettings.list_nr=quantity;break}} 135reset(){if(this._events["reset.before"]){this.emit("reset.before")} 136this._filters={};this._fieldFilters={};this._searchFilter={};this._orderFilters={};this._connectedFilters={};this._activeFilters={};this._limit=null;this._createFilterstring(this.logic);
136if(this._events.reset){this.emit("reset")}} 137submit(id=null,replaceOnEmpty=!0){this._createFilterstring(this.logic,id,replaceOnEmpty)}}
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.