PageSourceSearch

https://www.medisana.de/theme/29dd88a3115312fa1caaeeabf063cd13/js/…zen-search-category-filter.plugin.193d94.js

js medisana.de collected 2026-09-24 09:39:35 UTC 3,405 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkzenitPlatformHorizon=self.webpackChunkzenitPlatformHorizon||[]).push([[75324],{5324(t,e,s){s.r(e),s.d(e,{default:()=>i});class i extends window.PluginBaseClass{static #t=this.options={formSelector:".js-search-form",allResultsBtnSelector:".search-suggest-total-link",dropdownTriggerSelector:".js-search-category-toggle-btn",dropdownTriggerTextSelector:".js-search-category-toggle-btn-text",indicatorSelector:".js-search-category-indicator",dropdownSelector:".js-search-category-dropdown-list",buttonsSelector:".js-search-category-item",hiddenInputSelector:".js-search-selected-cat",inputSelector:"input.form-control",hiddenClass:"d-none"};init(){let t=this.options;this._selectedCatId="",this._dropdownTrigger=this.el.querySelector(t.dropdownTriggerSelector),this._dropdownTriggerText=this.el.querySelector(t.dropdownTriggerTextSelector),this._dropdownTriggerIndicator=this.el.querySelector(t.indicatorSelector),this._buttons=this.el.querySelectorAll(t.buttonsSelector),this._hiddenInputField=this.el.querySelector(t.hiddenInputSelector),this._inputField=this.el.querySelector(t.inputSelector),this._form=this.el.closest(t.formSelector),this._dropdownTrigger&&this._dropdownTriggerText&&this._dropdownTriggerIndicator&&this._buttons.length&&this._hiddenInputField&&this._inputField&&this._form&&(this._searchWidgetPlugin=window.PluginManager.getPluginInstanceFromElement(this._form,"SearchWidget"),this._searchWidgetPlugin&&this._registerEvents())}_registerEvents(){this._buttons.forEach(t=>{t.addEventListener("click",this._onClickButton.bind(this,t))}),this._searchWidgetPlugin.$emitter.subscribe("afterSuggest.ZenSearchCategoryFilterPlugin",this._updateAllResultsBtn.bind(this))}_onClickButton(t){this._selectedCatId=t.dataset.catId,this._updateDropdown(t),this._updateInput(),this._updateDataUrl(),this._updateAllResultsBtn(),this._closeDropdown(),this._focusInput(),this._searchWidgetPlugin&&this._searchWidgetPlugin._handleInputEvent()}_updateDropdown(t){let e=this.options;this._buttons.forEach(t=>t.classList.remove("active")),t.classList.add("active"),this._dropdownTriggerText.textContent=t.textContent,this._selectedCatId?this._dropdownTriggerIndicator.classList.remove(e.hiddenClass):this._dropdownTriggerIndicator.classList.add(e.hiddenClass)}_updateInput(){this._selectedCatId?this._hiddenInputField.value=this._selectedCatId:this._hiddenInputField.value=""}_updateDataUrl(){let t=this._form.getAttribute("data-url")||"/suggest?search=",e=this._insertCatIntoUrl(t,this._selectedCatId);this._form.setAttribute("data-url",e),this._searchWidgetPlugin&&(this._searchWidgetPlugin._url=e)}_updateAllResultsBtn(){let t=this.options;if(!this._selectedCatId||(this._allResultsBtn=this.el.querySelector(t.allResultsBtnSelector),!this._allResultsBtn))return;let e=this._allResultsBtn.getAttribute("href"),s=this._insertCatIntoUrl(e,this._selectedCatId);this._allResultsBtn.setAttribute("href",s)}_closeDropdown(){let t=bootstrap.Dropdown.getInstance(this._dropdownTrigger);t&&t.hide()}_focusInput(){this._inputField.focus()}_insertCatIntoUrl(t,e){return e?t.includes("cat=")?t.replace(/cat=[^&]*/,`cat=${e}`):-1!==t.indexOf("?search=")?t.replace("?search=",`?cat=${e}&search=`):-1!==t.indexOf("&search=")?t.replace("&search=",`&cat=${e}&search=`):t+(t.includes("?")?"&":"?")+`cat=${e}&search=`:t.replace(/([?&])cat=[^&]*&?/,"$1").replace("&&","&").replace("?&","?")}}}}]);

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.