1import{c as V,L as G,s as F,aE as h,aQ as u,aw as E,bu as z,a8 as K,bv as W,S as Y,bw as H,bx as X,C as Q}from"./storefrontApp.5Jl33SLO.min.js";import{S as o}from"./chunk-storefront_base_lit_element.BngXaMu.js";import{e as d,n as c,C as Z}from"./chunk-vendor-lit.NvY0u02.js";import{j as J,w as ee,p as T,d as I,s as N,g as P,c as R,U as p}from"./chunk-index.esm.9jiXzDM.js";import{e as te}from"./chunk-vendor-rxjs.Dp7kflo.js";import{B as m}from"./chunk-btn_controller.BPcEEeZ.js";import{S as re}from"./chunk-storefront_settings_constants.DIF02Gz.js";import{B as se}from"./chunk-backdrop_controller.BQhgTTX.js";import{B as w}from"./chunk-backdrop_constants.5bk4eBT.js";import{F as ie,a as le}from"./chunk-focus_trap_controller.DPCVDzb.js";import{T as C}from"./chunk-toggle_constants.DD0OMP8.js";import"./chunk-vendor-di.Bh23gdA.js";import"./chunk-vendor-lodash.CWHFt7Z.js";import"./chunk-vendor-phoenix.cdKS79L.js";import"./chunk-keystrokes_controller.BSiCZ0Y.js";const ae=({storeName:i="filters"}={})=>V({name:i},ee(),J());var x;x=G;const ne=class B{constructor({name:e,value:t}){this[x]=!0,this.id=e,this.value=t}static create(e){return new B(e)}};let oe=ne;class v{static toModel(e){return oe.create(e)}}class ce{#e;constructor(e){this.#e=e}addFilter(e){this.updateFilter(e)}updateFilter(e){this.#e.update(T(e.name,{updater:{value:e.value},creator:()=>v.toModel(e)}))}removeFilter(e){this.#e.update(I(e))}selectFilters$(){return this.#e.pipe(N())}getFilters(){return this.#e.query(P())}setFilters(e){this.#e.update(R(e))}}class he{#e;constructor(e){this.#e=e}addFilter(e){this.updateFilter(e)}updateFilter(e){this.#e.update(T(e.name,{updater:()=>v.toModel(e),creator:()=>v.toModel(e),ref:p}))}removeFilter(e){this.#e.update(I(e,{ref:p}))}selectFilters$(){return this.#e.pipe(N({ref:p}))}getFilters(){return this.#e.query(P({ref:p}))}setFilters(e){this.#e.update(R(e,{ref:p}))}}class de{#e;#t;constructor(e,t){this.#e=e,this.#t=t}addFilter(e){this.#e.addFilter(e)}addUiFilter(e){this.#t.addFilter(e)}updateFilter(e){this.#e.updateFilter(e)}updateUiFilter(e){this.#t.updateFilter(e)}removeFilter(e){this.#e.removeFilter(e)}removeUiFilter(e){this.#t.removeFilter(e)}selectFiltersUrl$(){return this.selectUiFilters$().pipe(F(e=>e.sort((t,s)=>t.id.localeCompare(s.id)).reduce((t,s)=>`${t}/${s.id}/${s.value}`,"")))}getFilters(){return this.#e.getFilters()}selectFilters$(){return this.#e.selectFilters$()}getUiFilters(){return this.#t.getFilters()}selectUiFilters$(){return this.#t.selectFilters$()}saveCurrentFiltersState(){this.#e.setFilters(this.getUiFilters())}restoreSavedFiltersState(){this.#t.setFilters(this.getFilters())}setFilters(e){this.#e.setFilters(e)}setUiFilters(e){this.#t.setFilters(e)}clearFilters(){this.#t.setFilters([])}areFiltersEqual(){const e=this.getFilters(),t=this.getUiFilters();return this._compareFilters(e,t)}selectAreFiltersEqual$(){return te([this.#e.selectFilters$(),this.#t.selectFilters$()]).pipe(F(([e,t])=>this._compareFilters(e,t)))}_compareFilters(e,t){if(e.length!==t.length)return!1;e=e.sort((s,r)=>s.id.localeCompare(r.id)),t=t.sort((s,r)=>s.id.localeCompare(r.id));for(let s=0;s<e.length;s++)if(e[s].id!==t[s].id||e[s].value!==t[s].value)return!1;return!0}isAnyFilterActive(){return this.getFilters().length>0}selectIsAnyFilterActive$(){return this.#e.selectFilters$().pipe(F(e=>e.length>0))}countFilters(){return this.getFilters().length}selectCountFilters$(){return this.#e.selectFilters$().pipe(F(e=>e.length))}}class pe{#e;constructor({host:e}){this.#e=e,this.#e.addController(this)}async hostConnected(){}hostDisconnected(){}updateApplyFiltersUrl(e){document.querySelectorAll(`#${this.#e.id} filters-apply a, filters-group[filter-parent="${this.#e.id}"] filters-apply a`).forEach(t=>{t.href=e})}updateInputUIState(e){this.clearInputUiState(),this.updateInputValuesWithActiveFilters(e)}showFiltersActions(){document.querySelectorAll(`#${this.#e.id} filter-actions, filters-group[filter-parent="${this.#e.id}"] filter-actions`).forEach(e=>{e.removeAttribute("hidden")})}hideFiltersActions(){document.querySelectorAll(`#${this.#e.id} filter-actions, filters-group[filter-parent="${this.#e.id}
1"] filter-actions`).forEach(e=>{e.setAttribute("hidden","hidden")})}updateInputValuesWithActiveFilters(e){e.forEach(t=>{let s=document.querySelector(`filters-group[filter-parent="${this.#e.id}"] [name="${t.id}"]`);if(s){const r=s.type;r===h.text&&(s.value=t.value),r===h.checkbox&&(s.checked=!0),r===h.radio&&(s=document.querySelector(`[filter-parent="${this.#e.id}"] [name="${t.id}"][value="${t.value}"]`),s.checked=!0)}})}clearInputUiState(){document.querySelectorAll(`filters-group[filter-parent="${this.#e.id}"] input`).forEach(e=>{const t=e.type;if(t===h.text&&(e.value=""),t===h.checkbox&&(e.checked=!1),t===h.radio){const s=document.querySelector(`[filter-parent="${this.#e.id}"] [name="${e.name}"]`);s&&(s.checked=!0)}})}}const D=["filter-multiple","filter-single","filter-price"],U="filters-vertical_visible",n={addFilter:"addFilter",updateFilter:"updateFilter",removeFilter:"removeFilter",applyFilters:"applyFilters",resetFilters:"resetFilters",clearFilters:"clearFilters",openFilters:"openFilters",closeFilters:"closeFilters"};var ue=Object.defineProperty,O=(i,e,t,s)=>{for(var r=void 0,l=i.length-1,a;l>=0;l--)(a=i[l])&&(r=a(e,t,r)||r);return r&&ue(e,t,r),r};class g extends o{constructor(){super(),this.baseUrl="",this.childrenToWatch=D,this.watchChildrenConnected=!0,this.id="",this._clearFilters=()=>{this.clearFilters()},this._restoreSavedFiltersState=()=>{this.restoreSavedFiltersState()};const e=ae(),t=new ce(e),s=new he(e);this._service=new de(t,s),this.filtersAggregatorController=new pe({host:this})}static{this.moduleName="filters-aggregator"}firstUpdated(e){super.firstUpdated(e),this._service.selectUiFilters$().subscribe(t=>{this.updateInputUIState(t)}),this._service.selectFiltersUrl$().subscribe(t=>{this.filtersAggregatorController.updateApplyFiltersUrl(this.baseUrl+t)}),this._service.selectAreFiltersEqual$().subscribe(t=>{t?this.filtersAggregatorController.hideFiltersActions():this.filtersAggregatorController.showFiltersActions()})}connectedCallback(){super.connectedCallback(),this.commandBus.on(`filters.${this.id}.addUiFilter`,({body:e})=>{e&&this.addFilter(e)}),this.commandBus.on(`filters.${this.id}.updateUiFilter`,({body:e})=>{e&&this.updateFilter(e)}),this.commandBus.on(`filters.${this.id}.removeUiFilter`,({body:e})=>{e&&this.removeFilter(e.name)}),this.addEventListener(n.clearFilters,this._clearFilters),this.addEventListener(n.resetFilters,this._restoreSavedFiltersState),this._setInitialFiltersState()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(n.clearFilters,this._clearFilters),this.removeEventListener(n.resetFilters,this._restoreSavedFiltersState)}addFilter(e){this._service.addUiFilter(e)}updateFilter(e){this._service.updateUiFilter(e)}removeFilter(e){this._service.removeUiFilter(e)}clearFilters(){this._service.clearFilters()}updateInputUIState(e){e||(e=this._service.getUiFilters()),this.filtersAggregatorController.updateInputUIState(e)}restoreSavedFiltersState(){this._service.restoreSavedFiltersState()}_setInitialFiltersState(){const e=this.activeFilters.map(t=>v.toModel({name:t.name,value:t.value}));this._service.setFilters(e),this._service.setUiFilters(e)}}O([d({attribute:"base-url"})],g.prototype,"baseUrl");O([d({type:Object,attribute:"active-filters"})],g.prototype,"activeFilters");O([d()],g.prototype,"id");var Fe=Object.defineProperty,ve=(i,e,t,s)=>{for(var r=void 0,l=i.length-1,a;l>=0;l--)(a=i[l])&&(r=a(e,t,r)||r);return r&&Fe(e,t,r),r};class q extends o{constructor(){super(),this.childrenToWatch=D,this.watchChildrenConnected=!0,this._addFilter=e=>{const t=this._getFilterFromEvent(e);this.commandBus.executeSync(new u(`filters.${this.filterParent}.addUiFilter`,t))},this._updateFilter=e=>{const t=this._getFilterFromEvent(e);this.commandBus.executeSync(new u(`filters.${this.filterParent}.updateUiFilter`,t))},this._removeFilter=e=>{const t=this._getFilterFromEvent(e);this.commandBus.executeSync(new u(`filters.${this.filterParent}.removeUiFilter`,t))}}static{this.moduleName="filters-group"}connectedCallback(){super.connectedCallback(),this._setupListeners()}disconnectedCallback(){super.disconnectedCallback(),this._removeListeners()}firstUpdated(e){super.firstUpdated(e)}_setupListeners(){this.addEventListener(n.addFilter,this._addFilter),this.addEventListener(n.updateFilter,this._updateFilter),this.addEventListener(n.removeFilter,this._removeFilter)}_removeListeners(){this.removeEventListener(n.addFilter,this._addFilter),this.removeEventListener(n.updateFilter,this._updateFilter),this.removeEventListener(n.removeFilter,this._removeFilter)}_getFilterFromEvent(e){const t=e.detail;if(!t)throw new Error("No filter to add");return t}}ve([d({type:String,attribute:"filter-parent"})],q.prototype,"filterParent");class k extends o{_dispatchEvent(e,{name:t,value:s}){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,detail:{name:t,value:s}}))}}var _e=Object.getOwnPropertyDescriptor,fe=(i,e,t,s)=>{for(var r=s>1?void 0:s?_e(e,t):e,l=i.length-1,a;l>=0;l--)(a=i[l])&&(r=a(r)||r);return r};let b=class extends k{constructor(){super(...arguments),this._change=i=>{const e=i.target;this._updateFilterState(e)}}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._change)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",this._change)}_updateFilterState(i){const e=i.checked?n.addFilter:n.removeFilter;this._dispatchEvent(e,{name:i.name,value:i.value})}};b=fe([c("filter-multiple")],b);var me=Object.getOwnPropertyDescriptor,ge=(i,e,t,s)=>{for(var r=s>1?void 0:s?me(e,t):e,l=i.length-1,a;l>=0;l--)(a=i[l])&&(r=a(r)||r);return r};let S=class extends k{constructor(){super(...arguments),this._change=i=>{const e=i.target;this._updateFilterState(e)}}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._change)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",this._change)}_updateFilterState(i){const e=i.value!==""?n.updateFilter:n.removeFilter;this._dispatchEvent(e,{name:i.name,value:i.value})}};S=ge([c("filter-single")],S);var Ee=Object.getOwnPropertyDescriptor,Ce=(i,e,t,s)=>{for(var r=s>1?void 0:s?Ee(e,t):e,l=i.length-1,a;l>=0;l--)(a=i[l])&&(r=a(r)||r);return r};let y=class extends k{constructor(){super(...arguments),this._change=i=>{const e=i.target;this._updateFilterState(e)}}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._change)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",this._change)}_updateFilterState(i){const e=Z.toNumber(i.value),s=!e||isNaN(e)?n.removeFilter:n.updateFilter;this._dispatchEvent(s,{name:i.name,value:String(e)})}};y=Ce([c("filter-price")],y);var be=Object.getOwnPropertyDescriptor,Se=(i,e,t,s)=>{for(var r=s>1?void 0:s?be(e,t):e,l=i.length-1,a;l>=0;l--)(a=i[l])&&(r=a(r)||r);return r};let $=class extends o{constructor(){super(),this._dispatchClearFiltersEvent=()=>{this.dispatchEvent(new CustomEvent(n.clearFilters,{bubbles:!0}))},this._btnController=new m(this,this._dispatchClearFiltersEvent)}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._dispatchClearFiltersEvent)}};$=Se([c("filters-clear")],$);var ye=Object.getOwnPropertyDescriptor,$e=(i,e,t,s)=>{for(var r=s>1?void 0:s?ye(e,t):e,l=i.length-1,a;l>=0;l--)(a=i[l])&&(r=a(r)||r);return r};let L=class extends o{constructor(){super(),this._dispatchResetFiltersEvent=()=>{this.dispatchEvent(new CustomEvent(n.resetFilters,{bubbles:!0}))},this._btnController=new m(this,this._dispatchResetFiltersEvent)}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._dispatchResetFiltersEvent)}};L=$e([c("filters-reset")],L);class Le extends o{constructor(){super(),this._backdropController=new se,this._updateInputUiStateOnToggle=()=>{const e=this.querySelector("filters-aggregator");E.nextTick(()=>e?.updateInputUIState())},this._openLayer=()=>{const e=this.querySelector("filters-aggregator");this._backdropController.show(),e?.classList.add(U),document.addEventListener(w.clicked,this._closeLayer),this._selectCurrentBreakpointSubscription=this._resolutionDetectorApi.selectCurrentBreakpoint$().subscribe(this._handleBreakpointChange),this._settingsApi.isFeatureEnabled("dev_filters_mobile_focus_trap")&&(document.addEventListener("keydown",this._handleEscapeKey),this._focusTrapController?.activate(),E.nextTick(()=>this._focusFirstElementInLayer()))},this._closeLayer=()=>{this.closeLayer()},this._handleEscapeKey=e=>{e.key==="Escape"&&this.closeLayer()},this._handleBreakpointChange=()=>{this._resolutionDetectorApi.isXs()||this.closeLayer()},this._settingsApi=this.getApiSync(re.api),this._settingsApi.isFeatureEnabled("dev_filters_mobile_focus_trap")&&(this._focusTrapController=new ie(this,{mode:le.cyclic,getContainer:()=>this.querySelector("filters-aggregator"),getOpener:()=>this.querySelector("filters-vertical-opener")}))}static{this.moduleName=z.component}async connectedCallback(){super.connectedCallback(),this._setupListeners(),this._resolutionDetectorApi=await this.getApi(K.api)}_setupListeners(){this.commandBus.on(`${n.openFilters}-${this.id}`,this._openLayer),this.commandBus.on(`${n.closeFilters}-${this.id}`,this._closeLayer),this.addEventListener(C.toggle,()=>this._updateInputUiStateOnToggle())}_focusFirstElementInLayer(){const e=this.querySelector("filters-aggregator"),[t]=e?this._focusTrapController?.getFocusableElements(e)??[]:[];t?.focus()}_restoreFocusToOpener(){this.querySelector("filters-vertical-opener")?.focus()}closeLayer(){const e=this.querySelector("filters-aggregator");this._backdropController.hide(),e?.classList.remove(U),document.removeEventListener(w.clicked,this._closeLayer),this._selectCurrentBreakpointSubscription?.unsubscribe(),this._settingsApi.isFeatureEnabled("dev_filters_mobile_focus_trap")&&(document.removeEventListener("keydown",this._handleEscapeKey),this._focusTrapController?.deactivate(),this._restoreFocusToOpener())}}class Ae extends o{constructor(){super(...arguments),this._updateInputUiStateOnToggle=()=>{const e=this.querySelector("filters-aggregator");E.nextTick(()=>e?.updateInputUIState())}}static{this.moduleName=W.component}connectedCallback(){super.connectedCallback();const e=this.querySelector("filters-aggregator");this.addEventListener("showed",t=>{t.target.closest("filters-horizontal")===this&&e?.updateInputUIState()}),this.addEventListener("hidden",t=>{t.target.closest("filters-horizontal")===this&&e?.restoreSavedFiltersState()}),document.addEventListener(C.toggle,this._updateInputUiStateOnToggle)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener(C.toggle,this._updateInputUiStateOnToggle)}}var Oe=Object.defineProperty,ke=Object.getOwnPropertyDescriptor,M=(i,e,t,s)=>{for(var r=s>1?void 0:s?ke(e,t):e,l=i.length-1,a;l>=0;l--)(a=i[l])&&(r=(s?a(e,t,r):a(r))||r);return s&&r&&Oe(e,t,r),r};let _=class extends o{constructor(){super(),this.id="",this._handleClick=()=>{this.commandBus.execute(new u(`${n.openFilters}-${this.id}`))},this._btnController=new m(this,this._handleClick)}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._handleClick)}};M([d()],_.prototype,"id",2);_=M([c("filters-vertical-opener")],_);var we=Object.defineProperty,Ue=Object.getOwnPropertyDescriptor,j=(i,e,t,s)=>{for(var r=s>1?void 0:s?Ue(e,t):e,l=i.length-1,a;l>=0;l--)(a=i[l])&&(r=(s?a(e,t,r):a(r))||r);return s&&r&&we(e,t,r),r};let f=class extends o{constructor(){super(),this.id="",this._handleClick=()=>{this.commandBus.execute(new u(`${n.closeFilters}-${this.id}`))},this._btnController=new m(this,this._handleClick)}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._handleClick)}};j([d()],f.prototype,"id",2);f=j([c("filters-vertical-closer")],f);const Te={anchorNotDefined:"<a> tag element has to be defined inside the apply-filters webcomponent"};var Ie=Object.getOwnPropertyDescriptor,Ne=(i,e,t,s)=>{for(var r=s>1?void 0:s?Ie(e,t):e,l=i.length-1,a;l>=0;l--)(a=i[l])&&(r=a(r)||r);return r};let A=class extends o{constructor(){super(),this._$applyFiltersAnchor=null,this._$applyFiltersAnchor=this.querySelector("a")}connectedCallback(){if(super.connectedCallback(),!this._$applyFiltersAnchor)throw new Error(Te.anchorNotDefined);this._$applyFiltersAnchor.addEventListener("click",this._dispatchApplyFiltersEvent)}
1_dispatchApplyFiltersEvent(){this.dispatchEvent(new CustomEvent(n.applyFilters,{bubbles:!0}))}disconnectedCallback(){super.disconnectedCallback(),this._$applyFiltersAnchor?.removeEventListener("click",this._dispatchApplyFiltersEvent)}};A=Ne([c("filters-apply")],A);class Xe extends Y{static{this.dependencies=[H.feature]}static{this.featureName=X.feature}static{this._components={FilterSingle:S,FilterMultiple:b,FilterPrice:y,FiltersClear:$,FiltersReset:L,FiltersVerticalOpener:_,FiltersVerticalCloser:f,FiltersApply:A}}init(){return{cores:[{type:Q,instance:[Ae,Le,g,q]}]}}}export{Xe as FiltersInitializer};
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.