import{d as R,Y as y,aC as j,b as D,c as w,a as U,h as i,w as u,l,g as h,j as E,F as S,p as $,o as f,i as m,t as V,bK as k,bL as K,X as q,e as z}from"./v5WcX6fg.js";import{a as A}from"./D5Cu5Chz.js";import{_ as C}from"./DDl5Iqj7.js";import{C as T}from"./BpA1kEjO.js";import{_ as F}from"./CiHiIqOb.js";const Y={class:"experimental-styles-within flex flex-col gap-3"},H={class:"flex flex-wrap items-center gap-2"},J={class:"flex flex-wrap items-center gap-1 empty:hidden"},ae=R({__name:"VersionFilterControl",props:{versions:{},gameVersions:{},baseId:{}},emits:["update:query"],setup(N,{expose:O,emit:X}){const I=N,G=X,B=y(["release","beta","alpha"]),c=j(),b=y(!1),x=D(()=>{const o={channel:[],gameVersion:[],platform:[]},a=new Set,e=new Set,d=new Set;for(const v of I.versions){for(const n of v.loaders)a.add(n);for(const n of v.game_versions)e.add(n);d.add(v.version_type)}if(d.size>0&&(o.channel=Array.from(d),o.channel.sort((v,n)=>B.value.indexOf(v)-B.value.indexOf(n))),e.size>0){const v=I.gameVersions.filter(n=>e.has(n.version));o.gameVersion=v.filter(n=>b.value?!0:n.version_type==="release").map(n=>n.version)}return a.size>0&&(o.platform=Array.from(a)),o}),s=y([]),t=y([]),r=y([]);s.value=c.query.c?_(c.query.c):[],t.value=c.query.g?_(c.query.g):[],r.value=c.query.l?_(c.query.l):[];async function L(o,a){for(const e of a)await g(o,e,!0);p()}async function g(o,a,e=!1){o==="channel"?s.value=s.value.includes(a)?s.value.filter(d=>d!==a):[...s.value,a]:o==="gameVersion"?t.value=t.value.includes(a)?t.value.filter(d=>d!==a):[...t.value,a]:o==="platform"&&(r.value=r.value.includes(a)?r.value.filter(d=>d!==a):[...r.value,a]),e||p()}async function P(){s.value=[],t.value=[],r.value=[],p()}function p(){G("update:query",{c:s.value,g:t.value,l:r.value,page:void 0})}O({toggleFilter:g,toggleFilters:L,selectedChannels:s,selectedGameVersions:t,selectedPlatforms:r});function _(o){return typeof o=="string"?[o]:o}return(o,a)=>(f(),w("div",Y,[U("div",H,[i(l(F),{modelValue:r.value,"onUpdate:modelValue":a[0]||(a[0]=e=>r.value=e),options:x.value.platform,"dropdown-id":`${o.baseId}-platform`,onChange:p},{option:u(({option:e})=>[m(V(l(A)(e)),1)]),default:u(()=>[i(l(k),{class:"h-5 w-5 text-secondary"}),a[4]||(a[4]=m(" Platform "))]),_:1},8,["modelValue","options","dropdown-id"]),i(l(F),{modelValue:t.value,"onUpdate:modelValue":a[2]||(a[2]=e=>t.value=e),options:x.value.gameVersion,"dropdown-id":`${o.baseId}-game-version`,search:"",onChange:p},{footer:u(()=>[i(l(T),{modelValue:b.value,"onUpdate:modelValue":a[1]||(a[1]=e=>b.value=e),class:"mx-1",label:"Show all versions"},null,8,["modelValue"])]),default:u(()=>[i(l(k),{class:"h-5 w-5 text-secondary"}),a[5]||(a[5]=m(" Game versions "))]),_:1},8,["modelValue","options","dropdown-id"]),i(l(F),{modelValue:s.value,"onUpdate:modelValue":a[3]||(a[3]=e=>s.value=e),options:x.value.channel,"dropdown-id":`${o.baseId}-channel`,onChange:p},{option:u(({option:e})=>[m(V(e==="release"?"Release":e==="beta"?"Beta":"Alpha"),1)]),default:u(()=>[i(l(k),{class:"h-5 w-5 text-secondary"}),a[6]||(a[6]=m(" Channels "))]),_:1},8,["modelValue","options","dropdown-id"])]),U("div",J,[s.value.length+t.value.length+r.value.length>1?(f(),h(C,{key:0,class:"transition-transform active:scale-[0.95]",action:P},{default:u(()=>[i(l(K)),a[7]||(a[7]=m(" Clear all filters "))]),_:1})):E("",!0),(f(!0),w(S,null,$(s.value,e=>(f(),h(C,{key:`remove-filter-${e}`,style:z(`--_color: var(--color-${e==="alpha"?"red":e==="beta"?"orange":"green"});--_bg-color: var(--color-${e==="alpha"?"red":e==="beta"?"orange":"green"}-highlight)`),action:()=>g("channel",e)},{default:u(()=>[i(l(q)),m(" "+V(e.slice(0,1).toUpperCase()+e.slice(1)),1)]),_:2},1032,["style","action"]))),128)),(f(!0),w(S,null,$(t.value,e=>(f(),h(C,{key:`remove-filter-${e}`,action:()=>g("gameVersion",e)},{default:u(()=>[i(l(q)),m(" "+V(e),1)]),_:2},1032,["action"]))),128)),(f(!0),w(S,null,$(r.value,e=>(f(),h(C,{key:`remove-filter-${e}`,style:z(`--_color: var(--color-platform-${e})`),action:()=>g("platform",e)},{default:u(()=>[i(l(q)),m(" "+V(l(A)(e)),1)]),_:2},1032,["style","action"]))),128))])]))}});export{ae as _};