PageSourceSearch

https://www.thermoplan.ch/cis-data/plugins/searchObjects/searchObjects.min.js?v=200087-202609241015

js thermoplan.ch collected 2026-10-02 17:35:18 UTC 15,701 bytes, 1 lines download raw bytes

1function SearchObjects(a){let b=this;b.currentPage=1,b.options={wrapperClass:"",itemsWrapperClass:".items",itemClass:".item",itemGroupClass:!1,pageSize:20,pageAppend:!1,bindings:null,filterModeCheckboxRadio:"or",afterSearch:!1,pagingDivider:" / ",pagingWrapAround:!0,pagingShowAll:!1,dependentSelects:!1,datasetDelimiter:";",pagingTextClass:".paging_text",pagingBlockClass:".paging",useBEM:!1,useUrlAsStorage:!1,hasCisSelects:!0},b.searchElements=[],b.items=[],b.itemGroups=[],b.noDataItem=void 0,b.numbOfObjects=0,b.numberShownObjects=0,b.searchValues={},b.typeBindings={},b.initialized=!1,b.appendClicked=!1,b.dependentSelectHierarchy=[],b.isShowAll=!1,$.extend(b.options,a),b.sPageId=b.options.page_id,b.sInstanceId=b.options.instance_id,b.sPage="page_"+b.options.page_id,b.sInstance="instance_"+b.options.instance_id,b.init()}SearchObjects.prototype={init:function(){let a=this;a.prepareStorage(),a.collectItems();let b=a.getStorage();b.hasOwnProperty("page")&&(a.currentPage=b.page),b.hasOwnProperty("showall")&&!0===b.showall&&a.setShowAllVariables();let c=!1;for(let b in a.options.bindings)-1!==window.location.search.search(b+"=")&&(c=!0);for(binding in a.options.bindings){let d=document.querySelectorAll(a.options.wrapperClass+" [name=\""+binding+"\"]");if(0===d.length){console.info(binding+" does not exist.");continue}let e=d[0];switch(c&&(a.updateStorageFromUrlParameters(binding),b=a.getStorage()),a.searchValues[binding]="",a.typeBindings[e.name]=e.type,a.updateFilterFromStorage(b,d),a.typeBindings[e.name]){case"text":$(document).on("keyup",a.options.wrapperClass+" input[name=\""+e.name+"\"]",function(){a.currentPage=1,a.searchValues[this.name]=this.value.toLowerCase(),a.filterItems(),a.setStorage(this.name,this.value.toLowerCase())});break;case"select-one":$(document).on("change",a.options.wrapperClass+" select[name=\""+e.name+"\"]",function(){a.currentPage=1,a.searchValues[this.name]=this.value,a.options.dependentSelects&&a.updateDependentSelectHierarchy(this.name,this.value),a.filterItems(),a.setStorage(this.name,this.value)});break;case"checkbox":case"radio":$(document).on("change",a.options.wrapperClass+" input[name=\""+e.name+"\"]",function(){let b=a.getCheckedElements("input[name=\""+this.name+"\"]");a.currentPage=1,a.searchValues[this.name]=b,a.filterItems(),a.setStorage(this.name,b)});break;case"range":$(document).on("change",a.options.wrapperClass+" input[name=\""+e.name+"\"]",function(){let b=a.getRange("input[name=\""+this.name+"\"]");a.currentPage=1,a.searchValues[this.name]=b,a.filterItems(),a.setStorage(this.name,b)});break;default:console.warn("unrecognized element "+e.nodeName);}}let d=$(a.options.wrapperClass+" .paging"),e=$(a.options.wrapperClass+" .paging .previous"),f=$(a.options.wrapperClass+" .paging .next"),g=$(a.options.wrapperClass+" .paging .append"),h=$(a.options.wrapperClass+" .paging .showall");if(a.options.useBEM&&(d=$(a.options.wrapperClass+" "+a.options.pagingBlockClass),e=$(a.options.wrapperClass+" "+a.options.pagingBlockClass+"__control--previous"),f=$(a.options.wrapperClass+" "+a.options.pagingBlockClass+"__control--next"),g=$(a.options.wrapperClass+" "+a.options.pagingBlockClass+"__control--append"),h=$(a.options.wrapperClass+" "+a.options.pagingBlockClass+"__control--showall")),e.click(b=>{b.preventDefault(),0<a.currentPage-1?(a.currentPage--,a.updatePaging(!0)):a.options.pagingWrapAround&&(a.currentPage=a.getPageCount(),a.updatePaging(!0))}),f.click(b=>{b.preventDefault(),a.currentPage+1<=a.getPageCount()?(a.currentPage++,a.updatePaging(!0)):a.options.pagingWrapAround&&(a.currentPage=1,a.updatePaging(!0))}),g.click(b=>{b.preventDefault(),a.currentPage+1<=a.getPageCount()&&(a.currentPage++,a.appendClicked=!0,a.updatePaging())}),a.options.pagingShowAll){let b=a.options.wrapperClass+" .paging .showall";a.options.useBEM&&(b=a.options.wrapperClass+" "+a.options.pagingBlockClass+"__control--showall"),$(b).click(b=>{b.preventDefault(),a.currentPage+1<=a.getPageCount()&&(a.setShowAllVariables(),a.updatePaging())})}if(d.length){if(a.options.pageAppend){if(null!==e&&null!==f&&(e.parent().hasClass(a.options.pagingBlockClass.replace(".",""))||f.parent().hasClass(a.options.pagingBlockClass.replace(".",""))?e.hide():e.parent().hide()),!g.length)return console.error("Paging not found! If option 'pageAppend' is true, paging element must have class 'append'."),
1!1;document.body.style.overflowAnchor="none"}else if(g.length&&(g.parent().hasClass(a.options.pagingBlockClass.replace(".",""))?g.hide():g.parent().hide(),null===e))return console.error("Paging not found! Check paging element."),!1;if(a.options.pagingShowAll&&!h.length)return console.error("Paging - 'Show All'-Button not found! If option 'pagingShowAll' is true, paging element with 'showall' must be present."),!1}else return console.error("Paging not found!"),!1;$(a.options.wrapperClass+" form:not(.default)").on("submit",function(a){a.preventDefault()});let i=new URLSearchParams(window.location.search),j=i.get("so_page");null===j||isNaN(+j)||(a.currentPage=+j),a.filterItems();let k=+a.getPageCount();a.currentPage>k&&(a.currentPage=k,a.updatePaging()),a.initialized=!0},collectItems:function(a){let b=this,c=[].slice.call(document.querySelectorAll(b.options.wrapperClass+" "+b.options.itemsWrapperClass+" "+b.options.itemClass+":not(.no-data)"));if(b.items=[],b.noDataItem=document.querySelectorAll(b.options.wrapperClass+" "+b.options.itemsWrapperClass+" .no-data")[0],"undefined"==typeof b.noDataItem)if(b.noDataItem=document.querySelectorAll(b.options.wrapperClass+" .no-data")[0],"undefined"!=typeof b.noDataItem)$(b.options.wrapperClass+" "+b.options.itemsWrapperClass).append(b.noDataItem);else return console.error("No no-data item found!"),!1;if(0==c.length)return console.error("No items found given via options.itemClass!"),!1;if("string"==typeof b.options.itemGroupClass&&(b.itemGroups=[].slice.call(document.querySelectorAll(b.options.wrapperClass+" "+b.options.itemsWrapperClass+" "+b.options.itemGroupClass)),0==b.itemGroups.length))return console.error("No group-items found given via options.itemGroupClass!"),!1;for(let d,e=0;e<c.length;e++){for(bindings in d={},c[e].classList.add("js-hidden"),b.options.bindings)for(binding in Array.isArray(b.options.bindings[bindings])||(b.options.bindings[bindings]=[b.options.bindings[bindings]]),b.options.bindings[bindings]){const a=b.options.bindings[bindings][binding],d="data-"+a;if(!c[e].hasAttribute(d)){const f=c[e].querySelector("["+d+"]").dataset[a];c[e].setAttribute("data-"+b.options.bindings[bindings][binding],f)}}d.obj=c[e],d.filter=!0,b.items.push(d)}b.numbOfObjects=b.items.length,(a||!1)&&b.filterItems()},filterItems:function(){let a=this;for(let b,c=0;c<a.items.length;c++)for(let d in b=a.items[c],a.items[c].filter=!0,a.searchValues){let e=a.searchValues[d],f=!1;switch(a.typeBindings[d]){case"range":let g=b.obj.dataset[a.options.bindings[d]];
1(g<parseFloat(e[0])||g>parseFloat(e[1]))&&(a.items[c].filter=!1);break;case"checkbox":case"radio":if("and"===a.options.filterModeCheckboxRadio.toLowerCase())for(let f=0;f<e.length;f++)-1==b.obj.dataset[a.options.bindings[d]].search(e[f].replace(/[.*+?^${}()|[\]]/g,"\\$&"))&&(a.items[c].filter=!1);else if(0<e.length){for(let c=0;c<e.length;c++)-1!=b.obj.dataset[a.options.bindings[d]].search(e[c].replace(/[.*+?^${}()|[\]]/g,"\\$&"))&&(f=!0);f||(a.items[c].filter=!1)}break;case"select-one":for(binding in a.options.bindings[d]){const c=b.obj.dataset[a.options.bindings[d][binding]];if(-1!=c.search(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))){const b=c.split(a.options.datasetDelimiter);b.forEach(function(a){(e===a||""===e)&&(f=!0)})}}f||(a.items[c].filter=!1);break;default:let h=e.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g,"\\$&").normalize("NFD").replace(/[\u0300-\u036f]/g,"").split(" "),i=!0;for(sSearchTerm of h){let c=!1;for(binding in a.options.bindings[d]){const e=b.obj.dataset[a.options.bindings[d][binding]].toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"");if(-1!==e.search(sSearchTerm)){c=!0;break}}c||(i=!1)}i||(a.items[c].filter=!1);}}a.updatePaging()},updateView:function(a){let b=this,c=(b.currentPage-1)*b.options.pageSize;b.setStorage("page",b.currentPage),b.isShowAll&&b.setStorage("showall",!0);let d=b.options.pageSize;b.options.pageAppend&&!b.initialized&&1<=b.currentPage&&(c=0,d=b.currentPage*b.options.pageSize);let e=b.items,f=[];if(!b.options.pageAppend){for(let a=0;a<b.items.length;a++)b.items[a].obj.classList.add("js-hidden");e=b.items.filter(function(a){return a.filter})}else f=b.items.filter(function(a){return a.filter});for(let g,h=0;h<e.length;h++)g=h,b.options.pageAppend&&(g=0,b.items[h].filter&&(g=f.indexOf(b.items[h]))),b.numberShownObjects<d&&e[h].filter&&g>=c?(e[h].obj.classList.remove("js-hidden"),b.numberShownObjects++):!b.appendClicked&&e[h].obj.classList.add("js-hidden");if(0<b.itemGroups.length)for(let a=0;a<b.itemGroups.length;a++){let c=b.itemGroups[a],d=!1;0<$(c).find(b.options.itemClass+":not(.js-hidden)").length&&(d=!0),d?c.classList.remove("js-hidden"):c.classList.add("js-hidden")}(a||!1)&&(null===document.querySelector(b.options.wrapperClass+" a[id^='i']")?document.querySelector(b.options.wrapperClass).scrollIntoView():document.querySelector(b.options.wrapperClass+" a[id^='i']").scrollIntoView()),b.options.dependentSelects&&b.updateDependentSelects(),b.numberShownObjects=0,b.appendClicked=!1,b.options.afterSearch&&b.options.afterSearch(b.searchValues,f)},updatePaging:function(a){let b=this,c=b.numbOfObjects,d=$(b.options.wrapperClass+" .paging"),e=$(b.options.wrapperClass+" .paging .previous"),f=$(b.options.wrapperClass+" .paging .next"),g=$(b.options.wrapperClass+" .paging "+b.options.pagingTextClass);for(sValue in b.options.useBEM&&(d=$(b.options.wrapperClass+" "+b.options.pagingBlockClass),e=$(b.options.wrapperClass+" "+b.options.pagingBlockClass+"__control--previous"),f=$(b.options.wrapperClass+" "+b.options.pagingBlockClass+"__control--next"),g=$(b.options.wrapperClass+" "+b.options.pagingBlockClass+" "+b.options.pagingTextClass)),b.searchValues)if(b.searchValues[sValue].length){c=0;for(let a=0;a<b.items.length;a++)b.items[a].filter&&c++}if(0===Math.ceil(c/b.options.pageSize)?(maxPage=1,null!=typeof b.noDataItem&&b.noDataItem.classList.remove("js-hidden")):(maxPage=Math.ceil(c/b.options.pageSize),null!=typeof b.noDataItem&&b.noDataItem.classList.add("js-hidden")),1===maxPage?d.hide():(d.css("display",""),d.removeClass("hidden"),g.length&&g.text(b.currentPage+b.options.pagingDivider+maxPage)),b.options.pageAppend&&b.currentPage===maxPage&&d.hide(),!b.options.pagingWrapAround&&!b.options.pageAppend){let a=b.options.useBEM?(b.options.pagingBlockClass+"__control--disabled").replace(".",""):"disabled";1===b.currentPage?(e.addClass(a),f.removeClass(a)):b.currentPage===maxPage&&(f.addClass(a),e.removeClass(a))}b.updateView(a||!1)},setShowAllVariables:function(){let a=this;a.isShowAll=!0,a.currentPage=1,a.options.pageSize=a.numbOfObjects},updateDependentSelectHierarchy:function(a,b){let c=this;if(c.dependentSelectHierarchy.splice(c.dependentSelectHierarchy.indexOf(a),1),""!==b){let b=c.options.hasCisSelects?"> ul > li:not([data-value=''])":"option:not(.empty)",d=$(document.querySelector(`select[name="${a}"]`).parentElement).find(b),e=[];d.each((a,b)=>{if(!b.classList.contains("js-option-disabled")&&!b.disabled){let a=c.options.hasCisSelects?b.dataset.value:b.value;e.push(a)}}),c.dependentSelectHierarchy.push([a,e])}},updateDependentSelects:function(){let a=this,b=Object.keys(a.typeBindings).filter(b=>"select-one"===a.typeBindings[b]),c={};b.forEach(b=>{let d=document.querySelector(a.options.wrapperClass+` select[name="${b}"]`).value;""!==d&&(c[b]=d)}),b.forEach(b=>{let d=document.querySelector(a.options.wrapperClass+` select[name="${b}"]`).parentElement,e=a.options.bindings[b],f=!1,g=a.dependentSelectHierarchy[a.dependentSelectHierarchy.length-1]||[0,[]],h=b===g[0],i="> ul > li:not([data-value=''])";a.options.hasCisSelects||(d=document.querySelector(a.options.wrapperClass+` select[name="${b}`),i="option:not(.empty)"),$(d).find(i).each((d,i)=>{let j=a.options.hasCisSelects?i.dataset.value:i.value,k=!1;
1h?-1!==g[1].indexOf(j)&&(k=!0):a.items.forEach(d=>{let f=!0;for(let[e,g]of Object.entries(c))e!==b&&a.options.bindings[e].forEach(b=>{let c=!1;d.obj.dataset[b].split(a.options.datasetDelimiter).forEach(a=>{g===a&&(c=!0)}),c||(f=!1)});e.forEach(b=>{let c=!1;d.obj.dataset[b].split(a.options.datasetDelimiter).forEach(a=>{j===a&&(c=!0)}),c||(f=!1)}),f&&(k=!0)}),Object.entries(c).length||(k=!0);let l=k?"remove":"add",m=!k;a.options.hasCisSelects?i.classList[l]("js-option-disabled"):i.disabled=m,k&&(f=!0)});let j=f?"remove":"add",k=!f;a.options.hasCisSelects?d.classList[j]("disabled"):d.disabled=k})},getPageCount:function(){let a=0;return this.items.map(function(b){b.filter&&a++}),Math.ceil(a/this.options.pageSize)},updateFilterFromStorage:function(a,b){let c=this,d=b[0];if("undefined"!=typeof d&&a.hasOwnProperty(d.name)){let e=a[d.name];switch(c.typeBindings[d.name]){case"checkbox":case"radio":for(let a,c=0;c<b.length;c++)a=b[c],-1==e.indexOf(a.value)?$(a).prop("checked",!1):$(a).prop("checked",!0);c.searchValues[d.name]=c.getCheckedElements("input[name=\""+d.name+"\"]");break;case"range":""===e&&(e=[],e.push(Math.max(b[0].min,0)),e.push(+b[1].max));for(let a,c=0;c<b.length;c++)a=b[c],a.value=e[c],$(a).trigger("change");c.searchValues[d.name]=c.getRange("input[name=\""+d.name+"\"]");break;case"select-one":$(d).val(e).trigger("change"),c.searchValues[d.name]=e;break;default:$(d).val(e),"object"==typeof e&&(e=e.join(",")),c.searchValues[d.name]=e.toLowerCase();}}},prepareStorage:function(){let a=this,b=a.getStorage(!0);if(b.hasOwnProperty(a.sPage)||(b[a.sPage]={}),b[a.sPage].hasOwnProperty(a.sInstance)||(b[a.sPage][a.sInstance]={}),a.options.useUrlAsStorage){let a=new URL(location);b=JSON.stringify(b),b=btoa(b),b=encodeURIComponent(b),a.searchParams.set("so_filter",b),history.pushState({},"",a)}else sessionStorage.searchfilter=JSON.stringify(b)},getStorage:function(a=!1){let b=this,c={};if(b.options.useUrlAsStorage){let a=new URLSearchParams(window.location.search);a.has("so_filter")&&(c=a.get("so_filter"),c=decodeURIComponent(c),c=atob(c),c=JSON.parse(c))}else"undefined"!=typeof sessionStorage.searchfilter&&(c=JSON.parse(sessionStorage.searchfilter));return void 0===c[b.sPage]||void 0===c[b.sPage][b.sInstance]||a||(c=c[b.sPage][b.sInstance]),c},setStorage:function(a,b){let c=this;if("string"==typeof b&&-1!==b.indexOf(",")&&(b=b.split(",")),c.options.useUrlAsStorage){let d=new URL(location),e={};d.searchParams.has("so_filter")&&(e=c.getStorage(!0),0<a.length&&0<b.toString().length?e[c.sPage][c.sInstance][a]=b:0<a.length&&e[c.sPage][c.sInstance].hasOwnProperty(a)&&delete e[c.sPage][c.sInstance][a]),e=JSON.stringify(e),e=btoa(e),e=encodeURIComponent(e),d.searchParams.set("so_filter",e),history.pushState({},"",d)}else if("undefined"!=typeof sessionStorage){const d=c.getStorage(!0);0<a.length&&0<b.toString().length?d[c.sPage][c.sInstance][a]=b:0<a.length&&d[c.sPage][c.sInstance].hasOwnProperty(a)&&delete d[c.sPage][c.sInstance][a],sessionStorage.searchfilter=JSON.stringify(d)}},updateStorageFromUrlParameters:function(a){let b=this;if(-1!==window.location.search.search(a+"=")){const c=new RegExp("("+a+"=)([^&]+)"),d=window.location.search.match(c);let e="";null!==d&&(e=decodeURIComponent(d[2].replace(/\+/g," "))),b.setStorage(a,e),b.searchValues[a]=e}else b.setStorage(a,"")},getCheckedElements:function(a){const b=[];return $.isEmptyObject($(a+":checked"))[0]||$(a+":checked").each(function(a,c){b.push(c.value)}),b},getRange:function(a){const b=[];return $.isEmptyObject($(a))[0]||$(a).each(function(a,c){b.push(c.value)}),b}};

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.