import{w as F,a as q}from"./BHxGdkTe.js";import{u as E,a3 as O,b4 as u,e as n,n as S}from"./BxiWQxwE.js";const C=()=>{const a=E(),o=O(),l=u("recipeFilters"),R=u("recipeProducts",()=>[]),f=u("recipeIds",()=>[]),y=u("noRecipeFound",()=>!1),h={RELEVANCE:"created_timestamp DESC"},I=n(()=>{const e=m(),s=d();return{...e,...s}}),d=()=>({page:isNaN(Number(a.query.page))?1:Number(a.query.page),sortField:String(a.query.sortField??h.RELEVANCE),sourceIds:[3,5,6]}),m=()=>{var s;const e={};return(s=Object.keys(i.value))==null||s.forEach(t=>{t==="difficultyId"?e[t]=i.value[t].length===0?null:i.value[t][0].id:e[t]=i.value[t].map(r=>r.id)}),e},b=n(()=>Object.keys(a.query).some(e=>["sortField","page"].includes(e))),g=n(()=>Object.values(i.value).any(e=>(e==null?void 0:e.length)>0)),v=async(e,s)=>{await o.replace({query:{...a.query,[e]:s}})},p=e=>{switch(e){case"courses":return"courseIds";case"difficulties":return"difficultyId";case"kitchens":return"kitchenIds";default:return e}},A=async(e,s)=>{const t={...a.query},r=s==="difficulties"?Number(t[s]):F(t[s]??[]).map(Number),c=Array.isArray(r)?q(r,e.id):r===e.id?null:e.id;if(Array.isArray(c)?c.length>0?t[s]=c.map(String):delete t[s]:c!==null?t[s]=String(c):delete t[s],Object.keys(t).length===1&&!isNaN(Number(t.page))){await o.push({query:{}});return}await o.push({query:{...t,page:1}})},N=(e,s)=>{var t;return(t=i.value[p(s)])==null?void 0:t.some(r=>r.id===Number(e.id))},i=n(()=>l.value?Object.fromEntries(Object.entries(l.value).map(([s,t])=>[`${p(s)}`,t.filter(r=>F(a.query[s]).includes(String(r.id)))])):[]);return{setFilterInRoute:v,currentFilters:I,resetRecipeFilters:async(e="recepten")=>{await S({params:{search:e},replace:!0})},allRecipeIds:f,recipeFilters:l,recipeItems:R,noRecipesFound:y,setFeatureInRoute:A,isFeatureActive:N,matchFeatureFromRoute:i,hasFilterApplied:b,hasFeatureApplied:g,mapFeaturesFromRouteToApi:m,mapFiltersFromRouteToApi:d}};export{C as u};
