PageSourceSearch

https://www.bluebrixx.com/theme/8bb5980c4fb24c68e59ff44980ce6116/j…acris-shop-switch-sub-menu.plugin.9cc725.js

js bluebrixx.com collected 2026-09-24 18:52:24 UTC 3,305 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[81132],{132:(t,e,s)=>{s.r(e),s.d(e,{default:()=>i});class i extends window.PluginBaseClass{static #t=this.options={triggerAttribute:"data-acris-shop-switch-sub-menu-trigger",fieldSelector:"[data-acris-shop-switch-sub-menu-field]",valueSelector:"[data-acris-shop-switch-sub-menu-value]",labelSelector:"[data-acris-shop-switch-sub-menu-label]",optionAttribute:"data-acris-shop-switch-sub-menu-option",activeClass:"active",modalClass:"modal",openClass:"is--open"};init(){this._isModal=this.el.classList.contains(this.options.modalClass),this._isModal&&this._moveToBody(),this._triggers=Array.from(document.querySelectorAll(`[${this.options.triggerAttribute}="${this.el.id}"]`)),this._fields=Array.from(this.el.querySelectorAll(this.options.fieldSelector)),this._onDocumentClickBound=this._onDocumentClick.bind(this),this._onKeyDownBound=this._onKeyDown.bind(this),this._registerEvents()}_moveToBody(){if(this.el.parentElement===document.body)return;let t=document.querySelector(`body > .${this.options.modalClass}#${CSS.escape(this.el.id)}`);null!==t&&t!==this.el&&t.remove(),document.body.appendChild(this.el)}_registerEvents(){this._triggers.forEach(t=>{t.addEventListener("click",this._onTriggerClick.bind(this))}),this._fields.forEach(t=>{t.querySelectorAll(`[${this.options.optionAttribute}]`).forEach(e=>{e.addEventListener("click",()=>this._onOptionClick(t,e))})}),this._isModal&&(this.el.addEventListener("shown.bs.modal",()=>this._setExpanded(!0)),this.el.addEventListener("hidden.bs.modal",()=>this._setExpanded(!1)))}isOpen(){return this._isModal?this.el.classList.contains("show"):this.el.classList.contains(this.options.openClass)}open(){if(this._isModal){this._getModal().show();return}this.el.classList.add(this.options.openClass),this._setExpanded(!0),document.addEventListener("click",this._onDocumentClickBound),document.addEventListener("keydown",this._onKeyDownBound),this.$emitter.publish("acrisShopSwitchSubMenuOpen")}close(){if(this._isModal){this._getModal().hide();return}this.el.classList.remove(this.options.openClass),this._setExpanded(!1),document.removeEventListener("click",this._onDocumentClickBound),document.removeEventListener("keydown",this._onKeyDownBound),this.$emitter.publish("acrisShopSwitchSubMenuClose")}_getModal(){return window.bootstrap.Modal.getOrCreateInstance(this.el)}_setExpanded(t){this._triggers.forEach(e=>e.setAttribute("aria-expanded",t?"true":"false")),this._isModal&&this.$emitter.publish(t?"acrisS
1hopSwitchSubMenuOpen":"acrisShopSwitchSubMenuClose")}_onTriggerClick(t){if(t.preventDefault(),this.isOpen()){this.close();return}this.open()}_onDocumentClick(t){!this.isOpen()||this.el.contains(t.target)||this._triggers.some(e=>e.contains(t.target))||this.close()}_onKeyDown(t){"Escape"===t.key&&this.isOpen()&&this.close()}_onOptionClick(t,e){let s=e.getAttribute(this.options.optionAttribute),i=t.querySelector(this.options.valueSelector),o=t.querySelector(this.options.labelSelector);s&&null!==i&&null!==o&&(i.value=s,t.querySelectorAll(`[${this.options.optionAttribute}]`).forEach(t=>{t.classList.toggle(this.options.activeClass,t===e)}),o.replaceChildren(...Array.from(e.cloneNode(!0).childNodes)),this.$emitter.publish("acrisShopSwitchSubMenuOptionSelected",{field:t,value:s}))}}}}]);

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.