PageSourceSearch

https://rasch.de/theme/e2a39899ea91df829d56423b5775db01/js/storefr…front.cookie-configuration.plugin.b09d13.js

js rasch.de collected 2026-09-25 07:15:51 UTC 12,788 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[60746],{746(e,t,i){i.r(t),i.d(t,{COOKIE_CONFIGURATION_CLOSE_OFF_CANVAS:()=>c,COOKIE_CONFIGURATION_UPDATE:()=>l,default:()=>h});var o=i(1452),n=i(8948),s=i(6105),a=i(4335),r=i(9068);let l="CookieConfiguration_Update",c="CookieConfiguration_CloseOffCanvas";class h extends a.A{static #e=this.lastTriggerElement=null;static #t=this.options={defaultCookieExpiration:30,offCanvasPosition:"left",submitEvent:"click",cookiePreference:"cookie-preference",cookieConfigHash:"cookie-config-hash",cookieSelector:"[data-cookie]",buttonOpenSelector:".js-cookie-configuration-button button",buttonSubmitSelector:".js-offcanvas-cookie-submit",buttonPermissionSelector:".js-cookie-permission-button",buttonAcceptAllSelector:".js-offcanvas-cookie-accept-all",globalButtonAcceptAllSelector:".js-cookie-accept-all-button",globalButtonPermissionSelector:".js-cookie-permission-button",parentInputSelector:".offcanvas-cookie-parent-input",customLinkSelector:`[href="${window.router["frontend.cookie.offcanvas"]}"]`,entriesActiveClass:"offcanvas-cookie-entries--active",entriesClass:"offcanvas-cookie-entries",groupClass:"offcanvas-cookie-group",parentInputClass:"offcanvas-cookie-parent-input",consentAcceptButtonSelector:".js-wishlist-cookie-accept",consentLoginButtonSelector:".js-wishlist-login",consentCancelButtonSelector:".js-wishlist-cookie-offcanvas-cancel",consentPreferencesButtonSelector:".js-wishlist-cookie-preferences"};init(){this.lastState={active:[],inactive:[]},this._cleanupTasks=[],this._httpClient=new r.A,this._registerEvents(),this._checkCookieConfigurationHash(),document.$emitter.subscribe("CookieConfiguration/requestConsent",e=>{e instanceof CustomEvent&&(e=e.detail),this.openRequestConsentOffCanvas(e.route,e.cookieName)}),this._registerCleanup(()=>{document.$emitter.unsubscribe("CookieConfiguration/requestConsent")})}destroy(){if(this._cleanupTasks&&this._cleanupTasks.length>0){let e=this._cleanupTasks.slice();this._cleanupTasks=[];for(let t=0;t<e.length;t++)try{e[t]()}catch(e){}}}_getDefaultCookieExpiration(){let{defaultCookieExpiration:e}=this.options,t=Number(e);return Number.isInteger(t)&&t>0?t:30}_registerEvents(){if(this._delegatedEventHandler)return;let{submitEvent:e,buttonOpenSelector:t,customLinkSelector:i,buttonPermissionSelector:o,globalButtonAcceptAllSelector:n}=this.options;this._delegatedEventHandler=e=>{let s=e.target;if(s.closest(i)){this._handleCustomLink(e);return}if(s.closest(t)){this.openOffCanvas();return}if(s.closest(o)){this._handlePermission(e);return}if(s.closest(n)){this._acceptAllCookiesFromCookieBar(e);return}},document.addEventListener(e,this._delegatedEventHandler,!0),this._registerCleanup(()=>{document.removeEventListener(e,this._delegatedEventHandler,!0),this._delegatedEventHandler=null})}_registerOffCanvasEvents(){let e=this._getOffCanvas();e&&!e.hasAttribute("data-offcanvas-events-registered")&&(this._offCanvasDelegatedHandler||(this._offCanvasDelegatedHandler=this._handleOffCanvasClick.bind(this)),e.setAttribute("data-offcanvas-events-registered","true"),e.addEventListener("click",this._offCanvasDelegatedHandler,!0),this._registerCleanup(()=>{e.removeEventListener("click",this._offCanvasDelegatedHandler,!0),e.removeAttribute("data-offcanvas-events-registered"),this._offCanvasDelegatedHandler=null}))}_handleOffCanvasClick(e){let{buttonSubmitSelector:t,buttonAcceptAllSelector:i}=this.options,o=e.target;if(o.closest(t)){e.preventDefault(),this._handleSubmit(e);return}if(o.closest(i)){e.preventDefault(),this._acceptAllCookiesFromOffCanvas(e);return}if("checkbox"===o.type){this._handleCheckbox(e);return}}_handleCustomLink(e){0!==e.button||e.ctrlKey||e.metaKey||e.shiftKey||e.defaultPrevented||(e.preventDefault(),this.openOffCanvas())}async _fetchCookieGroups(){try{let e=window.router["frontend.cookie.groups"],t=await fetch(e,{method:"GET",headers:{"X-Requested-With":"XMLHttpRequest"}});return await t.json()}catch(e){return console.error("Failed to fetch cookie groups:",e),null}}async _checkCookieConfigurationHash(){let{cookiePreference:e,cookieConfigHash:t}=this.options,i=o.A.getItem(e),n=o.A.getItem(t);if(!i&&!n)return;let s=await this._fetchCookieGroups();if(!s)return;let a=s.hash,r=s.languageId,l=this._getStoredHashForLanguage(n,r);if(l&&l!==a||i&&!l){await this._resetCookieConfiguration(s);return}l&&this._storeHashForLanguage(r,a,n)}_parseStoredHashes(e){if(!e)return{};try{let t=JSON.parse(e);if("object"==typeof t&&null!==t)return t}catch(e){}return{}}_getStoredHashForLanguage(e,t){return this._parseStoredHashes(e)[t]||null}_storeHashForLanguage(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,{cookieConfigHash:n}=this.options,s=i??o.A.getItem(n),a=this._parseStoredHashes(s);a[e]=t,o.A.setItem(n,JSON.stringify(a),this._getDefaultCookieExpiration())}async _resetCookieConfiguration(e){let t=e.elements||[],{activeCookieNames:i,inactiveCookieNames:n}=this._applyCookieConfiguration(t,"required",[],e.languageId);o.A.removeItem(this.options.cookiePreference);let s=i.filter(e=>e!==this.options.cookiePreference);this._handleUpdateListener(s,n),this._checkAndShowCookieBarIfNeeded()}_getTechnicallyRequiredCookieNames(){return["session-","timezone"]}async _handlePermission(e){e.preventDefault();let t=await this._fetchCookieGroups();if(!t)return;let i=t.elements,{activeCookieNames:o,inactiveCookieNames:n}=this._applyCookieConfiguration(i,"required",[],t.languageId);this._handleUpdateListener(o,n),this._hideCookieBar(),this.closeOffCanvas()}_applyCookieConfiguration(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this._getTechnicallyRequiredCookieNames(),a=this._extractAllCookiesFromGroups(e),r=[],l=[];for(let e=0;e<a.length;e++){let o=a[e];("required"===t?o.isRequired:"selected"!==t||o.isRequired||i.includes(o.cookie))?r.push(o):l.push(o.cookie)}for(let e=0;e<l.length;e++)o.A.getItem(l[e])&&o.A.removeItem(l[e]);let c=[...s];for(let e=0;e<r.length;e++){let t=r[e],i=s.some(e=>t.cookie===e),a=t.cookie===this.options.cookieConfigHash;i||c.push(t.cookie),!t.value||i||(a&&n?this._storeHashForLanguage(n,t.value):a||o.A.setItem(t.cookie,t.value,t.expiration||this._getDefaultCookieExpiration()))}return{activeCookieNames:c,inactiveCookieNames:l}}_extractAllCookiesFromGroups(e){let t=[];for(let i=0;i<e.length;i++){let o=e[i],n=o.isRequired||!1;
1if(o.entries)for(let e=0;e<o.entries.length;e++){let i=o.entries[e];i.cookie&&t.push({cookie:i.cookie,value:i.value,expiration:i.expiration,isRequired:n})}o.cookie&&t.push({cookie:o.cookie,value:o.value,expiration:o.expiration,isRequired:n})}return t}_handleUpdateListener(e,t){let i=this._getUpdatedCookies(e,t);"function"==typeof window.registerGoogleReCaptchaPlugins&&(window.registerGoogleReCaptchaPlugins(),PluginManager.initializePlugins()),document.$emitter.publish(l,i)}_getUpdatedCookies(e,t){let{lastState:i}=this,o={};return e.forEach(e=>{i.inactive.includes(e)&&(o[e]=!0)}),t.forEach(e=>{i.active.includes(e)&&(o[e]=!1)}),o}openOffCanvas(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,{offCanvasPosition:t}=this.options,i=window.router["frontend.cookie.offcanvas"];this._hideCookieBar(),n.A.open(i,!1,this._onOffCanvasOpened.bind(this,e),t)}closeOffCanvas(e){n.A.close(),"function"==typeof e&&e()}_checkAndShowCookieBarIfNeeded(){let{cookiePreference:e}=this.options;if(!o.A.getItem(e)){let e=new CustomEvent("showCookieBar");document.dispatchEvent(e)}}_onOffCanvasOpened(e){this._registerOffCanvasEvents(),this._setInitialState(),this._setInitialOffcanvasState(),this._registerOffCanvasCloseListener(),PluginManager.initializePlugins(),"function"==typeof e&&e()}_registerOffCanvasCloseListener(){this._onOffCanvasOnceHandler=()=>{this._checkAndShowCookieBarIfNeeded()},s.r.$emitter.subscribe("onCloseOffcanvas",this._onOffCanvasOnceHandler,{once:!0}),this._registerCleanup(()=>{s.r.$emitter.unsubscribe("onCloseOffcanvas"),this._onOffCanvasOnceHandler=null})}_registerCleanup(e){this._cleanupTasks||(this._cleanupTasks=[]),this._cleanupTasks.push(e)}_hideCookieBar(){let e=new CustomEvent("hideCookieBar");document.dispatchEvent(e)}openRequestConsentOffCanvas(e,t){e&&t&&(h.lastTriggerElement=document.activeElement,n.A.open(e,!1,()=>{window.PluginManager.initializePlugins();let e=document.querySelector(".offcanvas");e&&this._registerConsentOffcanvasEvents(e,t)},"left"))}_registerConsentOffcanvasEvents(e,t){let{consentAcceptButtonSelector:i,consentLoginButtonSelector:o,consentCancelButtonSelector:n,consentPreferencesButtonSelector:s}=this.options,a=e.querySelector(i);a&&a.addEventListener("click",this._onAccept.bind(this,t));let r=e.querySelector(o);r&&r.addEventListener("click",this._onLogin.bind(this));let l=e.querySelector(n);l&&l.addEventListener("click",this._onCancel.bind(this));let c=e.querySelector(s);c&&c.addEventListener("click",this._onPreferences.bind(this))}_setInitialState(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=e||this._getCookies("all"),i=[],n=[];t.forEach(e=>{let{cookie:t,required:s}=e;o.A.getItem(t)||s?i.push(t):n.push(t)}),this.lastState={active:i,inactive:n}}_setInitialOffcanvasState(){let e=this.lastState.active,t=this._getOffCanvas();e.forEach(e=>{let i=t.querySelector(`[data-cookie="${e}"]`);i.checked=!0,this._childCheckboxEvent(i)})}_handleCheckbox(e){let{parentInputClass:t}=this.options,{target:i}=e;(i.classList.contains(t)?this._parentCheckboxEvent:this._childCheckboxEvent).call(this,i)}_findParentEl(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;for(;e&&!e.classList.contains(i);){if(e.classList.contains(t))return e;e=e.parentElement}return null}_isChecked(e){return!!e.checked}_parentCheckboxEvent(e){let{groupClass:t}=this.options,i=this._isChecked(e),o=this._findParentEl(e,t);this._toggleWholeGroup(i,o)}_childCheckboxEvent(e){let{groupClass:t}=this.options,i=this._isChecked(e),o=this._findParentEl(e,t);this._toggleParentCheckbox(i,o)}_toggleWholeGroup(e,t){Array.from(t.querySelectorAll("input")).forEach(t=>{t.checked=e})}_toggleParentCheckbox(e,t){let{parentInputSelector:i}=this.options,o=Array.from(t.querySelectorAll(`input:not(${i})`)),n=Array.from(t.querySelectorAll(`input:not(${i}):checked`));if(o.length>0){let e=t.querySelector(i);if(e){let t=n.length>0,i=t&&n.length!==o.length;e.checked=t,e.indeterminate=i}}}async _handleSubmit(){let e=this._getCookies("active").filter(e=>{let{required:t}=e;return!t}).map(e=>{let{cookie:t}=e;return t}),t=await this._fetchCookieGroups();if(!t)return;let i=t.elements,{activeCookieNames:o,inactiveCookieNames:n}=this._applyCookieConfiguration(i,"selected",e,t.languageId);this._handleUpdateListener(o,n),this.closeOffCanvas(document.$emitter.publish(c))}async acceptAllCookies(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];let e=await this._fetchCookieGroups();if(!e)return;let t=e.elements,{activeCookieNames:i,inactiveCookieNames:o}=this._applyCookieConfiguration(t,"all",[],e.languageId);this._handleUpdateListener(i,o),this._hideCookieBar(),this.closeOffCanvas()}async _acceptAllCookiesFromCookieBar(){let e=await this._fetchCookieGroups();if(!e)return;let t=e.elements,{activeCookieNames:i,inactiveCookieNames:o}=this._applyCookieConfiguration(t,"all",[],e.languageId);this._handleUpdateListener(i,o),this._hideCookieBar()}async _acceptAllCookiesFromOffCanvas(){let e=await this._fetchCookieGroups();if(!e)return;let t=e.elements,{activeCookieNames:i,inactiveCookieNames:o}=this._applyCookieConfiguration(t,"all",[],e.languageId);this._handleUpdateListener(i,o),this.closeOffCanvas(document.$emitter.publish(c))}_getCookies(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"all",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,{cookieSelector:i}=this.options;return t||(t=this._getOffCanvas()),Array.from(t.querySelectorAll(i)).filter(t=>{switch(e){case"all":return!0;case"active":return this._isChecked(t);case"inactive":return!this._isChecked(t);default:return!1}}).map(e=>{let{cookie:t,cookieValue:i,cookieExpiration:o,cookieRequired:n}=e.dataset;return{cookie:t,value:i,expiration:o,required:n}})}_getOffCanvas(){let e=s.A?s.A.getOffCanvas():[];return!!e&&e.length>0&&e[0]}_onAccept(e){o.A.setItem(e,"1",this._getDefaultCookieExpiration()),n.A.close()}_navigateTo(e){window.location.href=e}_onLogin(){n.A.close(),this._navigateTo(window.router["frontend.account.login.page"])}_onCancel(){n.A.close()}_onPreferences(e){e.preventDefault(),n.A.close(),this.openOffCanvas(()=>{let e=document.querySelector(".offcanvas");e&&e.addEventListener("hidden.bs.offcanvas",this._restoreFocus.bind(this),{once:!0})})}_restoreFocus(){let e=h.lastTriggerElement;e?.focus?.()}}}}]);

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.